Wie kann ich das Zusammenführen mehrerer excel Dateien zu einer einzigen excel-Datei
So, ich habe versucht, ein excel-Blatt-aggregator. Bei meiner Arbeit bekommen wir von Leuten, die uns eine Reihe von einzelnen excel-Dateien, die alle im Zusammenhang mit jeweils nur 1 Blatt verwendet.
War ich nach bis zu einem gewissen Grad diese vorherigen post ' s ideas. Aber nach dem tun so, einige excel-sheets kopiert habe ich immer leer. Nur den bestimmten. Ich habe keine Ahnung, warum einige sind leer und die anderen sind in Ordnung.
Hier ist der code, den ich verwenden, um zu öffnen und kopieren Sie die excel-Dateien
OpenFileDialog browse = new OpenFileDialog();
browse.Multiselect = true;
DialogResult result = browse.ShowDialog();
if (result == DialogResult.OK)
try //try to open it. If its a proper excel file
{
excel = new Excel.Application();
excel.Workbooks.Add("");
finalized = excel.Workbooks[1];
excel.SheetsInNewWorkbook = 1;
for(int i=0; i< browse.FileNames.Length; i++)
{
excel.Workbooks.Add(browse.FileNames[i]);
}
//skip the first workbook as it is the finalized one
//also note everything in excel starts at 1 and not 0
for(int i=2; i<excel.Workbooks.Count; i++)
{
int count = excel.Workbooks[i].Worksheets.Count;
excel.Workbooks[i].Activate();
for (int j = 1; j < count; j++)
{
Excel._Worksheet pastee = (Excel._Worksheet)excel.Workbooks[i].Worksheets[j];
Excel._Worksheet sheet = (Excel._Worksheet)finalized.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//Excel._Worksheet sheet = finalized.Sheets[1];
pastee.Copy(Before: sheet);
}//end of for j
}//end of for i
}//end of try
Hier ist der code, den ich verwenden, um speichern Sie die excel-Datei
SaveFileDialog browse = new SaveFileDialog();
browse.Title = "Save as Excel";
browse.Filter = "Excel workbook | *.xlsx";
DialogResult result = browse.ShowDialog();
finalized.SaveAs(browse.FileName, Excel.XlFileFormat.xlWorkbookDefault);
MessageBox.Show("Success", "Message");
//unlock the file
Global.releaseComObjects(finalized, excel);
- Was willst du eigentlich? Sie möchten, kopieren Sie die excel-Dateien, die nicht leer oder sind die excel-Dateien zu bekommen, während Sie kopieren? @Alexander Ryan Baggett
- Als ich versuchte zu erklären in der Beschreibung. Ich möchte mehrere excel-Dateien. Kopieren Sie jedes Blatt aus diesen Dateien in 1 einzigen neuen excel-Datei.
- Die excel-sheets, auf die Dateien, die ich öffne sind nicht leer.
- Eigentlich fand ein frei verfügbares add-in für das Super funktioniert: rondebruin.nl/win/addins/rdbmerge.htm
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem inneren Schleife fügen Sie ein neues Arbeitsblatt, um Ihre 'abgeschlossen' - Arbeitsmappe ('Blatt') UND kopieren Sie ein Arbeitsblatt, bevor Sie es für jede source-Blatt. Also jedes 'Blatt' von Ihrer
Add
Befehl wird leer sein in der Tat erstellen Sie zwei Blätter für jede source-Blatt. Ein weiteres problem ist, dass - wie Sie bereits erwähnt - arrays in excel sind 1-basiert, so dass Sie haben zu Durchlaufen, bisj <= count
nichtj < count
.Also ich denke, dass code besser funktionieren würde:
Versuchen die links unten
Wie zum Zusammenführen von zwei excel-Dateien in ein sheet-Namen?
http://www.codeproject.com/Tips/715976/Solutions-to-Merge-Multiple-Excel-Worksheets-int
Den einfachsten Weg zum Zusammenführen von Arbeitsblättern in eins wird durch einen Dritten Teil-Komponente namens Spire.Xls. Es ist ein standalone .NET-Komponente.