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
Schreibe einen Kommentar