【问题标题】:Opening a huge .csv file with Excel Interop使用 Excel 互操作打开一个巨大的 .csv 文件
【发布时间】:2010-04-29 04:32:03
【问题描述】:

我有一个应用程序可以编写大小从 1 GB 到 2 GB 的巨大 .csv 文件。

我需要对文件进行颜色编码并将其保存为 .xlsx。

所以我尝试使用 Excel Interop,它对小文件非常有效,但是当我尝试使用 Excel 打开一个 1.3 GB 的 .csv 文件时,我收到 Hresult 错误。

关于如何使用 Excel 或是否有其他方法来完成此任务的任何想法。

【问题讨论】:

  • 我在一两周前遇到了一个问题,Excel 2003 无法处理每个工作表超过 65536 行,因此只能显示部分文件(我们的解决方案是在它之前拆分文件达到 65536 行限制)。列数也有类似的限制,但由于我没有达到这个限制,我不知道那个数字是什么;)仅供参考......
  • 您使用的是哪个 Excel 版本,您得到的确切错误代码是什么?

标签: c# excel interop


【解决方案1】:

您是否超过 1M 行? 也许这就是 HRESULT 错误的原因。

在 Excel 2007 之前最多 64K 行。2007 年为 1M 行

【讨论】:

  • Excel 2007 也达到极限了吗?我从同事那里听说过“无限”,但我猜他们只是没有足够的数据! ;)
  • office.microsoft.com/en-us/excel/ha100778231033.aspx - 在 Excel 2007 中,工作表大小为 16,384 列 x 1,048,576 行,但早期版本的 Excel 的工作表大小仅为 256 列 x 65,536 行。
  • @FrustratedWithFormsDesigner:当然 Excel 2007 也有限制,任何机器的资源都是有限的(这里的一个边界是 32 位进程的 2 GB 内存限制)。事实上,大型 Excel 工作表是现在 Office 2010 附带 64 位版本 Office 的原因之一。
【解决方案2】:

有一些方法可以在不使用 excel 互操作的情况下编写和读取 excel 文件。我很确定我记得微软自己对 excel 文件格式有开放规范。

【讨论】:

  • 啊,没关系,大概就是上面说的,拆分文件吧。
【解决方案3】:

感谢大家的回复,我想了想,还是决定直接使用.csv文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多