如何将多个C1TrueDbGrids控件中的数据导出到同一张excel表格中

经常出现一些情况使我们需要将数据导出到Excel表格中。数据源可能来自多个ComponentOne TrueDbGrid for WinForms控件以及其他数据绑定控件。然而使用C1TrueDbGrid控件的ExportToExcel方法我们无法将多个C1TrueDbGrid导出成单个Excel文件。

 

在我过去发表的一篇博客中我解释过:如何将多个C1TrueDbGrids导出到单个PDF

本文,我将解释如何把多个C1TrueDbGrid控件导出到一个Excel文件。

 

C1TrueDbGrids导出到Excel文件:

在绑定了多个C1TrueDbGrid控件后我们要使用ExcelExportToExcel方法把数据存到多个独立的Excel文件中。代码如下:

C1TrueDBGrid1.ExportToExcel("..\\..\\Excel1.xls",true);
C1TrueDBGrid2.ExportToExcel("..\\..\\Excel2.xls",true);

 

使用ComponentOne Excel控件:

然后使用ComponentOne Excel for WinForms控件导入在一个Excel工作簿中的不同工作表里的多个Excel文件,并保存到Excel工作簿中。

代码如下:

 

stringpath = Application.StartupPath;

intpos = path.IndexOf("\\bin");

path = path.Substring(0, pos);

stringtempdir = Application.ExecutablePath.Substring(0,

Application.ExecutablePath.LastIndexOf("\\") + 1);

stringxlsFileName = tempdir +"CombineSheets.xls";

if(System.IO.File.Exists(xlsFileName))

 {

    System.IO.File.Delete(xlsFileName);

 }

 

// clear the book

C1XLBook1.Clear();

C1XLBook1.Sheets.Clear();

stringfileName =null;

 

foreach(stringfileName_loopVariableinSystem.IO.Directory.GetFiles(path,"*.xls"))

 {

   fileName = fileName_loopVariable;

   // load Excel file

   C1.C1Excel.C1XLBook book =newC1.C1Excel.C1XLBook();

   book.Load(fileName);

 

   // clone and rename first sheet (sheet names must be unique)

   C1.C1Excel.XLSheet clone = book.Sheets[0].Clone();

   clone.Name ="Sheet"+ i;

   i = i + 1;

   // add cloned sheet to main book

   C1XLBook1.Sheets.Add(clone);

 }

C1XLBook1.Save(xlsFileName);

System.Diagnostics.Process.Start(xlsFileName);

 

 

至此结束,请下载样例工程了解详情:

 

ExportMultipleTDB_OneExcel_MultipleSheets_CS.zip (16.26 kb)