系统给你发送了 report.xls,你双击打开,Excel 弹出警告:
文件格式和扩展名 'report.xls' 不匹配。 仍然打开的话,它要么正常工作,要么在屏幕上显示标记。将其上传到
Excel 查看器 替代——它读取文件的实际类型,而不是文件名。XLS、XLSX、CSV、ODS 以及宏、二进制和模板变体,
最大 20 MB,关闭标签页后即被删除。

扩展名是声明,而非事实
没有任何限制阻止程序随意写入字节并将结果命名为 .xls,而且大量程序确实如此。报告工具、ERP、银行门户和管理面板都提供“导出为 Excel”,实现该功能的最简方式是输出其他格式并给它 Excel 扩展名,因为 Excel 通常会打开它。
自 Excel 2007 起,文件在打开前会进行检查,这就是警告出现的原因。这并不是损坏信息,而是 Excel 告诉你文件名不正确。
找出你实际拥有的文件类型
在文本编辑器中打开文件——记事本即可——并查看第一行。以下五种情况几乎涵盖了所有文件。
<html,<head>或<table— 带有电子表格名称的 HTML 表格。浏览器和网页报告经常生成此类文件。<?xml— SpreadsheetML,Excel 2003 使用的 XML 工作簿格式。PK— ZIP 压缩包,即带有错误扩展名的真实 XLSX(或 ODS、DOCX)。- 以字节
D0 CF 11 E0开头的不可读二进制 — 真实的 2007 之前的 XLS。它正是它所声称的那样。 - 普通可读文本,值之间用逗号、分号或制表符分隔 — 分隔文本文件,即冒充他人名称的 CSV。
每种冒名顶替者的代价
了解这些的意义在于它们各自会失去不同的内容。
HTML 表格 仅包含数值和部分格式,完全没有公式。导出系统已经计算出结果并写入答案。没有底层数据可供重新计算,且在传输过程中没有任何内容丢失——因为根本没有写入公式。
SpreadsheetML 保留公式和单元格格式。但它无法包含图表和数据透视表;该格式没有存储这些的方式,因此它们在文件写入时就被丢弃,而不是在打开时。
错误命名的 XLSX 不会失去任何内容。它是完整的现代工作簿,唯一错误的只有文件名的六个字符。
分隔文本文件 仅包含数值,别无其他:没有公式、没有格式、没有第二张工作表。如果它看起来像一列带逗号的文本,则分隔符不是你的 Excel 所期望的那种。
一次性修复方法
对于任何需要保留的文件,先在 Excel 中忽略警告打开,然后选择 文件 → 另存为 → Excel 工作簿(.xlsx)。这样你就拥有了真实的工作簿,警告也彻底消失。
对于错误命名的 XLSX,只需重命名即可。重命名并不是转换,几乎从不奏效——但这是唯一例外,因为内容本身已经是正确的。
那些并非冒名顶替者的文件
.xlsb 看起来可疑,但其实不是。它是真正的 Excel 工作簿,以二进制而非压缩 XML 存储:数据相同,却明显更小,在大型模型上打开更快。如果同事发送给你这种文件,完全没有问题。
无论文件实际是什么,Excel 查看器 都能打开并显示工作表。