OpenXML-SDK 操作Word,PPT,提取文字
今天跟大家分享一款插件,OpenXML-SDK 实现对Word,PPT的操作。
今天仅介绍如何利用这个组件,从文件中提取文字。
OpenXML-SDK有个缺陷,不支持跨平台,即只能部署在windows系统
首先、nuget上引用包
然后,上代码,从PPT中提取文字,返回一个数组,及一段段的文字。
using DocumentFormat.OpenXml.Drawing; using DocumentFormat.OpenXml.Packaging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using A = DocumentFormat.OpenXml.Drawing; namespace ConsoleApp1.PPT { /// <summary> /// openxml 仅支持在window下运行,需要引用Open-XML-SDK 2.9.1版本 /// </summary> public class OpenXMLPPT { /// <summary> /// 提取ppt,返回字符串数组,一行一个字符创 /// </summary> public List<string> GetWordFromPPT(string filename) { List<string> words = new List<string>(); // 打开PPTX文件 using (PresentationDocument ppt = PresentationDocument.Open(filename, false)) { // 遍历每个Slide foreach (SlidePart slidePart in ppt.PresentationPart.SlideParts) { // 遍历每个Paragraph foreach (var paragraph in slidePart.Slide.Descendants<Paragraph>()) { // 遍历每个Run foreach (var run in paragraph.Descendants<A.Text>()) { // 打印文本内容 words.Add(run.Text); } } } } return words; } } }
下面是操作word的示例:
using System; using System.IO; using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; namespace ConsoleApp1.Word { /// <summary> /// openxml 仅支持在window下运行,需要引用Open-XML-SDK 2.9.1版本 /// </summary> public class OpenXMLWord { /// <summary> /// 从doc文档中提取 /// </summary> public List<string> GetWordFromWord(string filename) { List<string> words = new List<string>(); // 打开Word文档 using (WordprocessingDocument word = WordprocessingDocument.Open(filename, false)) { // 遍历每个Paragraph foreach (var paragraph in word.MainDocumentPart.Document.Descendants<Paragraph>()) { // 遍历每个Run foreach (var run in paragraph.Descendants<Run>()) { // 遍历每个Text foreach (var text in run.Descendants<Text>()) { // 打印文本内容 words.Add(text.Text); } } } } return words; } } }
===================================
更多分享,请大家关注我的个人公众号:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通