word的docx中的文字、图片替换说明
- 格式:doc
- 大小:122.00 KB
- 文档页数:14
WORD 格式整理分享word2010 基础知识试题一、单选题1、 Word 具有的功能是__D__。
A. 表格处理B. 绘制图形C. 自动更正D. 以上三项都是2、通常情况下,下列选项中不能用于启动Word 2010 的操作是 ___D___。
A. 双击 Windows 桌面上的 Word2010 快捷方式图标B. 单击 " 开始 " → " 所有程序 " →"Microsoft Office"→ "Microsoft Word 2010"C.在 Windows 资源管理器中双击Word 文档图标D.单击 Windows 桌面上的Word2010 快捷方式图标3、在Word2010 中,用快捷键退出Word 的最快方法是 __A____。
A.Alt+F4B.Alt+F5C.Ctrl+F4D.Alt+Shift4、下面关于Word 标题栏的叙述中,错误的是___B___。
A. 双击标题栏,可最大化或还原Word窗口B.拖曳标题栏,可将最大化窗口拖到新位置C.拖曳标题栏,可将非最大化窗口拖到新位置D.以上三项都不是5、Word 2010 的" 文件 " 选项卡下的 " 最近所用文件" 选项所对应的文件是____C__。
A.当前被操作的文件B. 当前已经打开的 Word文件C.最近被操作过的 word 文件D.扩展名是 .docx 的所有文件6、在Word2010 编辑状态中,能设定文档行间距的功能按钮是位于___A___中。
A." 文件 " 选项卡B." 开始 " 选项卡C." 插入 " 选项卡D." 页面布局 " 选项卡7、 Word 2010中的文本替换功能所在的选项卡是___A___。
A." 文件 "B." 开始 "C." 插入 "D." 页面布局 "8、在 Word 2010 的编辑状态下," 开始 " 选项卡下 " 剪贴板 " 组中 " 剪切 " 和 " 复制 " 按钮呈浅灰色而不能用时,说明____B__。
定义自己的word模板并替换Normal.dotm需求说明:单位的文件格式有严格的规定,以前我的做法是在旧的已经设置好格式的文件基础上删除旧内容后另存文件,显然这种方法很笨拙,而且如果新建文件的话,用的还是word的默认模板,格式需要重新设置。
于是我就想,我为什么不把word的默认模板改一改改成我自己的呢?所以我就提出了这样的需求:不管是从程序中打开一个空的文档,还是在文件管理器新建一个word文档,使用的都是我自己的模板。
我本来以为这个会比较简单,步骤无非是下面这几步:①首先新建一个空白文档,设置好自己需要的格式,包括各级文字格式、表格样式等等,这个相对容易,对照老总们编的规定很快就能完成。
②第二步就是要找到word的默认模板的位置了,这个随便上网搜一搜就能搜到。
不过比较靠谱的方法是到word 选项里面去找:菜单【文件】-【选项】-【高级】-【常规】-【文件位置】。
打开文件位置对话框以后,找到“用户模板”的位置,双击打开对话框,右键随便点个文件夹“在新窗口中打开”,然后打开的文件管理器的上一级就是模板所在的文件夹了,你会发现两个文件,Normal.dotx和Normal.dotm。
③我在替换这两个文件的时候遇到了麻烦,倒也不是这俩文件不好删,也不是这俩文件多么难命名,是受到了网上不少的误导。
我先是将我做的标准文件另存为了.dotx文件,然后放到用户模板文件夹,重命名为Normal.dotx。
如果这时候打开一个空白word文件的话,发现用的还是word自己的默认模板,而且在用户模板文件夹,会自动生成一个Normal.dotm。
这是怎么回事儿?我刚开始还没想到,后来才顿悟,word的默认模板不是.dotx,而是.dotm!这样,把握做的标准文件另存为.dotm文件,然后重命名为Normal.dotm,问题就迎刃而解了。
WORD2007插入的图片只显示、但不打印出来“页面设置”---》“页面背景”---》“水印”---》“自定义水印”---》选择“图片水印”,然后单击“选择图片”按钮,插入需要的图片即可。
让你效率翻倍的15个Word批量操作小技巧批量操作明显可以提高工作效率,但还是有很多小伙伴不会批量操作,比如批量选中相似文本,批量修改文本等,今天与大家分享几招实用的批量操作技巧。
1、批量选中文本将光标放在段落前的空白位置,单击选择整行、双击选择整段,三击选择整篇文档。
PS:全文的快捷键是Ctrl+A。
2、批量选择类似格式首先将光标定位在要选择类似格式的段落内,随后点击开始——编辑——选择——选择格式相似的文本即可。
3、批量框选区域按住Alt键不放,之后拖拽鼠标即可纵向选择文本。
4、批量将数字更改为斜体你是如何将文档中的常规数字更改为斜体?是每输入一个数字设置一次字体样式?还是输入所有内容后,再一次次更改呢?其实这两种方法都不是最快的,那使用什么方式最快呢?当然是查找替换。
选中区域,按Ctrl+H打开查找和替换对话框,在查找文本框中输入[0-9],之后点击更多,选中使用通配符选项,随后在替换中输入“^&”,然后点击格式——字体,在打开的对话框中,选择倾斜,点击全部替换即可。
5、批量对齐图片选中全文,按Ctrl+H打开查找和替换对话框,之后在查找中输入代码:^g(表示图形),在替换中选择格式——段落——对齐方式——居中对齐即可。
6、批量删除分隔符为了排版需要,往往会添加分隔符,如何批量删除这些分隔符呢?按Ctrl+A选中全文,之后按Ctrl+H打开查找和替换对话框,在查找文本框中勾选使用通配符号,之后点击更多——特殊格式——分页符或分节符(PS:可以直接手动输入代码:^m),在替换为中不输入任何内容,点击全部替换即可。
6、批量删除重复内容选中文本,按Ctrl+H打开查找和替换界面,在查找中输入代码:(<[!^13]*^13)(*)\1,在替换为中输入代码:\1\2,之后点击全部替换即可。
代码说明:(<[!^13]*^13)(*)\1:表示重复查找以非回车符为开头的,中间有内容的,并以回车符结尾段落。
第3章字处理软件Word 2010实验一Word 2010文档的基本操作一、实验目的及实验任务1.实验目的(1)掌握Word文档的建立、保存与打开方法:(2)掌握Word文本内容的选定方法,文本的复制、移动和删除方法;(3)掌握文本的查找与替换方法,包括高级查找与替换;(4)掌握撤销与和恢复的操作方法及自动更正功能的使用方法;(5)掌握拼写和语法检查功能的使用方法。
2. 实验任务根据提供的实验素材,练习Word文档的基本操作。
二、实验所需素材下载素材文件:实验素材\第3章\实验一\在路上.docx。
三、实验操作过程1.启动Word20102.打开文档3.复制文本4.新建文档5.粘贴文本6.保持文档7.用不同视图方式查看文档8.查找与替换9.自动更正10.拼写和语法检查四、实验分析及知识拓展实验二文档格式化与排版一、实验目的及实验任务1.实验目的(1)掌握字符、段落格式的设置方法;(2)了解分栏与首字下沉的操作;(3)掌握样式、项目符号、编号、边框和底纹、页眉与页脚的使设置操作。
2.实验任务根据提供的实验素材进行文档的格式化、应用样式、项目符号和编号设置、分栏、首字下沉、边框和底纹、页眉和页脚的操作。
二、实验所需素材下载素材文件:实验素材\第3章\实验二\祖国述怀.docx。
三、实验操作过程打开实验素材中的“祖国述怀.docx”,按要求操作,结果以原文件名保存。
1.字符格式的设置要求:设置标题为华文隶书、二号,文本效果为第3行第4列的效果,居中显示;将“国述”两个字的间距加宽5磅,位置提升10磅;把第一段落设置为首字下沉两行。
2.段落格式的设置要求:将文中所有段落的段前间距设置为0.5行,首行缩进2个字符。
3.项目符号的设置要求:给第二段和第三段添加项目符号“◆”,字体为红色、16号。
4.分栏与边框和底纹的设置要求:将文中第7段分为三栏,栏宽相等,有分隔线;给第2段添加“橙色,强调文字颜色6,深色25%,0.5磅”的阴影边框;给文章第3段添加“橙色,强调文字颜色6,深色25%”填充色和“样式20%、自动颜色”的底纹。
python实现替换word中的关键⽂字(使⽤通配符)环境:Python3.6本⽂主要是通过win32com操作word,对word中进⾏常⽤的操作。
本⽂以替换为例,讲解⼀下如何使⽤Python在word中使⽤“通配符模式”(类似于正则表达式)替换⽂本内容。
#!/usr/bin/env python# -*- coding:utf-8 -*-import osimport win32comfrom win32com.client import Dispatch# 处理Word⽂档的类class RemoteWord:def __init__(self, filename=None):self.xlApp = win32com.client.Dispatch('Word.Application') # 此处使⽤的是Dispatch,原⽂中使⽤的DispatchEx会报错self.xlApp.Visible = 0 # 后台运⾏,不显⽰self.xlApp.DisplayAlerts = 0 #不警告if filename:self.filename = filenameif os.path.exists(self.filename):self.doc = self.xlApp.Documents.Open(filename)else:self.doc = self.xlApp.Documents.Add() # 创建新的⽂档self.doc.SaveAs(filename)else:self.doc = self.xlApp.Documents.Add()self.filename = ''def add_doc_end(self, string):'''在⽂档末尾添加内容'''rangee = self.doc.Range()rangee.InsertAfter('\n' + string)def add_doc_start(self, string):'''在⽂档开头添加内容'''rangee = self.doc.Range(0, 0)rangee.InsertBefore(string + '\n')def insert_doc(self, insertPos, string):'''在⽂档insertPos位置添加内容'''rangee = self.doc.Range(0, insertPos)if (insertPos == 0):rangee.InsertAfter(string)else:rangee.InsertAfter('\n' + string)def replace_doc(self, string, new_string):'''替换⽂字'''self.xlApp.Selection.Find.ClearFormatting()self.xlApp.Selection.Find.Replacement.ClearFormatting()#(string--搜索⽂本,# True--区分⼤⼩写,# True--完全匹配的单词,并⾮单词中的部分(全字匹配),# True--使⽤通配符,# True--同⾳,# True--查找单词的各种形式,# True--向⽂档尾部搜索,# 1,# True--带格式的⽂本,# new_string--替换⽂本,# 2--替换个数(全部替换)self.xlApp.Selection.Find.Execute(string, False, False, False, False, False, True, 1, True, new_string, 2)def replace_docs(self, string, new_string):'''采⽤通配符匹配替换'''self.xlApp.Selection.Find.ClearFormatting()self.xlApp.Selection.Find.Replacement.ClearFormatting()self.xlApp.Selection.Find.Execute(string, False, False, True, False, False, False, 1, False, new_string, 2)def save(self):'''保存⽂档'''self.doc.Save()def save_as(self, filename):'''⽂档另存为'''self.doc.SaveAs(filename)def close(self):'''保存⽂件、关闭⽂件'''self.save()self.xlApp.Documents.Close()self.xlApp.Quit()if __name__ == '__main__':# path = 'E:\\XXX.docx'path = 'E:/XXX.docx'doc = RemoteWord(path) # 初始化⼀个doc对象# 这⾥演⽰替换内容,其他功能⾃⼰按照上⾯类的功能按需使⽤doc.replace_doc(' ', '') # 替换⽂本内容doc.replace_doc('.', '.') # 替换.为.doc.replace_doc('\n', '') # 去除空⾏doc.replace_doc('o','0') # 替换o为0# doc.replace_docs('([0-9])@[、,,]([0-9])@', '\1.\2') 使⽤@不能识别改⽤{1,},\需要使⽤反斜杠转义doc.replace_docs('([0-9]){1,}[、,,.]([0-9]){1,}', '\\1.\\2') # 将数字中间的,,、.替换成.doc.replace_docs('([0-9]){1,}[旧]([0-9]){1,}', '\\101\\2') # 将数字中间的“旧”替换成“01”doc.close()以上这篇python实现替换word中的关键⽂字(使⽤通配符)就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
《Word文档的基本操作》100招技巧——前50条1、即时取消Word的后台打印当我们刚刚编辑完一篇文档按了打印命令后,后来又不想打印当前的文档了,那么怎样才能即时取消后台打印任务呢?一般来说,大家在发出打印任务后,程序会自动将打印任务设置为后台打印,同时在状态栏上出现打印机图标,打印机图标旁边的数字显示的是正在打印的页的页码。
要想即时取消后台打印任务的话,大家只要用鼠标双击打印机图标就可以了。
2、Word 2003让文字随文本框大小变化当我们在用Word进行文档编辑时,经常需要用文本框来实现一些特殊的应用,比如在文本框中输入文字来达到特殊效果,但有个问题是,当我们在文本框中输入文字并调整了文本框的大小后文字并不会跟着变化。
其实我们可让文本框里的文字大小随文本框大小“同步”变化;单击选中该文本框,然后选择“剪切",再执行菜单“[编辑]—[选择性粘贴]”,在粘贴形式中选择“图片(增强型图元文件)”,现在再拖动文本框看看,是不是可以随意改变文字大小了。
3、Word 2003/2007快速切换英文大小写在Word中输入英文句子时,一般每个单词的第一个字母都是大写,通常的输入方法就是输入第一个字母时就要进行一次大小写切换。
这样很麻烦.不妨全部输入小写字符,然后选中所有单词,按一次组合键“Shift+F3”试试,是不是每个单词的第一个字母都变成了大写?再按一次试试,所有的字母都变成了大写!再按一次,又变了小写.原来,组合键Shift+F3是个英文大小写切换键,充分利用这个组合键,以后输入英文就方便多了。
4、Word 2003/2007 Word表格中“Shift+Alt+方向键”调整行序Word表格编辑时可以使用一些快捷键提高效率,比如“Shift+Alt+方向键”组合,非常有用,用“Shift+Alt+上(或下)方向键”能够调整文档中段落的顺序,也可以调整Word表格中的行序.方法是:将插入点置于要调整行的任意一个单元格内(或行尾段落标记前),按下“Shift+Alt”键,然后按上下方向键,按“向上箭头”键可使该行在表格内向上移动,按“向下箭头"键可使该行向下移动。
Word怎样批量修改图⽚⼤⼩、位置?有⽐这5个⽅法更全的么?Word批量修改图⽚⼤⼩、位置,5个⽅法集合召唤神龙!⼀、Word批量修改图⽚位置(⼀)替换功能Word替换功能很强⼤,不仅可以批量替换⽂本、修改⽂本格式,还可以批量修改图⽚位置~Ctrl+H替换——查找内容:光标定位,左下⾓点击【更多】,底部点击【特殊格式】,选择【图形】(根据原⽂对段落格式进⾏相应设置)。
或者直接输⼊^g替换为:左下⾓点击【更多】,左下⾓点击【格式】,选择【段落】——【缩进和间距】⾃定义设置,右下⽅点击确定——点击【全部替换】。
(⼆)借助表格借助表格可以让图⽚固定位置~1、插⼊表格点击【插⼊ - 表格】,根据所需插⼊图⽚数量、排布情况选择⾏、列。
2、设置⾏⾼、单元格边距选中表格右键,选择【表格属性】——点击【⾏】选项卡,【尺⼨】勾选【指定⾼度】,设置图⽚⾼度——点击【确定】。
右键,选择【表格属性】——点击【单元格】选项卡,右下⽅点击【选项】,⾃定义单元格边距——点击【确定】。
3、导⼊图⽚(三)选择多个对象这个⽅法貌似⽐较⾼级⼀点?~1、添加功能点击【⽂件 - 选项 - ⾃定义功能区】,点击【从下列位置选择命令】选择【所有命令】,下⽅找到并点击【选择多个对象】,右侧【主选项卡】下边点击【新建组】,最后点击中间的【添加】按钮。
点击【⽂件 - 选项 - ⾼级】——【剪切、复制和粘贴- 将图⽚插⼊/粘贴为】,设置环绕⽅式。
⽂件后缀格式【.docx】改为【.doc】。
4、图⽚格式【开始】功能区最后⼀项【选择多个对象】——弹窗左下⾓点击【全选】——右键设置图⽚格式。
⼆、Word批量修改图⽚⼤⼩、位置万能的F4重复键~⽅法:双击第⼀张图⽚,修改⼤⼩或位置作为样本——分别选中其它图⽚按F4键。
三、批处理插件批量修改图⽚⼤⼩遇到需要批量修改图⽚⼤⼩,可以⽤⼀个插件~【美图秀秀批处理】,再多图⽚⼀键搞定~⽅法:左侧点击【添加图⽚】——右下⾓设置修改图的保存【路径】——右上⽅设置【修改尺⼨(保持原图⽐例)】,点击【更多】调整【画质】——右下⾓点击【保存】。
1,需要的jar:2,替换docx文档的文字、图片实例* 注意事项:* word中的替换的文字replaceStr一定是从普通txt文本中粘贴过来的,这样才可以保证这些replaceStr的所有属性一致* 才能保证这些replaceStr在同一个XWPFRun中。
public class WordTest2 {String templatePathX = "D:/temp/打印样本/poi/打印样本.docx";String savePath = "D:/temp/打印样本/poi/打印样本-temp.docx";//imageString logoImagePath = "D:/temp/打印样本/forest_logo.png";String IconImagePath = "D:/temp/打印样本/icon.jpg";@Testpublic void testDocx() {try {WordDocxUtil wordDocxUtil=new WordDocxUtil(templatePathX);// ArrayList<String> replaceEles =wordDocxUtil.getReplaceElements("\\$\\{[^{}]+\\}");// for(String replaceEle:replaceEles){// System.out.println(replaceEle);// }//替换文字// Map<String, String> map = new HashMap<String, String>();// map.put("${orderId}", "B123123");// map.put("${boxName}", "王五");// map.put("${course-1}", "语文");// map.put("${score}", "85");// wordDocxUtil.replaceText(map);//单个文字替换// wordDocxUtil.replaceText("${course}", "语文");//正则表达式文字替换// wordDocxUtil.replaceTextByRegex("\\$\\{course-\\d\\}", "[-_-]");//替换图片// Map<String, Object> imageMap = new HashMap<String, Object>();// imageMap.put("width", "50");// imageMap.put("height", "50");// imageMap.put("imageType", WordDocxUtil.getSuffix(logoImagePath));// imageMap.put("content", WordDocxUtil.inputStream2ByteArray(new FileInputStream(logoImagePath), true));// wordDocxUtil.replaceImage("${forestLogo}", imageMap);//// imageMap = new HashMap<String, Object>();// imageMap.put("width", "50");// imageMap.put("height", "50");// imageMap.put("imageType", WordDocxUtil.getSuffix(IconImagePath));// imageMap.put("content", WordDocxUtil.inputStream2ByteArray(new FileInputStream(IconImagePath), true));// wordDocxUtil.replaceImage("${icon}", imageMap);// setComboboxV alue("paytype", "1,3,5,6");// setComboboxV alue("makeType", "aa,vv");wordDocxUtil.save(savePath);} catch (Exception e) {e.printStackTrace();}}}2,导入docx文档的操作帮助类package com.util;import java.io.ByteArrayInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.poi.POIXMLDocument;import ermodel.UnderlinePatterns;import ermodel.VerticalAlign;import ermodel.XWPFDocument;import ermodel.XWPFParagraph;import ermodel.XWPFRun;import ermodel.XWPFTable;import ermodel.XWPFTableCell;import ermodel.XWPFTableRow;import org.apache.xmlbeans.XmlException;import org.apache.xmlbeans.XmlToken;import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps; import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;/*** @author longlin* 注意事项:* 1,替换的特殊文字replaceStr一定是从普通txt文本中粘贴过来的,这样才可以保证这些replaceStr的所有属性一致* 才能保证这些replaceStr在同一个XWPFRun中。
public class WordDocxUtil {XWPFDocument document = null;String suffix;public WordDocxUtil(String filePath) {try {String[] p = filePath.split("\\.");// 判断文件扩展名if (p.length > 0 && p[p.length - 1].equalsIgnoreCase("docx")) {suffix = p[p.length - 1];document = new XWPFDocument(POIXMLDocument.openPackage(filePath));}} catch (IOException e) {e.printStackTrace();}}/*** 返回Docx中需要替换的特殊字符,没有重复项推荐传入正则表达式参数"\\$\\{[^{}]+\\}* @param regex* @return Docx中需要替换的特殊字符*/public ArrayList<String> getReplaceElements(String regex) {ArrayList<String> al = new ArrayList<String>();// 遍历段落Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();while (itPara.hasNext()) {XWPFParagraph paragraph = (XWPFParagraph) itPara.next();al.addAll(getReplaceElements(regex,paragraph));}// 遍历表Iterator<XWPFTable> itTable = document.getTablesIterator();while (itTable.hasNext()) {XWPFTable table = (XWPFTable) itTable.next();int rcount = table.getNumberOfRows();for (int i = 0; i < rcount; i++) {XWPFTableRow row = table.getRow(i);List<XWPFTableCell> cells = row.getTableCells();for (XWPFTableCell cell : cells) {List<XWPFParagraph> paraList=cell.getParagraphs();for(XWPFParagraph paragraph:paraList){al.addAll(getReplaceElements(regex,paragraph));}}}}return al;}/*** 返回Docx中需要替换的特殊字符,没有重复项推荐传入正则表达式参数"\\$\\{[^{}]+\\}* @param regex* @param al* @param paragraph*/private ArrayList<String> getReplaceElements(String regex, XWPFParagraph paragraph) { // System.out.println("====================");ArrayList<String> al = new ArrayList<String>();List<XWPFRun> runs = paragraph.getRuns();for (int i = 0; i < runs.size(); i++) {XWPFRun run=runs.get(i);String runString = run.getText(run.getTextPosition());// System.out.println("run["+i+"]:"+runString);if(runString!=null){Pattern pattern = pile(regex);Matcher matcher = pattern.matcher(runString);while (matcher.find()) {if (!al.contains(matcher.group())) {al.add(matcher.group());}}}}return al;}/*** 把word文档中key替换为value* @param map 需要替换的文字如:把${name}替换为“小明”* @return*/public boolean replaceText(Map<String, String> map) {try {// 替换段落中的指定文字Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();while (itPara.hasNext()) {XWPFParagraph paragraph = (XWPFParagraph) itPara.next();replaceText(map, paragraph);}// 替换表格中的指定文字Iterator<XWPFTable> itTable = document.getTablesIterator();while (itTable.hasNext()) {XWPFTable table = (XWPFTable) itTable.next();int rcount = table.getNumberOfRows();for (int i = 0; i < rcount; i++) {XWPFTableRow row = table.getRow(i);List<XWPFTableCell> cells = row.getTableCells();for (XWPFTableCell cell : cells) {List<XWPFParagraph> paraList=cell.getParagraphs();for(XWPFParagraph paragraph:paraList){replaceText(map, paragraph);}}}}return true;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}/*** 把XWPFParagraph中key替换为value* @param map 需要替换的文字如:把${name}替换为“小明”* @param paragraph*/private void replaceText(Map<String, String> map, XWPFParagraph paragraph) { List<XWPFRun> runs = paragraph.getRuns();for (int i = 0; i < runs.size(); i++) {XWPFRun run=runs.get(i);String oneparaString = run.getText(run.getTextPosition());if(oneparaString!=null){for (Map.Entry<String, String> entry : map.entrySet()) {oneparaString = oneparaString.replace(entry.getKey(), entry.getValue());}run.setText(oneparaString,0);}}}/*** 根据正则表达式替换字符串* @param regex* @param newText* @return*/public boolean replaceText(String oldText,String newText) {try {Map<String, String> replaceMap=new HashMap<String, String>();replaceMap.put(oldText, newText);return replaceText(replaceMap);} catch (Exception e) {e.printStackTrace();}return false;}/*** 根据正则表达式替换字符串* @param regex* @param newText* @return*/public boolean replaceTextByRegex(String regex,String newText) { try {Map<String, String> map=new HashMap<String, String>();List<String> replaceEles=getReplaceElements(regex);for(String replaceEle:replaceEles){map.put(replaceEle, newText);}return replaceText(map);} catch (Exception e) {e.printStackTrace();}return false;}/**** @param imageReplaceStr 被图片替换的文字* @param imageMap 图片数据需要包括:* width:图片宽* height:图片高* imageType:图片类型* content:图片的具体数据(二进制数据)* @return*/public boolean replaceImage(String imageReplaceStr,Map<String, Object> imageMap) { try {// 替换段落中的指定文字Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();while (itPara.hasNext()) {XWPFParagraph paragraph =(XWPFParagraph)itPara.next();replaceImage(imageReplaceStr,imageMap, paragraph);}// 替换表格中的指定文字Iterator<XWPFTable> itTable = document.getTablesIterator();while (itTable.hasNext()) {XWPFTable table = (XWPFTable) itTable.next();int rcount = table.getNumberOfRows();for (int i = 0; i < rcount; i++) {XWPFTableRow row = table.getRow(i);List<XWPFTableCell> cells = row.getTableCells();for (XWPFTableCell cell : cells) {String cellTextString = cell.getText();if(cellTextString.indexOf(imageReplaceStr)>-1){List<XWPFParagraph> paraList=cell.getParagraphs();for(XWPFParagraph paragraph:paraList){replaceImage(imageReplaceStr,imageMap, paragraph);}}}}}return true;} catch (Exception e) {e.printStackTrace();}return false;}/*** 在XWPFParagraph中替换图片* @param imageReplaceStr 被图片替换的文字* @param imageMap 图片数据:* width:图片宽* height:图片高* imageType:图片类型* content:图片的具体数据(二进制数据)* @param paragraph* @throws Exception*/private void replaceImage(String imageReplaceStr,Map<String, Object> imageMap, XWPFParagraph paragraph) throws Exception {List<XWPFRun> runs = paragraph.getRuns();for (int i = 0; i < runs.size(); i++) {XWPFRun run=runs.get(i);String oneparaString = run.getText(run.getTextPosition());if(oneparaString!=null){if(oneparaString.indexOf(imageReplaceStr)>-1){//清除原有数据Map<String, Object> oldRunStyle=getWordXWPFRunStyle(run);paragraph.removeRun(i);//得到要添加的图片数据int width = Integer.parseInt(imageMap.get("width").toString());int height = Integer.parseInt(imageMap.get("height").toString());String imageType=(String) imageMap.get("imageType");byte[] byteArray = (byte[]) imageMap.get("content");//向word中插入图片。