首页 > 其他分享 >OpenXML-SDK 操作Word,PPT,提取文字

OpenXML-SDK 操作Word,PPT,提取文字

时间:2023-03-21 14:48:16浏览次数:36  
标签:DocumentFormat Word OpenXml System foreach words PPT using OpenXML

今天跟大家分享一款插件,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;
        }
    }
}

 

标签:DocumentFormat,Word,OpenXml,System,foreach,words,PPT,using,OpenXML
From: https://www.cnblogs.com/fei686868/p/17239926.html

相关文章

  • ueditor粘贴word图片且图片文件自动上传功能
    如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra......
  • ckeditor粘贴word文档图片的组件
    由于工作需要必须将word文档内容粘贴到编辑器中使用但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现......
  • ckeditor粘贴word文档图片的插件
    自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑器(富......
  • 利用 Java POI 操作PPT示例
    [size=large][color=red]使用POI操作PPT文档[/color][/size][url]http://zyplaiai.iteye.com/blog/778547[/url]1)如果是创建新的PPT文档,直接使用S......
  • Word去除页眉横线
    1、双击页眉部分,进入页眉页脚编辑状态。然后选中页眉文字部分。2、单击“开始”选项卡,找到“样式”命令,单击“样式”处的下拉箭头,在弹出的选项中单击“清除格式”。3、......
  • wordpress外贸站,采用astra ,woocommerce,weglot等
              翻译搜索复制......
  • 使用自定义关键字实现上传文件功能(keyword)
    1.创建cn.groovy(右键New-package;右键new-keyword)-创建完成packagetestclassimportstaticcom.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpointimportsta......
  • java 根据word xml模板生成word(个人v2版本)
    这里用的是poi相关jar包以及freemarker插值技术实现,poi相关jar包这里不再述说1,编辑word并保存为xml其中需要动态输出的内容使用${xxx}代替,xxx是你的java类属性值,如:年龄:${age......
  • word插入分节符
    选择要开始新分区的地方。转到"页面布局">分页符"。要添加的分节符:“下一页”分节符会在下一页上开始新节 “连续”分节符会在同一页上开始新节。提示:可以使用连续......
  • Reset [email protected] and root password VCSA
    Resetadministrator@vsphere.localandrootpasswordVCSA7OCTOBER2019KABIRIfyoufindyourselfinasituationwherenobodyknowswhattheadministratorpa......