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

时间:2010-02-12 19:45:21

标签: .net excel

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

因此,我需要一种方法将数据插入现有的Excel文件中,在特定工作表的某个范围内(可能会因行数而异)。目前我正在使用COM互操作来编写所有这是性能噩梦,需要更改。那么最好的方法是什么?

更多信息:我们有一个简单的mvc应用程序,可让用户提交数据请求。它将这个控制台应用程序作为一个单独的进程启动,以获取数据并构建excel文件。所以首先我们得到需要10-15秒的数据,然后我们将数据写入excel。这是对单元格的值的实际写入,似乎一直在进行。 excel文件中的公式是否对写入产生影响我不知道,但这正是我想要避免的。

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

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

谢谢你, 杰夫

3 个答案:

答案 0 :(得分:1)

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

除此之外,我发誓有一个很好的免费库,可以简化Excel for .NET的工作。我不知道有什么类型的性能....另一种选择是VSTO(VSTO Development Home),这取决于你想做什么也可能是一个很好的选择。祝你好运!

更新:在这里,我正在寻找这个:File Helper

答案 1 :(得分:0)

SpreadsheetGear for .NET将允许您将DataTable插入现有工作簿,正确修复公式和格式 - 无需借助COM Interop。

有关使用C#和VB源的实时ASP.NET示例,请参阅this page上的带有格式和公式的Excel工作簿示例

如果您想亲自试用,可以查看更多实时ASP.NET样本here并下载免费试用here

免责声明:我拥有SpreadsheetGear LLC

答案 2 :(得分:0)

在使用ADO的VBA中,您可以使用;

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

比穿越记录集要快得多。是否有类似的VSTO方法?

相关问题