本文收集 Office 解析相关博客

入门

C# dotnet 使用 OpenXml 解析 PPT 文件

C# dotnet 使用 OpenXml 解析 Word 文件

C# dotnet WPF 使用 OpenXml 解析 Excel 文件

Office 文档解析 文档格式和协议

C# dotnet 使用 OpenXml 关闭时不自动保存文档方法

PPT 解析

dotnet OpenXML 解析 PPT 页面元素文档格式

dotnet OpenXML 的 Slide Master 和 Slide Layout 是什么

元素解析

C# dotnet 使用 OpenXml 解析 PPT 元素的坐标和宽度高度

C# dotnet 使用 OpenXml 解析 PPT 里面的视频

Office OpenXml SDK 使用 Fallback 图片显示 Ole 元素

dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 的属性作用

dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 重复 id 标识处理

文本解析

dotnet OpenXML 简单聊聊 PPT 文本解析

dotnet 使用 OpenXML SDK 解析 Office 的项目符号 buNone 含义

dotnet OpenXML SDK 文本占位符解析

Office OpenXml SDK 文本段落允许标点溢出边界属性

C# dotnet 带编号项目符号在 OpenXML SDK 对应的枚举值

Office 文档 文本排版布局 中华人民共和国国家标准 标点符号用法

dotnet OpenXML 文本 BodyProperties 的属性作用

dotnet OpenXML 文本 BodyProperties 的 FontScale 与文本字号缩放

dotnet OpenXML 文本 ParagraphProperties 的属性作用

dotnet OpenXML 文本 Text Line Break 的作用

dotnet OpenXML 文本 EndParagraphRunProperties 的作用

dotnet OpenXML 文本删除线解析方法

dotnet OpenXML WPF 解析实现 PPT 文本描边效果

dotnet OpenXML 的 spcPct 和 spcPts 表示距离的不同

dotnet OpenXML 文本字体的选择规则

dotnet OpenXML 文本 Kerning 字间距的作用

dotnet OpenXML 解析 PPT 文本字体获取详解

dotnet OpenXML 聊聊文本段落对齐方式

dotnet OpenXML 聊聊 PPT 文本行距行高计算公式

形状

形状样式

形状画刷等知识请参阅颜色部分

dotnet OpenXML 读取形状轮廓线条样式序号超过主题样式列表数

dotnet OpenXML SDK 形状的翻转与旋转

dotnet OpenXML 读取 PPT 形状边框定义在 Style 的颜色画刷

形状内文本

所有的文本在 PPT 里面都采用形状表示,通用文本知识请参阅文本部分

dotnet OpenXML 如何判断是形状还是文本

dotnet OpenXML SDK 形状的 rect Shape Text Rectangle 属性对文本框的坐标影响

形状几何

dotnet OpenXML 让 PathLst 自定义形状转 SVG 路径格式的 Geometry 内容

dotnet OpenXML SDK 形状几何 Geometry 的计算公式含义

【OpenXml】Pptx的形状转为WPF的Geometry - RyzenAdorer - 博客园

Pptx的多路径形状转为WPF的Path - RyzenAdorer - 博客园

【Openxml】将Openxml的椭圆弧线arcTo转为Svg的椭圆弧线 - RyzenAdorer - 博客园

线条

dotnet OpenXML 形状的 Outline 的 LineWidth 线条轮廓粗细宽度的行为

【OpenXml】Pptx的边框虚线转为WPF的边框虚线 - RyzenAdorer - 博客园

图片

dotnet OpenXML 图片特效的 Color Change Effect 特效修改图片颜色

dotnet OpenXML 图片特效的 BiLevel 黑白特效修改图片颜色

C# Net 使用 openxml 提取ppt中的音频、视频、图片、文本 - 爱恋的红尘 - 博客园

[PPTX解析] 图片效果算法篇:重新着色 - 仙尘阁

[PPTX解析] 图片效果算法篇:设置透明色 - 仙尘阁

[PPTX解析] 图片效果算法篇:柔化边缘 - 仙尘阁

颜色

dotnet OpenXml SDK 形状填充渐变色的主题色

dotnet OpenXML 颜色变换

【Openxml】颜色变化属性计算 - RyzenAdorer - 博客园

dotnet OpenXML 如何获取 schemeClr 颜色

dotnet OpenXML 预设 PresetColorValues 颜色对应的值

dotnet OpenXML 继承组合颜色的 GrpFill 属性

通用知识

Office Open XML 的测量单位

dotnet OpenXML 测量单位的角度和弧度值

C# dontet Office Open XML Unit Converter

dotnet 在 OpenXML SDK 的 HasValue 是什么含义

dotnet Open XML 如何判断一份 Office 文档是否被加密

dotnet OpenXML 修复 Office 文档里面包含格式不正确的 Uri 而无法解析

dotnet OpenXML 修复 Office 文档里面的百分比内容包含百分号

dotnet OpenXML 为什么资源使用 Relationship 引用

【Openxml】如何为OpenXml元素创建超链接 - RyzenAdorer - 博客园

数学计算

dotnet C# 根据椭圆长度和宽度和旋转角计算出椭圆中心点的方法

根据SVG Arc求出其开始角、摆动角和椭圆圆心 - RyzenAdorer - 博客园

PPT 动画

dotnet OpenXML PPT 动画框架入门

dotnet OpenXML 读取 PPT 主序列进入退出强调动画

dotnet OpenXML 读取 PPT 动画进入退出强调动画类型

表格

dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格的信息

dotnet OpenXML 读取 PPT 内嵌 xlsx 格式 Excel 表格的信息

dotnet OpenXML 利用合并表格单元格在 PPT 文档插入不可见的额外版权信息

dotnet OpenXML 解析 PPT 里表格的样式

dotnet OpenXML 获取 Excel 表格当前激活选择的工作表

图表

dotnet OpenXML 解析 PPT 图表 面积图入门 博客园

dotnet OpenXML 解析 PPT 图表 解析日期时间表示内容

dotnet OpenXML 使用 MAUI 渲染 PPT 的面积图图表

工具

dotnet OpenXML 从文档生成创建文档的代码的库

调试的时候,先解压缩 Office 文档,编辑完成之后,再压缩回 Office 文档,用 Office 打开。不断压缩和解压缩 Office 文档效率不够,试试下面工具,自动解压缩和压缩文件夹为 Office 文档

dotnet OpenXML 解压缩文档为文件夹工具

WPS 相关

dotnet OpenXML 解析 WPS 不规范的 PPT 文件的 cNvPr 重复 id 问题

dotnet OpenXML 解析 WPS 不符合压缩文档规范的文档

2019-1-8-看看你的PPT是不是被WPS玩坏了 - huangtengxiao

dotnet OpenXML 在 PPTX 表格单元格加上 VerticalMerge 或 HorizontalMerge 将导致 WPS 丢失文本

VSTO COM

通过 COM 读取 Office PPT 文件提示 COMException 错误码 0x80004005 可能原因

例子

WPF 将 docx 的 Word 文件转换为 FlowDocument 显示

Xamarin.Forms创建与读写Word文件

资源

我将一些资源放在 CSDN 方便大家下载,如果想要下载而没有积分,可以找我私聊要资源

收藏

以下是收藏的博客

第三方工具

Add-in Express

很贵,很强的工具包

  • Office versions: Office 2019, 2016, 2013, 2010, 2007, 2003, XP and 2000
  • Applications: Outlook, Word, Excel, PowerPoint, Access, FrontPage, Publisher, Project, MapPoint, InfoPath, Visio, OneNote
  • IDEs: Visual Studio 2019, 2017, 2015, 2013, 2012 and 2010 (VB.NET, C#, C++)

NetOfficeFw/NetOffice: 🌌 .NET wrapper assemblies for accessing Microsoft Office applications.

aspose

基于他,你几乎能造个 WPS 出来。很贵,很强的工具包,提供了很强的编辑功能。可以将元素或页面输出为图片效果,支持多个不同的语言

这个厂商从 2002 开始就在做 Office 相关开发,使用这个工具包可以在有 Office 或者在没有 Office 的情况下进行开发,可以渲染和编辑 Office 文档

貌似要购买的话,找我也许有优惠…… 但一年大概也是 10w 左右

grapecity

这是一个控件库,里面也包含了部分工具,请看

Importing and Exporting OpenXml Files (WPF)

GemBox.Document

C# / VB.NET Word component

https://www.gemboxsoftware.com

VS 插件

bsivanov/Open-XML-Package-Editor-Power-Tool-for-Visual-Studio: This Power Tool is a Visual Studio add-in that provides an easy way to parse and edit Open Packaging Conventions files, including Word, Excel and PowerPoint documents.

拷贝 Excel 数据到 WPF 控件

moraleslarios/MoralesLarios.CustomControls: XAML Controls

PPT 辅助库

ShapeCrawler/ShapeCrawler: A .NET library for manipulating PowerPoint presentations.

sergey-tihon/Clippit: New PowerTools for OpenXml

Excel 辅助库

nissl-lab/npoi: a .NET library that can read/write Office formats without Microsoft Office installed. No COM+, no interop.

EPPlusSoftware/EPPlus: EPPlus 5-Excel spreadsheets for .NET

dotnetcore/Magicodes.IE: Import and export general library, support Dto import and export, template export, fancy export and dynamic export, support Excel, Csv, Word, Pdf and Html.

mini-software/MiniExcel: Fast, Low-Memory, Easy Excel .NET helper to import/export/template spreadsheet

fanfeilong/exceltk: Convert Excel sheet to markdown, json, tex, html, image and so on..

Word 库

XCeed Software DocX

XCeed Software 的 DocX 库:

此库包含免费版本和收费版本

xceedsoftware/DocX: Fast and easy to use .NET library that creates or modifies Microsoft Word files without installing Word.

MiniWord

mini-software/MiniWord: .NET Word(docx) exporting template engine without COM+ & interop (support Linux and Mac)

OpenXML 解析辅助库

dotnet-campus/DocumentFormat.OpenXml.Extensions: The OpenXML SDK extensions. Including libraries and tools.

这是我所在的团队开源的 OpenXml 解析辅助库,支持层层继承的属性拍平和对基础元素的处理

生成 PPT 文档

dotnet OpenXML SDK 添加 CoreFilePropertiesPart 的方法

开发群

加群方式:

    var d = new []{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; 
    var qqGroup = d[6] + d[8] + d[8] + d[9] + d[2] + d[1] + d[9] + d[5] + d[8];
    Console.WriteLine($"欢迎加入 OpenXML Office 群:{qqGroup}");

以上的群非新手群

特别感觉

特别感谢潘淳校长的大力支持和海量文档


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/Office-%E4%BD%BF%E7%94%A8-OpenXML-SDK-%E8%A7%A3%E6%9E%90%E6%96%87%E6%A1%A3%E5%8D%9A%E5%AE%A2%E7%9B%AE%E5%BD%95.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

微软最具价值专家


无盈利,不卖课,做纯粹的技术博客

以下是广告时间

推荐关注 Edi.Wang 的公众号

欢迎进入 Eleven 老师组建的 .NET 社区

以上广告全是友情推广,无盈利