我使用OpenXML2.0 (DocumentFormat.OpenXml.dll)读取xlsm文件并更新一些单元格值,并将其保存为“MicrosoftExcel2007XML (.xlsm)|*.xlsm”。以编程方式编写所有单元格,它使用Microsoft 2007打开魅力(甚至Libre Office也是如此),但不使用Microsoft 2010打开文件。
我得到了下面的错误。
"Excel在'Test.xlsm‘中找到不可读的内容。要恢复此工作簿的内容吗?如果您信任此工作簿的来源,请单击“是”。
对警报说“是”,文件将被修复,并显示在警告警报下面。工作表变为空或某些数据未更新。
用XML错误替换部分: /xl/worksheets/sheet1.xml部件。加载错误。第1行,第0列。删除记录:来自/xl/calasechain.xml部分的公式(计算属性)
OpenXML2.0是否打算用于2007年格式?如果是这样的话,请指导我选择正确的SDK将数据导出到2010年格式。
谢谢,
致以敬意,
拉维。
发布于 2014-10-21 08:50:23
我找出了原因,而没有回答这个问题。
我使用一个xlsm文件作为模板,它将以编程方式读取,并从数据库中更新单元格值,并将更新后的文件保存为另一个xlsm文件。
实际问题是,引用/模板文件在我从数据库更新数据的单元格中有值。例如,单元格A14在模板中有值,我正在以编程方式读取模板并更新同一单元格A14的值。
刚刚清除了模板中的A14解决了我的问题.
奇怪的是,我得到的错误消息与实际问题无关。另外,我没有找到任何关于如何使用Open更新现有值的文档(特殊代码)?
https://stackoverflow.com/questions/26391492
复制相似问题