首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

并行Excel
EN

Stack Overflow用户
提问于 2013-04-04 19:17:44
回答 1查看 1.5K关注 0票数 0

我有一个在excel中插入数据和创建图表的程序。所有的“数字运算”都是在程序中完成的(使用linq),所以excel只用于创建图形。最终的excel有大约300个工作表(50个包含数据的工作表和250个图表)。这就是性能问题。虽然linq和regex的操作非常快,但excel在生成所有图形时需要4分钟以上。我考虑了并行扩展,将图形分成了5个excel文件。

我的问题是,我是不是在浪费时间。我的意思是:4分钟内的250个图形相当于每个图形1秒。excel并行生成图形的速度应该比这更快吗?我还注意到,当文件较大时,excel (和大多数程序一样)的运行速度会变慢。如果你有一个10MB的excel并插入一个图表,需要1秒钟,如果你有一个10KB的excel,它现在插入(可能这只是我的印象...)。

如果答案是我应该使用并行扩展,我应该使用相同的excel应用程序和不同的excel文件,还是更好地为每个文件使用不同的excel应用程序?

EN

回答 1

Stack Overflow用户

发布于 2013-04-04 19:32:08

尝试用Excel来做这件事将会带来很多痛苦。使用众多优秀的.net制图库中的一个来制作图表。

如果由于某些其他原因,您必须使用Excel,那么您将需要单独的工作簿。一次只能有一个线程对工作簿进行操作。我相信多线程可以在多个工作簿上并行操作,虽然我自己从来没有这样做过,但我看不出它为什么不能工作。

你现有的代码很有可能会得到显著的加速。是否在向Excel添加数据时禁用屏幕更新?是否禁用自动重新计算?您是将数据逐个单元格推送到Excel中,还是一次性将整个范围的数据推送到Excel中?一个细胞接一个细胞的速度非常慢。您希望最大限度地减少对Excel的调用次数,因为调用进程外COM服务器的IPC开销很大。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15809655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档