如何修复损坏的 Excel 文件

sv8*_*v88 7 windows microsoft-excel macos

我正在尝试为一位朋友恢复一些文件,该朋友因过早将 USB 记忆棒从计算机中拔出而弄乱了它。通过搜索不可见的分区,我能够恢复文件。除了 1 个似乎已损坏的 Excel 文件外,所有文件都完好无损。

我在谷歌上搜索了修复 Excel 文件的方法,因为 Excel 2003-2010 中的默认修复选项不适用于该文件。我遇到了许多第三方应用程序,其中一个似乎能够完成这项工作:Recovery Toolbox for Excel。

当然,这个和我发现的所有其他应用程序都需要购买才能实际修复文件。为一次性的东西支付 30 美元似乎有点傻,而且不适合我自己的东西。所以,我想把它作为最后的选择。

有什么我可以尝试解决这个问题的吗?我附上了一个屏幕截图,显示当我在 OSX 上打开它时转换为 HTML 文件(以查看代码)时文件的外观,作为选项,它可能是字符集问题。

在此处输入图片说明

Lin*_*000 10

不能保证工作,但要尝试的一件事是查看OpenOfficeLibreOffice是否可以打开文件。这些软件套件当然更能容忍不可靠的 Word 文件,我已经通过这种方式拯救了一些文档。


pnu*_*uts 7

感谢TechRepublic。其中位于:

1:让Excel试试

如果 Excel 的自动恢复模式失败,则可以使用手动功能来恢复损坏的工作簿:

  1. 从文件菜单中选择打开。在 Excel 2007 中,单击 Office 按钮并选择打开。
  2. 使用 Look In 控件,找到并指定损坏的工作簿。
  3. 从打开按钮的下拉列表中,如图 A所示,选择打开并修复。
  4. 如果这是您第一次尝试手动恢复工作簿,请在出现的对话框中单击修复,如图 B所示。

图一

尝试手动恢复损坏的工作簿。

图B

您可以修复工作簿或从损坏的工作簿中提取数据。

如果幸运的话,Excel 将修复该文件。但是,此功能会在 Excel 出现问题时恢复文件,因此它不会恢复每个损坏的文件。尽一切努力恢复文件后,您可能不得不只恢复数据。如果是这种情况,请单击步骤 4 中的提取数据。

2:如果在工作簿打开时发生损坏

如果在工作簿打开时发生损坏,请不要保存工作簿。您只需保存损坏工作簿的任何内容以及最近的更改。相反,恢复到上次保存的版本。这样做,而不先保存应该丢弃损坏的组件。您可能会丢失数据,但通常情况下,您可以足够快地重建(这是经常保存工作的好理由)。要恢复到上次保存的版本,请执行以下操作:

  1. 从文件菜单中选择打开。在 Excel 2007 中,单击 Office 按钮并选择打开。
  2. 使用 Look In 控件,找到并指定损坏的工作簿。
  3. 单击打开。

您实际上只是重新打开工作簿 - 没有什么特别的事情发生。

3:禁用自动计算

如果 Excel 无法自行或通过“打开并修复”选项打开文件,请尝试将计算方法设置为手动,然后重试。重置计算设置:

  1. 打开一个新的空白工作簿。
  2. 从工具菜单中,选择选项并单击计算选项卡。在 Excel 2007 中,单击 Office 按钮,单击 Excel 选项,然后在左侧面板中选择公式。
  3. 在计算部分(Excel 2007 中的计算选项)中,单击手动。
  4. 单击确定。

然后,尝试打开损坏的工作簿。有时,如果不需要重新计算,Excel 可以打开损坏的工作簿。

4:试用 Microsoft Office 工具

如果 Excel 无法打开损坏的工作簿,请试一试 Microsoft Office 工具:

  1. 从开始菜单中,选择所有程序(在 Windows XP 中)。
  2. 选择 Microsoft Office。
  3. 选择 Microsoft Office 工具。
  4. 选择 Microsoft Office 应用程序恢复。
  5. 在出现的对话框中,如图C所示,选择 Microsoft Office Excel。
  6. 单击恢复应用程序。该过程可能需要几分钟时间。
  7. 响应将报告发送给 Microsoft 提示。

图C

Office 工具可能会恢复损坏的工作簿。

恢复工具将关闭 Excel,然后重新启动它,显示已恢复工作簿(如果有)的列表。如果幸运的话,您损坏的工作簿将在列表中。只需打开它并计算您的祝福。

5:移动文件

有时,损坏的工作簿并不是传统意义上的真正损坏。它只是无法像往常一样访问;网络和服务器通常将错误掩饰为损坏的文件。如果您遇到 Excel 无法修复的看似已损坏的工作簿,请将损坏的文件移动到另一个文件夹、驱动器或服务器。

6:让比赛试一试

有些人声称使用 OpenOffice Suite(Microsoft Office 的免费开源替代品)获得了非常好的结果。该套件的 Excel 对应项 Calc 应打开损坏的 Excel 文件。不幸的是,这意味着下载时间很长,但如果它有效,那就值得付出努力。

7:在写字板或 Word 中打开损坏的工作簿

如果您无法修复工作簿,请尝试在写字板中打开它。如果它有效,写字板会将所有内容转换为文本 - 但您离恢复重要数据又近了一步。不幸的是,这种方法不会恢复公式。另一方面,与许多其他数据恢复方法不同,写字板将恢复您的 VBA 程序(宏)。只需搜索恢复的文本SubFunction找到它们。您也可以在 Word 中打开损坏的 .xls 文件,但结果会受到限制。要使用此方法,您必须安装 Microsoft Office Excel 转换器。与写字板不同的是,Word 不会恢复您的程序。

8:使用外部引用

有时,您可以通过引用损坏的工作簿中的实际单元格来恢复数据。您不会恢复公式、格式、图表、宏等,但恢复数据总比不恢复任何东西要好。要通过引用损坏的工作簿来恢复数据,请执行以下操作:

  1. 打开一个新工作簿并在单元格 A1 中输入以下形式的公式以引用损坏的工作簿中的 A1:=nameofcorruptedworkbook!A1。(您不需要在文件名中包含 .xls。)
  2. 按 Enter。
  3. 如果损坏的工作簿不在同一文件夹中,Excel 将显示更新值:损坏的工作簿名称对话框。使用 Look In 控件定位损坏的文件。选择文件并单击确定。
  4. 如果出现“选择工作表”对话框,如图 D所示,选择合适的工作表并单击“确定”。Excel 将在损坏的工作簿的单元格 A1 中显示该值。
  5. 选择单元格 A1 并根据需要将其拖过尽可能多的列,以容纳损坏文件中的数据。如果 Excel 显示更新值:nameofcorruptedworkbook 对话框,请选择损坏的文件并单击确定。
  6. 重复步骤 5.,将行 A 向下复制尽可能多的行以容纳损坏文件中的数据。
  7. 选择数据并从编辑菜单中选择复制。
  8. 从 Edit 菜单中选择 Paste Special 并选择 Values,如图 E所示。
  9. 单击确定。

图D

如果损坏的文件有多个工作表,请指定一个工作表。

图E

用数据替换参考公式。

9:尝试SYLK格式恢复数据

Microsoft 建议使用 SYLK 格式过滤掉损坏的元素,尤其是在损坏与打印机相关的情况下。您必须能够打开损坏的工作簿才能使以下内容正常工作:

  1. 从文件菜单中,选择另存为。在 Excel 2007 中,单击 Office 按钮。
  2. 从 Save As Type 控件中,选择 SYLK (Symbolic Link) (*.slk),如图 F所示。
  3. 为活动工作表指定一个描述性名称,例如corruptedworkbooknameSheet1。如果工作簿只有一张纸,则不需要此步骤。
  4. 单击保存。
  5. 如果工作簿有多个工作表,Excel 会询问您是否要继续,因为所选格式不支持多个工作表。单击确定。
  6. 如果 Excel 提示您警告工作簿可能包含与 SYLK 格式不兼容的功能,请单击是。

图 F

使用 SYLK 格式保存每个工作表。

重要的是要知道 SYLK 格式只保存活动工作表。但是,在您关闭并重新打开 .slk 文件之前,您不会注意到该格式已删除了所有页面,但删除了活动页面。要从所有工作表中恢复数据,您必须重新打开损坏的工作簿并单独保存每个工作表。这就是步骤 3. 指示您为工作表指定一个描述性名称的原因。在重建多页工作簿时,您会发现这些名称很有用。将所有工作表保存为 SYLK 格式后,打开 .slk 文件之一并使用 .xls 格式重命名。注意不要使用损坏的工作簿的名称。重建工作簿后,您可以丢弃损坏的文件或重命名它,从而释放原始名称。在确定已恢复尽可能多的数据之前,不要更换它。然后,通过从 .slk 文件导入或复制数据来重建工作簿。这是一个乏味的过程,但如果没有其他任何效果,则值得付出努力。此方法保存由公式产生的值,但不保存公式本身。

10:恢复宏

如果您可以通过前面的提示之一恢复数据但不能恢复宏,那么您仍然可以保存宏 - 至少有时是这样。要尝试,请执行以下操作:

  1. 打开 Excel,但不要打开损坏的工作簿。
  2. 将计算模式设置为手动(参见 #3)。
  3. 从工具菜单中选择宏,选择安全,然后选择高选项。在 Excel 2007 中,单击 Office 按钮,单击 Excel 选项,然后在左侧面板中选择信任中心。然后,单击“信任中心设置”按钮,在左侧面板中选择“宏设置”,在“宏设置”部分中选择“禁用所有宏而不通知”,然后单击“确定”两次。
  4. 打开损坏的工作簿。如果 Excel 打开工作簿,您将看到宏已禁用的通知。如果 Excel 关闭,则此方法将不起作用。
  5. Alt+F11打开 Visual Basic 编辑器 (VBE)。
  6. 使用项目资源管理器(按Ctrl+R),右键单击一个模块,然后选择导出文件。
  7. 输入模块的名称和文件夹。
  8. 根据需要多次重复步骤 6. 和 7. 以导出所有模块。
  9. 关闭 VBE 并退出 Excel。
  10. 打开一个新的空白工作簿(或包含从损坏的工作簿中恢复的数据的新构建的工作簿)并导入模块。