word的docx中的文字、图片替换说明

合集下载

(完整版)word2010基础知识试题.docx

(完整版)word2010基础知识试题.docx

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技巧

word技巧

定义自己的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批量操作小技巧

让你效率翻倍的15个Word批量操作小技巧

让你效率翻倍的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 Word2010文字处理软件操作

实验3 Word2010文字处理软件操作

【实验内容】
进入“上篇-实验指导\实验指导素材库\实验 3.3的文字图片素材及样张”文件夹,打开 “E3_3.docx“文档,并对文档中的文字进行 编辑排版,并按要求插入图片和绘制图形,实 现图文混排,最后将文档以“Word3.docx”为 文件名保存在你的专业+学号命名的文件夹, 具体要求如下:
(5)将正文第二段("美国DisplaySearch 研究公司……微上扬的可能。")设置为首字 下沉两行、隶书、距正文0.4厘米。将正文第 三段("美国DisplaySearch研究公司……需 求量20%左右。“)分为等宽的两栏,栏宽设 置为18字符。
(6)将正文第三段(“DisplaySearch研究 公司……需求量20%左右”)加浅绿色段落底 纹。
8.设置“黄山四绝”为文字水印,字体为 “楷体”、字号72、颜色为红色,选“斜 式”、“半透明”。
9.将“黄山四绝—奇松 怪石 温泉 云海”设 置为页眉,字体隶书、三号、加粗、红色, 居中对齐。
全部操作完成后以文件名“Word3.docx”保 存于你的专业+学号命名的文件夹中。
在实验3.3中 “Word3.docx” 文档的样张如图 3-3-8所示
(7)插入页眉:“液晶显示器市场将复苏”, 字体为华文行楷、三号,居中,文本效果为 “渐变填充-紫色,强调文字颜色4,映像“; 以系统日期和时间为内容插入页脚,字体为 华文细黑、小三号,文本右对齐,文本效果 为”填充-无,轮廓-强调文字颜色2“。
最后将文件以文件名“Word2_1.docx”保存 于你的专业+学号命名的文件夹中。
(3)将正文各段("大型TFT液晶市场……超 出需求量20%左右。")的中文文字设置为四 号楷体、英文文字设置为四号Arial,各段落 左、右各缩进0.5字符,首行缩进2字符,段 前间距0.5行,1.3倍行距。

字处理软件Word2010实验指导

字处理软件Word2010实验指导

第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中的关键文字(使用通配符)

python实现替换word中的关键文字(使用通配符)

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使用篇

第二章 Word使用篇

(7)查找和替换
• 进行大篇文档的编辑处理时,往往需要在文档中找到需要的文字 。此时如果对着屏幕一行一行地查找将花费大量的时间和精力, 且工作效率极低。Word 2013提供了功能强大的查找和替换功能 ,能够对文档中的内容进行快速查找,并对查找到的内容进行替 换。 • 查找:进行文档编辑时,可以使用Word 2013的查找功能来实现 对文本的快速查找。(高级查找) • 替换 :在找到需要的文字后,有时需要将其替换为其他的文字, 如果逐个查找后再进行替换,则操作效率较低。此时,可以使用 Word的替换功能,自动将找到的内容替换为需要的内容。
(2)新建文档
• 在Office 2013的各个组件中,新建Office文档的方式都是 相同的。新建文档的常见方式有3种,分别是使用桌面右键 快捷菜单命令、在文件夹中创建文档和使用组件程序的菜 单命令。 • • • • 在桌面上创建文档 在文件夹中创建新文档 直接创建新文档 根据模板创建• • • • • • • • • 关于中文输入法 输入文本 选择文本 删除和替换文本 移动和复制文本 快速定位文档 查找和替换 公式的输入 小结
(1)关于中文输入法

微软拼音输入法2010是一款功能强大的汉字输入工具,其不 仅能够便捷地实现汉字输入,同时还具有软键盘功能,使用 户能够方便地输入各类特殊符号。

安装Office 2013时,安装程序会自动安装微软拼音输入法 2010。该输入法是一款中文输入工具,与以前的版本相比, 其词库得到了更新和丰富,汉字的输入智能化得到了大大加 强,同时它也是为数不多的支持整句输入的输入法之一。
(2)输入文本
• 文本的输入是文档操作的基础 ,Word的基本功能就是创 建各种类型的文本文件,文件创建的过程,实际上就是在 文档中输入文字的过程。 • 文本输入的位置 :输入文本就是在文本输入区的插入点光 标处输入文字内容。创建新的文档时,文档的工作区中会 出现一个不停闪烁的“|”,称为插入点光标。 • 自动更正:输入文本时,Word会自动实现对单词、符号和 中文文本或图形进行指定的更正,即以设定的内容替换文 档中输入的内容。要想实现对特定文本自动更正,需要对 自动更正的文本进行设置。

《Word文档的基本操作》100招技巧——前50条

《Word文档的基本操作》100招技巧——前50条

《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”键,然后按上下方向键,按“向上箭头”键可使该行在表格内向上移动,按“向下箭头"键可使该行向下移动。

计算机基础第5讲 WORD基本操作(1)

计算机基础第5讲 WORD基本操作(1)
选定项目,在功能区单击相应按钮,可创 建项目符号和编号
50
首字下沉
“插入”选项卡“文本”任务组“首字下沉” 按钮
51
目录
“引用”选项卡 “目录”任务组 “目录”按钮
目录
选择创建的目录 “目录”按钮 “插入目录”选 项
目录
单击“选项”按钮将打开“目录选项”对话框,设置 采用目录形式的样式内容。
行首 下一行 上一行 段尾 段首
26
键盘选定文本
Shift+PageDown Shift+PageUp Ctrl+shift+Home
Ctrl+shift+End Alt+ctrl+Shift+PageDown Ctrl+A
下一屏 上一屏 文档开始处
文档结尾处 窗口结尾 包含整篇文档
27
删除文本 :
查找功能只用于在文本中定位,而对文 本不做任何修改。利用Word 2010的查找命令 可在文档中快速找到所需要的内容、带特殊 格式的文本及特殊字符。查找有两种方式: 常规查找和高级查找。
34
35
36
37
38
公式的输入
“插入”选项卡的“符号”任务组中的“公式 ”命令
39
字符格式设置
使用“字体”任务组
2.预览打印文档及打印
单击“文件”标签,在选项卡中单击“打印”选 项,在最右侧的窗格中将能够预览打印效果 (Ctrl+P)
边框和底纹
1.添加边框 “页面布局”选项卡“页面背景”任务组“页面边框” 按钮。
2.添加装饰线
边框和底纹
3.为文字添加边框
4.为文字添加底纹
分栏
“页面布局”选项卡“页面设置”任务组“分栏” 按钮

Word怎样批量修改图片大小、位置?有比这5个方法更全的么?

Word怎样批量修改图片大小、位置?有比这5个方法更全的么?

Word怎样批量修改图⽚⼤⼩、位置?有⽐这5个⽅法更全的么?Word批量修改图⽚⼤⼩、位置,5个⽅法集合召唤神龙!⼀、Word批量修改图⽚位置(⼀)替换功能Word替换功能很强⼤,不仅可以批量替换⽂本、修改⽂本格式,还可以批量修改图⽚位置~Ctrl+H替换——查找内容:光标定位,左下⾓点击【更多】,底部点击【特殊格式】,选择【图形】(根据原⽂对段落格式进⾏相应设置)。

或者直接输⼊^g替换为:左下⾓点击【更多】,左下⾓点击【格式】,选择【段落】——【缩进和间距】⾃定义设置,右下⽅点击确定——点击【全部替换】。

(⼆)借助表格借助表格可以让图⽚固定位置~1、插⼊表格点击【插⼊ - 表格】,根据所需插⼊图⽚数量、排布情况选择⾏、列。

2、设置⾏⾼、单元格边距选中表格右键,选择【表格属性】——点击【⾏】选项卡,【尺⼨】勾选【指定⾼度】,设置图⽚⾼度——点击【确定】。

右键,选择【表格属性】——点击【单元格】选项卡,右下⽅点击【选项】,⾃定义单元格边距——点击【确定】。

3、导⼊图⽚(三)选择多个对象这个⽅法貌似⽐较⾼级⼀点?~1、添加功能点击【⽂件 - 选项 - ⾃定义功能区】,点击【从下列位置选择命令】选择【所有命令】,下⽅找到并点击【选择多个对象】,右侧【主选项卡】下边点击【新建组】,最后点击中间的【添加】按钮。

点击【⽂件 - 选项 - ⾼级】——【剪切、复制和粘贴- 将图⽚插⼊/粘贴为】,设置环绕⽅式。

⽂件后缀格式【.docx】改为【.doc】。

4、图⽚格式【开始】功能区最后⼀项【选择多个对象】——弹窗左下⾓点击【全选】——右键设置图⽚格式。

⼆、Word批量修改图⽚⼤⼩、位置万能的F4重复键~⽅法:双击第⼀张图⽚,修改⼤⼩或位置作为样本——分别选中其它图⽚按F4键。

三、批处理插件批量修改图⽚⼤⼩遇到需要批量修改图⽚⼤⼩,可以⽤⼀个插件~【美图秀秀批处理】,再多图⽚⼀键搞定~⽅法:左侧点击【添加图⽚】——右下⾓设置修改图的保存【路径】——右上⽅设置【修改尺⼨(保持原图⽐例)】,点击【更多】调整【画质】——右下⾓点击【保存】。

docx文档的基本操作

docx文档的基本操作

docx文档的基本操作基本操作.docx文档有以下几种方法:1. 打开文档:双击.docx文件即可在默认的程序中打开文档,例如Microsoft Word。

也可以在Word中选择“文件”菜单,然后点击“打开”来浏览文件并选择要打开的.docx文档。

2. 创建文档:在Microsoft Word中,点击“文件”菜单,然后选择“新建”来创建一个新的.docx文档。

也可以使用快捷键Ctrl+N来创建一个新文档。

3. 保存文档:在Microsoft Word中,点击“文件”菜单,然后选择“保存”或“另存为”来保存文档。

保存为docx格式时,文件名后缀应为.docx。

4. 编辑文档:在Microsoft Word中,可以在文档中输入文本、添加图片、插入表格等。

选择所需的编辑操作,例如键盘输入、复制粘贴、格式化等。

5. 格式化文档:在Microsoft Word中,可以对文档进行格式化操作,例如修改字体、调整字号、对齐文本、添加页眉页脚等。

选择需要格式化的文本或段落,然后使用工具栏上的选项进行格式化。

6. 查找和替换文本:在Microsoft Word中,点击“编辑”菜单,然后选择“查找”或“替换”来查找和替换文档中的特定文本。

7. 插入页码和目录:在Microsoft Word中,可以使用页脚功能插入页码,或使用目录功能插入目录。

选择页面上要插入页码或目录的位置,然后在菜单中选择相应的选项。

8. 打印文档:在Microsoft Word中,点击“文件”菜单,然后选择“打印”来打印文档。

可以选择打印份数、打印范围等选项,然后点击“打印”按钮进行打印。

9. 关闭文档:在Microsoft Word中,点击窗口右上角的“X”按钮即可关闭当前打开的文档。

如果文档有未保存的更改,系统会提示是否保存。

这些是.docx文档的一些基本操作方法,能够满足一般文档的创建、编辑、保存等需求。

JAVA实现替换WORD模板中的文字和图片

JAVA实现替换WORD模板中的文字和图片

JAVA实现替换WORD模板中的⽂字和图⽚1.本来有其他⽅法可以实现的,但是由于jar包⼀直有问题所以换了种,要是还有其他的更好的⽅法,希望可以讨论2.废话不说直接上代码;3.我⾃⼰加了个⽣成图⽚的⽅法,也可以不需要直接⽤已经存在的图⽚替换即可,注意jar包的引⼊,import的时候看清楚是什么包!!!先给出MAVEN中pom.xml需要导⼊的包<dependency><groupId>org.apache.poi</groupId><artifactId>poi-excelant</artifactId><version>3.12</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.12</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.8</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.8</version></dependency><!-- ⽣成图⽚--><dependency><groupId>org.jfree</groupId><artifactId>jfreechart</artifactId><version>1.0.19</version></dependency><dependency><!--⽀持插⼊图⽚--><groupId>org.docx4j</groupId><artifactId>docx4j</artifactId><version>3.3.1</version></dependency>package com.example.demo;import java.awt.*;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.text.DecimalFormat;import java.text.NumberFormat;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import mons.io.IOUtils;import org.apache.poi.POIXMLDocument;import org.docx4j.wml.Document;import ermodel.XWPFDocument;import ermodel.XWPFParagraph;import ermodel.XWPFRun;import org.assertj.core.util.Maps;import org.docx4j.TraversalUtil;import org.docx4j.dml.wordprocessingDrawing.Inline;import org.docx4j.finders.RangeFinder;import org.docx4j.openpackaging.packages.WordprocessingMLPackage;import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;import org.docx4j.wml.*;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import bels.StandardPieSectionLabelGenerator;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;public class ReplaceWordUtils {//模板路径public static final String DOC_PATH = "D:\\report\\test.docx";//图⽚路径public static final String IMAGE_PATH = "D:\\report\\test.png";//替换⽂字图⽚后的路径public static final String DOC_PATH2 = "D:\\report\\test1.docx";//word⽂档中替换⽂字⽅法public static void replaceContent(Map<String, String> map,String wordPath){XWPFDocument document = null;try{document = new XWPFDocument(POIXMLDocument.openPackage(wordPath));Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();while (itPara.hasNext()) {XWPFParagraph paragraph = (XWPFParagraph) itPara.next();List<XWPFRun> runs = paragraph.getRuns();for (int i = 0; i < runs.size(); i++) {String oneparaString = runs.get(i).getText(runs.get(i).getTextPosition());for (Map.Entry<String, String> entry : map.entrySet()) {if (oneparaString.equals(entry.getKey())) {oneparaString = oneparaString.replace(entry.getKey(), entry.getValue());}}runs.get(i).setText(oneparaString, 0);}}FileOutputStream outStream = null;outStream = new FileOutputStream(DOC_PATH2);document.write(outStream);outStream.close();}catch (Exception e){e.printStackTrace();}}public static void replaceImage(){//-----------------------------------插⼊图⽚---------------------------------------File file = new File(IMAGE_PATH);try {File file2 = new File(DOC_PATH2);WordprocessingMLPackage wPackage = WordprocessingMLPackage.load(new FileInputStream(file2));MainDocumentPart mainDocumentPart = wPackage.getMainDocumentPart();Document wmlDoc = (Document) mainDocumentPart.getJaxbElement();Body body = wmlDoc.getBody();// 提取正⽂中所有段落List<Object> paragraphs = body.getContent();// 提取书签并创建书签的游标RangeFinder rt = new RangeFinder("CTBookmark", "CTMarkupRange");new TraversalUtil(paragraphs, rt);for (CTBookmark bm : rt.getStarts()) {if (bm.getName().equals("images")) {// 这⾥的test为 word⽂档中预设的书签名InputStream inputStream = new FileInputStream(file);byte[] bytes = IOUtils.toByteArray(inputStream);BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wPackage, bytes);Inline inline = imagePart.createImageInline(null, null, 0, 1, false, 10000);//这⾥的100000不是正常屏幕⼤⼩,⽤于设置插⼊图⽚的⼤⼩ P p = (P) (bm.getParent());ObjectFactory factory = new ObjectFactory();// R对象是匿名的复杂类型,然⽽我并不知道具体啥意思,估计这个要好好去看看ooxml才知道R run = factory.createR();// drawing理解为画布?Drawing drawing = factory.createDrawing();drawing.getAnchorOrInline().add(inline);run.getContent().add(drawing);p.getContent().add(run);}}wPackage.save(new FileOutputStream(new File(DOC_PATH2)));} catch (Exception e) {e.printStackTrace();}}//⽣成图⽚public static void initImg(){DefaultPieDataset dataset = new DefaultPieDataset();dataset.setValue("修改类", 1);dataset.setValue("提⽰类", 1);dataset.setValue("校验不通过", 3);dataset.setValue("正常类", 3);JFreeChart chart = ChartFactory.createPieChart3D(null, dataset, true, false, false);chart.getLegend().setItemFont(new Font("⿊体", Font.BOLD, 15)); // 设置图例类别字体// TextTitle title = new TextTitle(titleString);// title.setFont(new Font("⿊体", Font.ITALIC, 20));//设置标题字体// chart.setTitle(title);PiePlot piePlot = (PiePlot) chart.getPlot();DecimalFormat df = new DecimalFormat("0.00%");NumberFormat nf = NumberFormat.getInstance();StandardPieSectionLabelGenerator generator = new StandardPieSectionLabelGenerator("{0} {2}", nf, df);// 获得StandardPieSectionLabelGenerator对象,⽣成的格式, // {0}表⽰section名,{1}表⽰section的值,{2}表⽰百分⽐。

国家二级MSOffice高级应用机试模拟题2019年(9)_含答案与解析)-交互86

国家二级MSOffice高级应用机试模拟题2019年(9)_含答案与解析)-交互86

国家二级(MS Office高级应用)机试模拟题2019年(9)(总分100, 做题时间120分钟)选择题1.程序流程图中带有箭头的线段表示的是( )。

SSS_SINGLE_SELA图元关系B数据流C控制流D调用关系分值: 1答案:C在数据流图中,用标有名字的箭头表示数据流。

在程序流程图中,用标有名字的箭头表示控制流。

所以选择C。

2.结构化程序设计的基本原则不包括( )。

SSS_SINGLE_SELA多态性B自顶向下C模块化D逐步求精分值: 1答案:A结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

3.软件设计中模块划分应遵循的准则是( )。

SSS_SINGLE_SELA低内聚低耦合B高内聚低耦合C低内聚高耦合D高内聚高耦合分值: 1答案:B软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。

模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。

模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。

4.在软件开发中,需求分析阶段产生的主要文档是( )。

SSS_SINGLE_SELA可行性分析报告B软件需求规格说明书C概要设计说明书D集成测试计划分值: 1答案:BA错误,可行性分析阶段产生可行性分析报告。

C错误,概要设计说明书是总体设计阶段产生的文档。

D错误,集成测试计划是在概要设计阶段编写的文档。

B 正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。

5.算法的有穷性是指( )。

SSS_SINGLE_SELA算法程序的运行时间是有限的B算法程序所处理的数据量是有限的C算法程序的长度是有限的D算法只能被有限的用户使用分值: 1答案:A算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

有穷性是指算法程序的运行时间是有限的。

6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。

实验3-文字处理Word 2010

实验3-文字处理Word 2010

《大学计算机基础》实验报告班级物联网1411 学号141003320115 姓名祁辉实验2:文字处理Word 2010一、实验目的掌握字处理软件中文Word 2010文本编辑的基本方法二、实验要求1.掌握Word文档中字体、段落、分栏等设置操作;2.掌握方法表格的插入、编辑以及与文本之间的转换等操作;3.掌握艺术字的编辑、图片的插入、图文混排、文字替换等的操作方法;4.掌握公式编辑和文本框、图形编辑、页眉页脚设置、文档页面设置的方法。

三、实验环境操作系统:Windows 7中文版字处理软件:Word 2010中文版四、实验内容及过程(过程以截图和文字方式说明)1. 打开\实验素材\flx1.docx按要求操作,结果以原文件名保存。

(1)将文章中除标题以外的所有“中国”及其后任一字符格式设置为“隶书、加粗、红色、20号、突出显示”上海世博会中国国家馆中国馆共分为国家馆和地区馆两部分,国家馆主体造型雄浑有力,宛如华冠高耸,天下粮仓;地区馆平台基座汇聚人流,寓意社泽神州,富庶四方。

国家馆和地区馆的整体布局,隐喻天地交泰、万物咸亨。

国家馆居中升起、层叠出挑,采用极富中国建筑文化元素的红色“斗冠”造型,建筑面积46457平方米,高69米,由地下一层、地上六层组成;地区馆高13米,由地下一层、地上一层组成,外墙表面覆以“叠篆文字”,呈水平展开之势,形成建筑物稳定的基座,构造城市公共活动空间。

观众首先将乘电梯到达国家馆屋顶,即酷似九宫格的观景平台,将浦江两岸美景尽收眼底。

然后,观众可以自上而下,通过环形步道参观49米、41米、33米三层展区。

而在地区馆中,观众在参观完地区馆内部31个省、市、自治区的展厅后,可以登上屋顶平台,欣赏屋顶花园。

游览完地区馆以后,观众不需要再下楼,可以从与屋顶花园相连的高架步道离开中国馆。

为了均衡客流,世博会期间中国馆将实行“全预约”参观,预约点设在展览现场各出入口。

第一展区:探寻“东方足迹”。

第3章 word2010的使用

第3章 word2010的使用

先选定后执行
22
2.编辑文档
插入
定插入点——输入
选择文本—— BackSpace、Delete
删除
移动 复制 查找和替换 检查拼写与语法
选择文本—剪切—定插入点—粘贴 选择文本—复制—定插入点—粘贴
“开始”|“编辑”|查找/替换 “审阅”|“校对”|拼写和语法
剪切、复制、粘贴命令,可以从“开始|剪贴板”组或快 捷菜单中选取,也可以选取工具栏中相应的按钮,还可以 使用组合键(CTRL+X,CTRL+C,CTRL+V)
绘制斜线表头:可以使用“插入”选 项卡“插图”组“形状”按钮中“线 条”区的直线和“基本形状”区的 “文本框”共同完成
43
可向单元格输入文字、图形等内容,与文档 操作一样。 单元格的边界作为文档的边界, 当输入内容达到单元格的右边界时,文本自动 换行,行高也将自动调整。
文字在单元格中的对齐方式
(1) 在右键快捷菜单中指向“单元格对齐方式” (2) 分别设臵: 水平对齐方式:“开始|段落 ”组中命令 垂直对齐方式:右击表格,表格属性|单元格-垂直对齐方式

中英文混合输入,按ctrl+space 切换
13
输入特殊符号可借助“符号”对话框输入:
14
输入文字应注意:
(1)输入时各行结尾处不要按Enter键,一个段落结 束才可按此键;每个段落后会产生一个段落标记(可 通过“开始”选项卡“段落”组中的显示/隐藏编辑 标记查看,用于区分第几段落) (2)输入有错,按Delete删除插入点右边的错字, 按BackSpace删除插入点左边的错字。
说明:在页眉和页脚中可加入文件名、 页码、 日期、单位名 等文字或图形,同时可设臵它们的字符格式和对齐方式等

Java Word中的文本、图片替换功能

Java Word中的文本、图片替换功能

Java Word中的文本、图片替换功能Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换。

以下将要介绍的内容,除常见的以文本替换文本外,还将介绍不同对象间相互替换的方法,具体可包括:1. 指定字符串内容替换文本(通过方法replce(matchString, newValue, caseSensitive, wholeWord );直接指定替换的新字符串内容)2. 获取文档内容替换文本(通过方法replace(String matchString, TextSelection textSelection, boolean caseSensitive, boolean wholeWord);替换指定文本)3. 图片替换文本4. 图片替换图片需要使用Free Spire.Doc for Java的jar包,可手动下载并解压导入Spire.Doc.jar文件到Java 程序,也可以通过maven仓库下载导入。

【示例1】指定字符串内容替换文本import com.spire.doc.*;public class ReplaceTextWithText {public static void main(String[] args) {//加载文档Document doc = new Document();doc.loadFromFile("test.docx");//要替换第一个出现的指定文本,只需在替换前调用setReplaceFirst方法来指定只替换第一个出现的指定文本//doc.setReplaceFirst(true);//调用方法用新文本替换原文本内容doc.replace("系统测试", "System Testing", false, true);//保存文档doc.saveToFile("ReplaceAllText.docx",FileFormat.Docx_2013);doc.dispose();}}【示例2】获取文档内容替换文本import com.spire.doc.*;import com.spire.doc.documents.TextSelection;public class ReplaceTextWithDocument {public static void main(String[] args) {//加载文档1Document doc1 = new Document();doc1.loadFromFile("test.docx");//加载文档2Document doc2 = new Document();doc2.loadFromFile("TargetFile.docx");//查找文档2中的指定内容TextSelection textSelection = doc2.findString("Falling under the scope of black box testing, " +"system testing is a phase in the software " +"testing cycle where a total and integrated" +" application /system is tested.",false,false);//用文档2中查找到的内容替换文档1中的指定字符串doc1.replace("System Test, ST",textSelection,false,true);//保存文档1doc1.saveToFile("ReplaceTextWithDocument.docx",FileFormat.Docx_2013);doc1.dispose();}}两个用于测试的文档如下,将文档2中的文本内容替换文档1中的指定文本内容:替换结果:【示例3】图片替换文本import com.spire.doc.*;import com.spire.doc.documents.TextSelection;import com.spire.doc.fields.DocPicture;import com.spire.doc.fields.TextRange;public class ReplaceTextWithImg {public static void main(String[] args) {//加载文档Document doc = new Document("test.docx");//查找需要替换的字符串TextSelection[] textSelection = doc.findAllString("系统测试",true,false);int index ;//加载图片替换文本字符串for (Object obj : textSelection) {TextSelection Selection = (TextSelection)obj;DocPicture pic = new DocPicture(doc);pic.loadImage("tp.png");TextRange range = Selection.getAsOneRange();index = range.getOwnerParagraph().getChildObjects().indexOf(range); range.getOwnerParagraph().getChildObjects().insert(index,pic);range.getOwnerParagraph().getChildObjects().remove(range);}//保存文档doc.saveToFile("ReplaceTextWithImage.docx", FileFormat.Docx_2013);doc.dispose();}}【示例4】图片替换图片import com.spire.doc.*;import com.spire.doc.documents.Paragraph;import com.spire.doc.fields.DocPicture;public class ReplacePictureWithPicture {public static void main(String[] args) {//加载Word文档Document doc = new Document();doc.loadFromFile("sample.docx");//获取文档中的指定段落Section section = doc.getSections().get(0);Paragraph para = section.getParagraphs().get(0);//替换段落中的第一张图片Object obj = para.getChildObjects().get(0);if(obj instanceof DocPicture){DocPicture pic = (DocPicture)obj;pic.loadImage("tp.png");}/*//批量替换图片for(int i =0;i < section.getParagraphs().getCount();i++){Object obj = section.getParagraphs().get(i).getChildObjects(); if(obj instanceof DocPicture){DocPicture pic = (DocPicture)obj;pic.loadImage("tp.png");}}*///保存结果文档doc.saveToFile("ReplaceWithImage.docx", FileFormat.Docx_2013);doc.dispose();}}(完)。

文本替换的这3种用法,你是否全都知道怎么用?

文本替换的这3种用法,你是否全都知道怎么用?

文本替换的这3种用法,你是否全都知道怎么用?在制作和编辑办公文档时,当遇到文档中输入的多处相同的文本错误,或者需要对文档中多处相同的文本需要进行修改时,熟练Word 的人,基本上都会选择替换功能来批量实现,以便提高办公效率。

在Word中替换文本的用法也有多种,是一次性替换?还是逐个替换?亦或者是局部范围替换呢?这些都需要根据实际情况来进行选择。

今天就给大家讲讲文本替换的3种用法,以便我们快速选择替换方法。

1.全部替换文本替换功能主要用于修改文档中的错误内容。

当同一错误在文档中出现了多次时,可以通过替换功能进行批量修改,具体操作步骤如下。

Step 01选择【替换】选项。

在'公司概况 .docx'文档中,将光标插入点定位在文档的起始处;在【导航】窗格中单击搜索框右侧的下拉按钮;在弹出的下拉列表中选择【替换】选项,如图所示。

Step 02查找和替换文本。

打开【查找和替换】对话框,并自动定位在【替换】选项卡,在【查找内容】文本框中输入要查找的内容,如输入'红太郎酒';在【替换为】文本框中输入要替换的内容,如输入'语凤酒';单击【全部替换】按钮,如图所示。

技能拓展——快速定位到【替换】选项卡在要进行替换内容的文档中,按【Ctrl+H】组合键,可快速打开【查找和替换】对话框,并自动定位在【替换】选项卡。

Step 03完成替换。

Word 将对文档中所有'红太郎酒'一词进行替换操作,完成替换后,在打开的提示框中单击【确定】按钮,如图所示。

Step 04关闭对话框。

返回【查找和替换】对话框,单击【关闭】按钮关闭该对话框,如图所示。

Step 05查看文档效果。

返回文档,即可查看替换后的效果,如图所示。

2.逐个替换文本在进行替换操作时,如果只是需要将部分内容进行替换,则需要逐个替换,以避免替换不该替换的内容。

逐个替换的具体操作步骤如下。

Step 01单击【替换】按钮。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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中插入图片。

相关文档
最新文档