一个做财务的客户发来一个表,说打开提示「文件已损坏」。我让她先别点修复,把文件大小报给我。原表 2.3M,现在 18K,这就不是「损坏」,是内容没了。
打不开、能打开但满屏 #REF!、能打开但少了几十行,这是三件事,原因不一样,修法也不一样。
第一种是文件结构坏了,头信息读不出来,Excel 直接拒绝打开。第二种是公式引用的单元格没了,结构是好的。第三种最麻烦,文件是好的,数据本身缺了。

看大小、能不能开、缺什么
判断顺序:先看文件大小,再看能不能打开,最后看打开之后缺什么。这三步走完,心里就有数了。
Excel 自带一个修复入口:文件、打开、浏览,选中文件之后别双击,点右下角箭头,选「打开并修复」。
它会给两个选项:修复和提取数据。先试修复,修不好再选提取。提取的模式是把能读的单元格尽量读出来,格式会丢,值能保住。

打开、点箭头、修复、另存
修完另存为新文件,别覆盖原件。原文件多留一份,后面还有别的办法要用它。
满屏 #REF! 说明公式指向的单元格被删了。这不是文件坏,是引用断了,把公式改回来就行。
满屏 #NAME? 多半是函数名不对,比如把 XLOOKUP 用在了老版本上。 #VALUE! 是参数类型不对,文本参与了计算。

#REF! 和 #NAME? 两类错误
还有一种循环引用,Excel 会提示「存在循环引用」,表能打开,但算出来的数是 0。这种在公式、错误检查里能找到具体是哪个单元格。
Excel 崩溃或者断电,没保存的内容可能还在。路径是 C:\Users\用户名\AppData\Local\Microsoft\Office\UnsavedFiles。
同目录下还有以 ~$ 开头的临时文件,那是打开时生成的锁文件,正常关闭会自己删掉。异常关闭留下的,有时能改名成 xlsx 打开。

UnsavedFiles、版本历史、邮件附件
Office 365 还有「版本历史」,在文件、信息里能看到。开了自动保存的,改坏了也能回到半小时前。
打开正常、格式正常,就是少了最后几十行。这种文件本身没坏,是保存的时候没写全,或者被别的版本覆盖了。
能找的地方:OneDrive 的历史版本、邮件里发过的附件、同事手里传过的那一份、U 盘上的旧拷贝。
这几个地方都没有,就只剩恢复软件扫原盘。删掉又被覆盖的 xlsx,恢复出来的常常是半截,能不能用要看运气。
| 症状 | 多半是什么 | 能不能救 | 怎么做 |
|---|---|---|---|
| 提示文件已损坏 | 文件头坏了 | 多半能 | 打开并修复 |
| 打开是一片空白 | 内容区丢了 | 难 | 找备份 |
| 满屏 #REF! | 引用被删 | 能 | 改公式 |
| 少了几十行 | 保存没写全 | 看备份 | 找历史版本 |
| 文件只剩几十 K | 内容被截断 | 基本不能 | 重做 |
先看大小再看症状。大小掉到原来的百分之一,任何修复工具都救不回来。
修完格式全乱了怎么办
正常。修复工具保的是值,不是格式。修完先核对数字,格式重新刷一遍,比重新录入快得多。
文件加密了还能修吗
能修,但要先有密码。加密的文件结构是完整的,只是内容被包了一层,没有密码连Excel自己都打不开。
先看文件大小,再看能不能打开。大小对得上多半能修,只剩几十 K 的基本是从头再来。