如何解决 "Excel在(文件名)中发现不可读内容 "的错误?
有时,当我在Excel 2010中打开某些工作表时,我看到标题中的信息。Excel然后问我是否要修复该文件。我说 “是的",Excel就报告说该文件已修复。一个日志文件说removed records
。
然而,文件中似乎并没有丢失任何东西,工作簿中的所有工作表和VB宏都很好。 有什么建议吗?
有时,当我在Excel 2010中打开某些工作表时,我看到标题中的信息。Excel然后问我是否要修复该文件。我说 “是的",Excel就报告说该文件已修复。一个日志文件说removed records
。
然而,文件中似乎并没有丢失任何东西,工作簿中的所有工作表和VB宏都很好。 有什么建议吗?
我没有所谓的 “满意的 "解决方案,但我有一个解决方法(有点!),如果工作簿在2010年无法修复,我有一个解决方法:
我不知道实际的 "损坏 "是哪里来的。显然,Office 2010对检查文件的问题比Office 2003要 "挑剔 "得多。根据微软的说法:
"请记住,如果不是不可能的话,通常很难确定腐败来自哪里。损坏可能存在于工作簿的 "shell "中,也可能存在于某些区域,如PivotTable、样式、定义的名称、对象或计算链/公式。损坏可能由许多不同的情况造成,例如,保存时的网络故障,电源浪涌,从另一个文件中复制和粘贴损坏的文件,等等。你可以把文件损坏比作是在你的轮胎上扎了一颗钉子。钉子可能会在你的轮胎上卡了很长时间而你却没有察觉到,然后突然间你的轮胎就瘪了,或者文件变得无法读取或者显示出奇怪的症状。”
我觉得这个比喻很拙劣,但我希望这对你有帮助。在你从其他系统导入文件之前,先把工作簿的工作表的名字改一下。较长的名字会导致转换时出现问题
修复Excel工作簿,检查这个是否有帮助。
最有可能出现问题的原因是Excel文件是用OpenXML编码创建的,用于编程创建Excel文件,而不是使用Office.Interop,在服务器上使用时有安全问题。OpenXML格式是非常复杂的,虽然OpenXML很出色,但要创建出良好的Excel文件并不容易。这种错误可能是由于程序员设置了日期或数字格式的文本列这样简单的事情造成的。这可能是非常困难和耗费时间的,以至于程序员会放弃试图找到问题所在,每次都要打开保存生成的文件来消除错误,从而放弃了。你可以使用OpenXML SDK 2.5 Productivity Tool打开这些文件,如果你对其进行验证,通常会告诉你问题出在后台XML中,问题出在哪里。你也可以用Excel重新创建一个类似的Excel文件,然后在Productivity工具中打开它,看看两个文件的区别在哪里。
你可能正在尝试打开一个与其他文件有连接的文件。安全设置阻止了这些连接的自动更新,因此,Excel在链接是否可行的问题上感到困惑。除了与实际文件的链接,你可能还有与数据模型的链接,这些链接也依赖于外部文件,在打开文件时无法更新。转到数据->连接,检查是否是这种情况。如果这个问题让人无法忍受,请中断链接。
把你的excel文件移到别的文件夹里,打开它,就可以了。
在我的一个程序生成的工作表上发生了这样的情况。
原来,Excel对 “工作表中的超链接 "的数量有一个硬性限制,是66,530(见https://support.office.com/en-us/article/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3?ui=en-US&rs=en-US&ad=US)。
在减少超链接数量低于这个阈值后,工作表打开的时候,工作表就好了。(为了记录在案,OpenOffice Calc也能打开原始的、坏的文件,虽然打开速度很慢。)
我遇到了同样的问题,在深入研究这个问题后,我意识到excel中的表的名称有特殊字符,这是不允许的。
P.S.S.我是在代码中生成excel,从而动态设置表的名称。
原因:*遇到这个错误信息的最可能的原因是完整的Excel文件损坏,或者这个文件中的一个或多个对象损坏。
2.现在点击 “工具",选择 "常规选项”
3.最后点击 “只读 "复选框,使文档只读
打开一个新的空白的’.xls'文件,并将损坏的Excel文件中的所有内容复制到这个新文件中。保存这个文件并尝试再次打开它。
如果没有任何效果,那么在Office 2010中安装Visual Basic组件。