合并工作簿的不同工作表

整个应用程序工作正常,合并单个选项卡式工作簿时。 但是之后我添加了一些function来合并本书中的所有工作表,然后再合并本书。

它将它们合并在一起(在一个单一的多function笔记本上testing),但是在某个时候开始混乱了。 例如

结果:

  • sheet1 -empty lines- sheet2 -empty lines- sheet3 + half-of sheet4 -empty lines-sheet2 again not all,some some values missing

等等…

林不知道是否需要额外的代码,或在某些工作表中的问题。

inheritance人的关键部分:

for (int i = 0; i < pathList.Count; i++) { List<string> Sheet = GetSheetName(path); filename = GetFileName(path); MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'"); foreach (string SheetName in Sheet) { //OLEDB SECTION *********************************************** MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [" + SheetName + "$]", MyConnection); MyCommand.TableMappings.Add(pathList.Count.ToString(), filename); MyCommand.Fill(table); lstTable.Add(table); MyConnection.Close(); MyCommand.Dispose(); //************************************************************* } } 

和getSheetNames

 List<string> GetSheetName(string path) { Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; List<string> names = new List<string>(); xlApp = new Microsoft.Office.Interop.Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(path, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); foreach (Microsoft.Office.Interop.Excel.Worksheet i in xlWorkBook.Worksheets) if (i.UsedRange.Count > 0) names.Add(i.Name); return names ; }