1

根据我的客户要求,我们正在用OPENXML SDK代替ASPOSE技术来读写Excel 2007(.xlsm宏文件),实际上我们可以使用openxml sdk来完成这项工作。

然而,当我们比较执行时间时,问题就开始了,如果数据太大(例如 18k 的数据)无法读取或写入,ASPOSE 与 OPEN XML SDK 相比太快了。

我们采用以下链接中给出的以下方法,它可以完美运行,但真正的问题是执行时间太长,在此期间我们会释放 trasaction 超时。

http://msdn.microsoft.com/en-us/library/office/hh180830.aspx

如果 OPENXML SDK 未能在比 ASPOSE 更短的时间内交付结果,那么只有 OPENXML SDK 才会被接受,否则我们寻找和编写开放 xml sdk 代码的努力是徒劳的。

基本上,我们已经在数据集中获取整个巨大的数据,并使用上述任何技术进行写入。

任何有助于提高编码方面的性能的帮助都将受到高度评价。

4

1 回答 1

0

问题是工作集之一,而不是 IO 时间之一。分配过多的内存会减慢您的应用程序速度,而不仅仅是任何其他因素。最好使用流式方法。前段时间,我录制了一个使用流式传输方法的屏幕录像 - 它以每秒 10,000 行左右的速度生成工作表(对于具有 20 列数据的行)。这接近 IO 限制,因此很难加快速度。您将需要使用更快的磁盘。

您可以在此处找到截屏视频和示例代码:

http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2012/01/10/screen-cast-using-open-xml-and-linq-to-xml-in-a-streaming-fashion-to-创建巨大的电子表格.aspx

-埃里克

于 2012-11-07T08:49:17.623 回答