Open-XML-SDK:高效处理Office文档的框架,支持Word、Excel、PowerPoint操作

Open XML SDK by Microsoft

分支33Tags51
当前项目代码仓暂无内容

Open XML SDK

Note

3.0.0 版本引入了重大变更,您应当能够更新包并通过有限的修改重新编译。有关包含的问题和 PR,请参阅 v3.0.0 里程碑

Important

自 2024 年 4 月 2 日起,CI 源 URL 已更改。如果使用 CI 构建,请更新为新 URL。

下载量 构建状态 后端状态

Open XML SDK 是一个用于处理 Microsoft Office Word、Excel 和 PowerPoint 文档的框架。它包含用于 OPC 包、Flat OPC 文件以及两种形式的 Open XML 标记(即强类型类和 LINQ to XML)的低级操作 API。其设计旨在紧密遵循 Microsoft Office 对 ISO 29500 标准的实现,但并非旨在直接提供更高级别的抽象或生产力工具。

这些 API 支持以下场景:

  • 高性能生成文字处理文档、电子表格和演示文稿。
  • 文档修改,例如添加、更新和删除内容及元数据。
  • 使用正则表达式搜索和替换内容。
  • 将一个文件拆分为多个文件,以及将多个文件合并为一个文件。
  • 更新 Word/PowerPoint 中图表的缓存数据和嵌入的电子表格。

使用 Open XML SDK 的前提条件:具备相关格式(https://learn.microsoft.com/en-us/openspecs/office_standards/ms-offstandlp)和标准(https://standards.iso.org/ittf/PubliclyAvailableStandards/index.html - 搜索 29500)的详细知识。

目录

Open XML SDK 的官方发布 NuGet 包位于 NuGet.org 上:

稳定版 预发布版
DocumentFormat.OpenXml.Framework NuGet NuGet Absolute Latest
DocumentFormat.OpenXml NuGet NuGet Absolute Latest
DocumentFormat.OpenXml.Linq NuGet NuGet Absolute Latest
DocumentFormat.OpenXml.Features NuGet NuGet Absolute Latest

每日构建版

Open XML SDK 最新构建的 NuGet 包可通过 Azure Blob 上的自定义源获取。此处的稳定版发布将同步到 NuGet,且内容完全一致。您必须设置一个 NuGet.config 文件,其格式大致如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="OpenXmlCI" value="https://ooxml.blob.core.windows.net/feed/index.json" />
  </packageSources>
</configuration>

有关最新变更,请参阅 changelog

已知问题

  • 在 .NET Core 以及 .NET 5 及更高版本上,ZIP 包无法流式传输数据。因此,在某些情况下,工作集可能会急剧增大。这是一个 已知问题
  • 在 .NET Framework 上,在某些情况下可能会引发 IsolatedStorageException。这种情况通常发生在环境中的 AppDomain 证据不足时操作大型文档。有关解决方法的示例可在此处获取 here

文档

有关官方文档,请参阅 Open XML SDK

如果您有操作类问题

相关工具

  • Open XML SDK 2.5 生产力工具:该生产力工具提供与 Open XML SDK 2.5 兼容的查看和代码生成功能。
  • Open XML Powertools:提供了用于实现各种 Open XML 场景的示例代码和指导。
  • ClosedXml:此库在 OpenXml SDK 的基础上提供了简化的对象模型,用于操作和创建 Excel 文档。
  • OfficeIMO:此库在 OpenXml SDK 的基础上提供了简化的对象模型,用于操作和创建 Word、Excel、PowerPoint 文档,并支持 Markdown、Html、Pdf 和 Visio。
  • OpenXML-Office:此 NuGet 库在 OpenXml SDK 的基础上提供了简化的对象模型,用于操作和创建 PPT 和 Excel 文档。
  • Serialize.OpenXml.CodeGen:这是一个将 OpenXml 文档转换为创建该文档所需的 .NET 代码的工具。
  • Html2OpenXml:这是一个接收 HTML 并将其转换为 OpenXml 文档的工具。
  • DocxToSource:该工具旨在替代旧版 OpenXML SDK 生产力工具。
  • OOXML Viewer:这是一个 Visual Studio Code 扩展,用于查看和编辑 Office Open XML 文件的 xml 部分,并在从外部程序保存时查看 OOXML 部分与先前版本的差异。在 VS Code 扩展选项卡中搜索“OOXML”,或从 VS Code Marketplace 下载。
  • ShapeCrawler:此库在 OpenXml SDK 的基础上提供了简化的对象模型,用于操作 PowerPoint 文档。
  • OOXML Validator:用于验证 Office Open XML 文件的 VS Code 扩展。在 VS Code 扩展选项卡中搜索“OOXML”,或从 VS Code Marketplace 下载。

如何参与贡献?

我们欢迎各类贡献!全球各地的许多人都为改进这个项目提供了帮助。

报告安全问题和安全漏洞

安全问题和漏洞应通过电子邮件私下报告给 Microsoft 安全响应中心 (MSRC),邮箱地址为 secure@microsoft.com。您应在 24 小时内收到回复。如果由于某种原因未收到回复,请通过电子邮件跟进,以确保我们收到了您的原始消息。更多信息,包括 MSRC PGP 密钥,可在 安全技术中心 中找到。

.NET Foundation

Open XML SDK 是 .NET Foundation 项目。

本项目采用了 Contributor Covenant 定义的行为准则,以明确我们社区中的预期行为。有关更多信息,请参阅 .NET Foundation 行为准则

许可证

Open XML SDK 根据 MIT 许可证授权。

项目介绍

微软开放XML软件开发工具包【此简介由AI生成】

定制我的领域
2024.6 K605访问 GitHub