我正在使用 OpenXML SDK 创建电子表格。电子表格有几个工作表、样式等。
- 当我在 Excel 中打开文件时,它呈现良好,没有错误,并正确显示所有单元格格式和数据。
- 当我在移动设备上打开文件时,根据应用程序的不同,我收到指示文件已损坏或完全丢失的错误。
我在 Excel 中打开了 .xlsx 文件并将其保存到另一个文件;然后我对相应的 zip 文件中的目录结构进行了比较。我注意到:
- 新副本(通过 Excel 处理的副本)现在可以在所有经过测试的移动应用程序上正确呈现。
- 只有新副本包括:
- /文档 Prop
- /xl/主题
- docProps/app.xml
- docProps.core.xml
- docProps/theme1.xml
- 只有旧副本包括:
- /xl/worksheets/_rels/
- sheet#.xml.rels
- 修改后的文件:
- 工作表#.xml
- 共享字符串.xml
- 样式.xml
- 工作簿.xml
- [Content_Types].xml
在保存之前我需要对这个文件做些什么来解决这些冲突?
最佳答案
问题似乎出在关系 URI 上。有关类似问题,请参阅此问题:
OpenXML spreadsheet created in .NET won't open in iPad
最大的问题是工作表 XML 文件必须是“sheet1.xml”而不是“/xl/sheet1.xml”,就像其他相关的 XML 文件一样。
关于c# - OpenXML SDK 保存 .xlsx 文件丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695511/