c# - OpenXML SDK 保存 .xlsx 文件丢失

标签 c# openxml openxml-sdk

我正在使用 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/

相关文章:

.net - 使用 open xml sdk 代码,如何调整表格(在 ms word 文档中)以适应页边距?

openxml - Word文档中不同类型的超链接

c# - 使用 XML 直接签署 Office Word 文档

c# - 是否有工具可以查找使用 OpenXML SDK 创建的 Excel 文档中的错误?

c# - 在 Wp7 中访问相机,带缩放

c# - 在 ASP.NET Core 中到达 Controller 之前拦截不良请求

c# - Entity Framework - 对同一个数据库使用 2 个 DBContext

c# - 使用 "greater than or equals"或仅使用 "greater than"

c#-4.0 - 按顺序枚举 PowerPoint 幻灯片

excel - 使用 SSIS 填充使用 OOXML 生成的 Excel 工作簿