在Office 2007之前,Excel最多有65,000行。 Office 2007突破了最多100万行,这当然更好;但我很好奇 - 为什么会有限制?显然,随着电子表格大小的增加,性能会逐渐降低;但是,通过从一个小工作表开始并仅根据需要动态“重新调整”它,对Excel进行优化应该不是很难。 鉴于将限制从65K增加到100万必须完成多少工作,为什么它们不会一路走下去,因此仅受可用内存和磁盘空间的限制?
答案 0 :(得分:34)
(由于错误而更新......向所有人提出建议:在完全清醒之前不要在SO上发帖)
可能是因为优化。 Excel 2007最多可包含16 384列和1 048 576行。奇怪的数字?
14位= 16 384,20位= 1 048 576
14 + 20 = 34位=多于一个32位寄存器可以保存。
但是他们还需要存储单元格的格式(文本,数字等)和格式(颜色,边框等)。假设它们使用两个32位字(64位),它们使用34位作为单元编号,其他东西使用30位。
为什么这很重要?在内存中,他们不需要分配整个电子表格所需的所有内存,而只需要分配数据所需的内存,并且每个数据都标记在它应该位于的单元格中。
2016年更新:
找到Microsoft's specification for Excel 2013 & 2016
的链接答案 1 :(得分:9)
一句话 - 速度。最多一百万行的索引适合32位字,因此可以在32位处理器上有效使用。适合CPU寄存器的函数参数非常有效,而较大的函数参数需要在每次函数调用时访问内存,这是一个非常慢的操作。更新电子表格可能是涉及许多单元格引用的密集操作,因此速度很重要。此外,Excel团队希望处理超过一百万行的任何人都使用数据库而不是电子表格。