数据集/数据表格到Excel模板文件.net

我知道有很多关于如何从数据集或数据表中写入数据到excel的问题,但他们似乎都假设一个新的空白excel工作簿。 我有一个特殊的Excel文件,其中包含多张格式,公式和图表。 我只需要将数据放在一些表格的适当部分,然后让excel处理剩下的部分。

所以我需要一种方法来将数据插入到某个现有的excel文件中,在某个范围内(可以根据行数的不同而不同)。 目前我使用COM互操作来写所有这是一个性能的噩梦,需要改变。 那么完成这个最好的方法是什么?

更多信息:我们有一个简单的mvc应用程序,让用户提交数据请求。 它启动这个控制台应用程序作为一个单独的过程来获取数据和build立Excel文件。 所以首先我们得到需要10-15秒的数据,然后我们把数据写入excel。 这是对细胞的价值的实际写作,似乎一直在采取。 Excel文件中的公式是否对写有影响,我不知道 ,但这正是我想要避免的。

更新:事实certificate,公式是写入速度的主要障碍。 我将Excel Application类的Calculation属性设置为XlCalculation.xlCalculationManual,现在运行速度更快! 这不是我的问题的正确答案,但它是什么工作。

谢谢shahkalpesh谁指出了这一点,Cj!

谢谢杰夫

我经历过同样的事情。 COM互操作可以是一个痛苦…我不知道你的整个情况,但你可以简单地将数据表导出到XML。 (Datatable.WriteXML)然后使用VBA吸入数据并进行parsing。 使用所有的.NET会更干净,但VBA速度快可能会相当快。

除此之外,我发誓有一个很好的免费图书馆,可以简化在Excel for .NET中的工作。 我不知道有什么types的performance….另一个select是VSTO( VSTO开发主页 ),这取决于你想要做什么也可能是一个很好的契合。 祝你好运!

更新:在这里你去这是我正在寻找: 文件助手

用于.NET的SpreadsheetGear可让您将DataTable插入到现有的工作簿中,适当地修改公式和格式,而无需使用COM Interop。

使用C#和VB源代码查看带有格式和公式示例的DataTable to Excel Workbook示例。

你可以在这里看到更多的ASP.NET实例,如果你想自己试试,可以在这里下载免费试用版。

免责声明:我自己的SpreadsheetGear LLC

在使用ADO的VBA中,

sh.Range("A2").CopyFromRecordset rs, 65536 

这比通过logging集更快。 有没有类似的VSTO方法?