采用OpenXml来修改word特定内容,如下:

word:

OpenXml修改word之前:

OpenXml修改word之后:

代码:

  string path = @"C:\Users\Administrator\Desktop\新建文件夹 (2)\1.docx";
using (WordprocessingDocument doc = WordprocessingDocument.Open(path, true))
{
List<Text> textList = new List<Text>();
Body body = doc.MainDocumentPart.Document.Body;
foreach (Paragraph paragraph in body.Elements<Paragraph>())
{
if (paragraph.InnerText.Contains("河南郑州"))
{
foreach (Run run in paragraph.Elements<Run>())
{
textList.AddRange(run.Elements<Text>());
}
paragraph.Elements<Run>().FirstOrDefault().Append(new Text("欢迎你,河南郑州!"));
}
}
foreach (Table table in body.Elements<Table>())
{
foreach (TableRow tableRow in table.Elements<TableRow>())
{
foreach (TableCell tableCell in tableRow.Elements<TableCell>())
{
if (tableCell.InnerText.Contains("郑州河南"))
{
foreach (Paragraph paragraph in tableCell.Elements<Paragraph>())
{
foreach (Run run in paragraph.Elements<Run>())
{
textList.AddRange(run.Elements<Text>());
}
}
tableCell.Elements<Paragraph>().FirstOrDefault().Elements<Run>().FirstOrDefault().Append(new Text("欢迎你,河南郑州!"));
}
}
}
}
foreach (var removeText in textList)
{
removeText.Remove();
}
}

OpenXml修改word特定内容的更多相关文章

  1. OpenXml读取word内容(一)

    OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...

  2. OpenXml读取word内容注意事项

    OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...

  3. OpenXML操作word

    OpenXML概述 项目中经常需要操作word,之前的方式是采用COM接口,这个接口很不稳定,经常报错.现在开始采用OpenXML.OpenXML(OOXML)是微软在Office 2007中提出的一 ...

  4. OpenXml操作Word的一些操作总结.无word组件生成word.

    OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩溃的问题. 2.对比填满一张30多页的WOR ...

  5. OpenXml操作Word的一些操作总结. - 天天不在

    OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩溃的问题. 2.对比填满一张30多页的WOR ...

  6. OpenXml操作Word的一些操作总结.

    OpenXml操作Word的一些操作总结. OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版本带来的不兼容问题,及各种会生成WORD半途会崩 ...

  7. OpenXml操作Word的一些操作总结.无word组件生成word.(转)

    http://www.cnblogs.com/zhouxin/p/3174936.html OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版 ...

  8. linux shell 脚本获取和替换文件中特定内容

    1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...

  9. 怎么批量修改Word表格的宽度

    怎么批量修改Word表格的宽度 怎么批量修改Word表格的宽度呢.Word表格可根据窗口自动调整表格宽度,使得所有的表格宽度和页面宽度一样.当页面设置了新的页边距后,所有的表格都需要调整新的宽度.或者 ...

随机推荐

  1. java第一章抽象和封装

    面向过程和面向对象有什么区别? 面向过程的核心是函数,以功能为中心,实现了函数级别的代码重用. 面向对象的核心是封装了属性和方法(行为)的类,以数据为中心,实现了类级别的代码重用. 面向对象因为采用了 ...

  2. 20. Valid Parentheses (JAVA)

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...

  3. 基于Eureka的服务治理

    代码地址如下:http://www.demodashi.com/demo/11927.html 一.服务的注册与发现 关系调用说明: 服务生产者启动时,向服务注册中心注册自己提供的服务 服务消费者启动 ...

  4. layui---十分适用于PC端后台的框架

    1.关闭当前页面: top.$(".layui-tab-title").find("li.layui-this>i").click(); 2.调用指定ID ...

  5. ROS零门槛学渣教程系列前言

    为什么选择ROS: 1.ROS是开放源码的,在该平台上可以找到非常很多免费开源的代码包,并且这些例程还带wiki说明文档: 2.机器人领域最新的算法直接支持ROS,简单几个步骤就能运行: 3.ROS工 ...

  6. unity 动态更新模型透明度

    RaycastHit[] hits; Vector3 normal = transform.position - target.position; hits = Physics.RaycastAll( ...

  7. laraval migration 新增字段或者修改字段的方法

    1.进入项目根目录执行artisan命令生成migration文件,可以指定--table和--path参数,会在对应目录下生成migration文件. php artisan make:migrat ...

  8. MySQL 聚合函数 控制流程函数

    常用的聚合函数 1. AVG() 求平均值 mysql> AVG([DISTINCT] expr) -- 返回 expr 的平均值 mysql> select AVG(age) from ...

  9. jquery 上下文菜单实现

    话不多说,直接贴上官方demo演示: https://swisnl.github.io/jQuery-contextMenu//demo

  10. 如何高效的学习 TensorFlow 代码?

    https://www.zhihu.com/question/41667903 Linux[公共基础]:TensorFlow的主要运行平台之一就是Linux,但是正式版对Windows的支持日趋完善, ...