如何在不逐个单元格的情况下从DataSet将数据存储到Excel?

时间:2009-05-27 21:29:57

标签: c# visual-studio-2008 excel dataset

重复What’s the simplest way to import a System.Data.DataSet into Excel?

在VS2008下使用c#,我们可以创建一个excel应用程序,工作簿,然后通过这样做来处理工作表:

Application excelApp = new Application();
Workbook excelWb = excelApp.Workbooks.Add(template);
Worksheet excelWs = (Worksheet)this.Application.ActiveSheet;

然后我们可以通过“excelWs.Cells [i,j]”访问每个单元格并写入/保存没有问题。但是,如果行/列数量很多,我们预计效率会下降。

有没有办法从DataSet对象“数据绑定”到工作表而不使用逐个单元格的方法?我们在某些时候看到的大多数方法都转向了逐个细胞的方法。感谢您的任何建议。

4 个答案:

答案 0 :(得分:0)

为什么不使用OLEDB提供程序使用ADO.NET?

请参阅:Tips for reading Excel spreadsheets using ADO.NET

答案 1 :(得分:0)

这是一个重复的问题。

请参阅:What's the simplest way to import a DataSet into Excel

(答案是,使用OleDbConnection并从Excel中读取数据集)。

答案 2 :(得分:0)

不是逐个单元格,而是将对象的二维数组设置为excel范围更快。

object[][] values = ...
ws.Range("A1:F2000").Value = values;

然而,OleDb方式仍然比上面快得多。

答案 3 :(得分:0)

您还可以将GridView呈现为字符串,并将结果作为HTML或XLS保存到客户端。如果使用XLS文件扩展名将数据与Excel关联,则在Excel中打开文件时会看到错误。它不会伤害任何东西,您的HTML数据将在Excel中打开并且看起来很完美......