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