Excel中的最大表(ListObject)大小

我为我的一个客户开发了一个Excel解决scheme,围绕着一个大表(直到列DI)。 它充满了大约25%的数据和75%的公式。 当我们现在粘贴43000行数据时,Excel 2010开始呻吟和呱呱叫。 保存工作簿并重新打开后,Excel需要很长时间,最后告诉工作簿已损坏。

我已经排除了我们从一本腐败的工作手册开始的可能性; 我用新的大小的表格创build了一个新的工作簿,添加了43000行数据(这个速度很快),然后逐个添加所有的公式(通过复制公式文本,而不是复制/粘贴单元格)。 保存并重新打开工作簿后,它又被损坏了。

我已经尝试了10000行,这很好。 大约18000行,问题再次引发了丑陋的头脑。 我也删除了表格中的所有格式,但没有任何区别。

这是一个已知的问题? 你们有没有人知道是否有一个安全的行/单元格/复杂性限制表? 我应该向微软发布一个错误报告吗?还是这个自我造成的? 🙂

添加

感谢@Jeeped我调查了如何使用.XLSB格式的行为,并在该格式的文件是好的。 重新保存为.XLSX,并且该文件再次立即“损坏” – 即,Excel在打开时实际崩溃。 虽然XMLStarlet(包含1250万个元素)检查工作表本身的XML似乎是有效的。 这可能是Excel的加载例程中的一个错误?

在尝试了这一点之后,我确信这是Excel加载例程中的一个错误。 当我推动表到一定的限制时,生成的文件将不会再打开,导致Excel崩溃或告诉我工作簿已损坏。 在问题中提到的限制发生在约20000行。 然而:

  • 保存为.xlsx意味着该文件在20000行被损坏,将其保存为.xlsb并没有真正解决这个问题,但是它将限制提高了两倍,达到40000(对于这个项目来说足够了,但仍然不能令人满意)。
  • 表中的列数很重要; 更多的列越less我需要这样的事情发生。
  • 列中公式的性质很重要, 我有4列巨大的公式(select有很多参数),只是删除那些使最大行数增加了一个因素2。
  • 当创build的工作簿刚好在最大行数上时,在Excel中打开另一个工作簿时打开它导致Excel出错,同时closuresExcel并从Excel打开它不会导致Excel出错。

所以,我想除了希望微软能够解决这个问题之外,没有任何解决办法,同时也应用了解决方法。