合并工作簿的不同工作表

时间:2012-10-20 05:25:57

标签: c# excel merge office-interop

整合应用程序在合并单个选项卡式工作簿时工作正常。但后来我添加了一些功能,在将书与另一本书合并之前,还合并了书中的所有工作表。

它合并它们(在单个多拖动wbook上测试),但在某些时候开始搞乱它。 例如

结果:

  • Sheet 1中 -empty lines-sheet2 -empty lines-sheet3 + sheet4的一半 -empty lines-sheet2再次不是全部,缺少一些值

等...

我不确定代码是否需要额外的内容,或某些工作表中的问题。

继承关键部分:

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 ;
  }

0 个答案:

没有答案