你有一个电子表格但没有 Excel。将它上传到Excel 查看器,它会在此标签页中打开:XLS、XLSX、CSV、ODS 以及宏和二进制变体,大小最高 20 MB,关闭后即被删除。

接下来有一点值得理解,因为它解释了大多数在你未编写的电子表格中看起来错误的情况:查看器不会重新计算。以下内容皆由此推导。
屏幕上的数字就是 Excel 保存的数字
每个公式单元格包含两件独立的内容:公式本身,以及 Excel 上次计算时得出的结果。任何在没有计算引擎的情况下读取工作簿的工具都会读取第二项。通常你不会注意到,因为保存的结果是正确的。以下三种情况会让它显现出来。
计算被设置为手动。 在“公式”→“计算选项”中,有人选择了手动——通常是为了阻止大型模型在每次键入时重新计算——然后保存。存储的数值就是当时屏幕上显示的内容,可能已经相差数小时甚至数年,并且看起来完全正常,却是错误的。
机器生成了文件。 由报表工具或脚本生成的工作簿通常包含没有任何缓存结果的公式,因为生成它们的库无法评估公式。这些单元格会显示为空或零。没有损坏,也从未执行过这些公式。
函数是易变的。 =TODAY()、=NOW()、=RAND() 和 =OFFSET() 会在每次 Excel 打开文件时重新计算,因此存储的就是上次保存时的数值。标题为“截至今天”的工作表实际上在告诉你上一次有人按下 Ctrl+S 的时间。
链接到另一个工作簿也存在同样的问题,只是距离更远一步
类似 ='C:\Reports\[Q3-Actuals.xlsx]Summary'!B4 的引用指向他人磁盘上的文件。你只上传了一个工作簿,而不是它所在的文件夹,因此显示的是上一次成功刷新时缓存的数值。如果在你收到文件之前链接已经失效,单元格中会存储 #REF!,渲染时也会显示 #REF!——这是一种作为数据保存的错误,而不是当前发生的错误。
网格的实际边界
这两种 Excel 格式的上限差异很大,当有人保存时就会受到影响。XLSX 支持 1,048,576 行 × 16,384 列,最后一列为 XFD。较旧的 XLS 则限制为 65,536 行 × 256 列,最后一列为 IV。将现代工作簿另存为 .xls 时,超出这些限制的内容会在保存时被丢弃。查看器无法显示已不在文件中的行。
日期是穿着伪装的数字
电子表格中的日期实际上是天数计数,只是通过数字格式显示为日期。清除格式后,日期会重新变成整数。由此产生两个后果。
工作簿在较旧的 Mac 版 Excel 中创建时可能使用 1904 日期系统而非 1900 系统。若在另一种约定下打开此类文件,所有日期都会偏移 1,462 天——四年零一天——而每个数值在技术上仍然有效。
而且 Excel 会计入 1900 年 2 月 29 日——一个实际上不存在的日期,因为 Lotus 1-2-3 这样做且在 1985 年兼容性比日历更重要。工作簿中跨越该日期的任何日期运算都会多出一天。
看似损坏但其实不是的情况
- 单元格显示
#####表示列宽不足以容纳其格式化后的数字。在源文件中扩大列宽,数字仍然存在;数值从未受到影响。 - 数据透视表 是从其旁边存储的透视缓存渲染的。它是上一次刷新时源数据的快照,这就是为什么透视表可能与其生成的工作表不一致的原因。
- 打开 .xlsm 时宏不会运行。 渲染工作簿并不等同于执行它,查看器没有理由运行任何人的 VBA。
- 工作表保护并非加密。 受保护的工作表只是一个标记,表示“不要编辑”,并且会正常显示。需要密码才能打开的工作簿才是真正加密的,若没有密码则无法渲染。
如果电子表格不断阻碍你的工作,Excel 查看器 是值得收藏的页面。