精华内容
下载资源
问答
  • 注:本文由于个人工作需要,有对多个他人博文进行借鉴,...java代码对word文档进行文字,图片,表格的添加以及替换,效果图如下: 原文档: 替换后文档: 正文开始 前提:需要引入包 Spire.Doc.jar 大家可...

    注:本文由于个人工作需要,有对多个他人博文进行借鉴,但是多数博文都只是讲到了小部分,例如图片/表格的操作,都只有根据书签进行替换,比较片面,本人有总结到根据文字进行图片/表格的替换,希望可以帮到更多有需要的朋友 。

    java代码对word文档进行文字,图片,表格的添加以及替换,效果图如下:

    原文档:

    替换后文档:


    正文开始

    前提:需要引入包  Spire.Doc.jar  大家可以去官网进行下载:https://www.e-iceblue.cn/ 

    代码正文如下:

    public static void main(String[] args) {
            Document document = new Document("C:/Users/moreyou0426003/Desktop/测试文字-图片-表格模板.docx");
            /****** 1.使用新文本替换文档中的指定文本 begin ******/
            document.replace("${title}", "水晶之痕", false, true);
            document.replace("${currentYear}", "2019", false, true);
            document.replace("${currentMonth}", "12", false, true);
            document.replace("${currentDate}", "25", false, true);
            document.replace("${startYear}", "2010", false, true);
            document.replace("${endYear}", "2020", false, true);
            document.replace("${name}", "艾欧尼亚", false, true);
            /********************* 1.使用新文本替换文档中的指定文本 end *********************/
            
            /********************* 2.图片替换文字 begin *********************/
            //获取第二段
            //Paragraph para = document.getSections().get(0).getParagraphs().get(1);
            //添加图片,并设置图片高、宽
            //DocPicture picture = para.appendPicture("C:/Users/moreyou0426003/Desktop/img.jpg");
            //picture.setHeight(200);
            //picture.setWidth(300);
            /**********以上是根据段落添加图片************/
            //获取第一个section
            Section section = document.getSections().get(0);
            TextSelection selection = document.findString("${img}", true, true);
            //查找文档中的指定文本内容
            TextSelection[] selections = document.findAllString("${img}", true, true);
            int index = 0;
            TextRange range = null;
            //遍历文档,移除文本内容,插入图片
            for (TextSelection selection : selections) {
            	DocPicture pic = new DocPicture(document);
                pic.loadImage("C:/Users/moreyou0426003/Desktop/img.jpg");
                range = selection.getAsOneRange();
                index = range.getOwnerParagraph().getChildObjects().indexOf(range);
                range.getOwnerParagraph().getChildObjects().insert(index, pic);
                range.getOwnerParagraph().getChildObjects().remove(range);
    		}
            /********************* 2.图片替换文字 end *********************/
            
            /********************* 3.表格替换文字 begin *********************/
            //声明数组内容
            /*
            String[][] data =
                    {
                            new String[]{"班级", "姓名", "学号"},
                            new String[]{"1班", "刘楠", "Y12534"},
                            new String[]{"2班", "刘莉", "Y12547"},
                            new String[]{"3班", "方红", "Y12365"},
                    };
            //创建表格
            Table table = new Table(document, true);
            table.resetCells(4, 3);
            for (int i = 0; i < data.length; i++) {
                TableRow dataRow = table.getRows().get(i);
                for (int j = 0; j < data[i].length; j++) {
                    TextRange range = dataRow.getCells().get(j).addParagraph().appendText(data[i][j]);
                    range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
                    range.getCharacterFormat().setFontName("楷体");
                    dataRow.getRowFormat().setHorizontalAlignment(RowAlignment.Center);
                    dataRow.getCells().get(j).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
                }
            }
            //定位到指定书签位置,添加表格
            BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document);
            bookmarksNavigator.moveToBookmark("bookmark1");
            bookmarksNavigator.insertTable(table);
            */
            /**********以上是根据书签添加表格**************/
            //查找关键字符串文本
            Section section = document.getSections().get(0);
            TextSelection[] selections2 = document.findAllString("${list}", true, true);
            for (TextSelection selection2 : selections2) {
            	//获取关键字符串所在段落的索引
                TextRange range2 = selection2.getAsOneRange();
                Paragraph paragraph = range2.getOwnerParagraph();
                Body body = paragraph.ownerTextBody();
                int index2 = body.getChildObjects().indexOf(paragraph);
                //添加一个两行三列的表格
                Table table = section.addTable(true);
                table.resetCells(2, 3);
                range2 = table.get(0, 0).addParagraph().appendText("学号");
                range2 = table.get(0, 1).addParagraph().appendText("姓名");
                range2 = table.get(0, 2).addParagraph().appendText("性别");
                range2 = table.get(1, 0).addParagraph().appendText("XH001");
                range2 = table.get(1, 1).addParagraph().appendText("张三");
                range2 = table.get(1, 2).addParagraph().appendText("男");
                //移除段落,插入表格 
                body.getChildObjects().remove(paragraph);
                body.getChildObjects().insert(index2, table);
            }
            /********************* 3.表格替换文字 end *********************/
            
            //保存文档
            document.saveToFile("C:/Users/moreyou0426003/Desktop/测试文字-图片-表格模板.docx");
    	}

    代码可能存在很多注释的地方,并不是没用的代码,我将逐步解析!

    解析:

    Document document = new Document();
    document.loadFromFile("C:/Users/moreyou0426003/Desktop/测试文字-图片-表格模板.docx");

    以上代码是读取源文件

    document.replace("${title}", "水晶之痕", false, true);
    document.replace("${currentYear}", "2019", false, true);
    document.replace("${currentMonth}", "12", false, true);
    document.replace("${currentDate}", "25", false, true);
    document.replace("${startYear}", "2010", false, true);
    document.replace("${endYear}", "2020", false, true);
    document.replace("${name}", "艾欧尼亚", false, true);

    以上代码是对读取到的源文件进行文字替换操作

    //获取第二段
    Paragraph para = document.getSections().get(0).getParagraphs().get(1);
    //添加图片,并设置图片高、宽
    DocPicture picture = para.appendPicture("C:/Users/moreyou0426003/Desktop/img.jpg");
    picture.setHeight(200);
    picture.setWidth(300);

    以上代码是根据段落进行图片的插入

    TextSelection[] selections = document.findAllString("${img}", true, true);
            int index = 0;
            TextRange range = null;
            //遍历文档,移除文本内容,插入图片
            for (TextSelection selection : selections) {
                DocPicture pic = new DocPicture(document);
                pic.loadImage("C:/Users/moreyou0426003/Desktop/img.jpg");
                range = selection.getAsOneRange();
                index = range.getOwnerParagraph().getChildObjects().indexOf(range);
                range.getOwnerParagraph().getChildObjects().insert(index, pic);
                range.getOwnerParagraph().getChildObjects().remove(range);
            }

    以上代码是对读取到的源文件中,包含  ${img}  的文字进行图片替换操作 ,如果如果不需要全局替换,只替换一个,可以使用以下代码块:

    //获取第一个section
    Section section = document.getSections().get(0);
    TextSelection selection = document.findString("${img}", true, true);

    //声明数组内容
    String[][] data =
            {
                    new String[]{"班级", "姓名", "学号"},
                    new String[]{"1班", "刘楠", "Y12534"},
                    new String[]{"2班", "刘莉", "Y12547"},
                    new String[]{"3班", "方红", "Y12365"},
            };
    //创建表格
    Table table = new Table(document, true);
    table.resetCells(4, 3);
    for (int i = 0; i < data.length; i++) {
        TableRow dataRow = table.getRows().get(i);
        for (int j = 0; j < data[i].length; j++) {
            TextRange range = dataRow.getCells().get(j).addParagraph().appendText(data[i][j]);
            range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
            range.getCharacterFormat().setFontName("楷体");
            dataRow.getRowFormat().setHorizontalAlignment(RowAlignment.Center);
            dataRow.getCells().get(j).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
        }
    }
    //定位到指定书签位置,添加表格
    BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(document);
    bookmarksNavigator.moveToBookmark("bookmark1");
    bookmarksNavigator.insertTable(table);

    以上代码块是对书签(bookmark1)位置插入表格

    Section section = document.getSections().get(0);
    TextSelection[] selections2 = document.findAllString("${list}", true, true);
    for (TextSelection selection2 : selections2) {
         //获取关键字符串所在段落的索引
        TextRange range2 = selection2.getAsOneRange();
        Paragraph paragraph = range2.getOwnerParagraph();
        Body body = paragraph.ownerTextBody();
        int index2 = body.getChildObjects().indexOf(paragraph);
        //添加一个两行三列的表格
        Table table = section.addTable(true);
        table.resetCells(2, 3);
        range2 = table.get(0, 0).addParagraph().appendText("学号");
        range2 = table.get(0, 1).addParagraph().appendText("姓名");
        range2 = table.get(0, 2).addParagraph().appendText("性别");
        range2 = table.get(1, 0).addParagraph().appendText("XH001");
        range2 = table.get(1, 1).addParagraph().appendText("张三");
        range2 = table.get(1, 2).addParagraph().appendText("男");
        //移除段落,插入表格 
        body.getChildObjects().remove(paragraph);
        body.getChildObjects().insert(index2, table);
    }

    以上代码是对读取到的源文件中,包含  ${list}  的文字进行表格替换操作 ,如果如果不需要全局替换,只替换一个,请参照上文图片处所备注的方法即可

    document.saveToFile("C:/Users/moreyou0426003/Desktop/测试文字-图片-表格模板.docx");

    最后对文本进行操作完之后记得对文档进行保存,保存地址可以是源文件 ,也可以指定其他文件

    展开全文
  • 菜单栏(T)---> 选项(O)---> 编辑 --->改写模式(V) 打钩去掉就好了
    菜单栏(T)---> 选项(O)---> 编辑 --->改写模式(V) 打钩去掉就好了
    展开全文
  • 可爱的甜儿专属 对word文档自动替换成编号,将001替换为可自动的编号。 1、在word文档001前面位置按ctrl+f9,会出现花括号,在花括号中输入SEQ A,如下图所示。将整个花括号复制。 2.

    可爱的甜儿专属

    对word文档自动替换成编号,将001替换为可自动的编号。

    1、在word文档001前面位置按ctrl+f9,会出现花括号,在花括号中输入SEQ A,如下图所示。

    2.右击花括号,选择“编辑域”,然后选择“选项”,来调整显示格式,双击“0”格式时候,在下面框中会有\# "0",对其进行修改,变成\# "000",这样显示的编号就是“001”、“002”格式的,然后全部确定,最后将整个花括号复制。

    3.ctrl+H,将需要替换的地方输入查找内容,下面输入^c,然后全部替换,小笨蛋要注意哦,通配符要勾选上。

    替换之后如下图所示。

    4.把花括号位置删除,然后ctrl+a选中所有,按f9更新域,就完成啦。

    会了吗 小可爱

    展开全文
  • Word文档编辑

    2018-07-01 11:22:57
    文档编辑区 2.功能选项卡 3.标题栏 4.功能面板 5.滚动条 6.状态栏 二、word的基本操作 1.创建word文件:(1)鼠标右击–》选择word (2)开始菜单–》Microsoft Office–》点击Microsoft offic...

    一、Word 2007界面组成部分:
    1.文档编辑区
    2.功能选项卡
    3.标题栏
    4.功能面板
    5.滚动条
    6.状态栏
    二、word的基本操作
    1.创建word文件:(1)鼠标右击–》选择word
    (2)开始菜单–》Microsoft Office–》点击Microsoft office Word2007
    2.保存:(1)快捷键ctrl+s
    (2)Office按钮–》保存(或者另存为)
    (3)快速工具栏保存按钮
    3.设置字体:(1)选中字体–》快速工具栏上的设置字体
    (2)选中字体–》右击–》字体
    4.复制:选中需要复制的内容–》右击–》复制(ctrl+c)
    5.粘贴:右击–》粘贴(ctrl+v)
    6.查找:ctrl+f
    7.替换
    8.页面设置:页面布局–》页面设置
    9.设置项目符号:开始–>快速工具栏(右击设置项目符号)–>选择项目符号
    10.标题:选择文字–》设置标题
    11.设置大纲级别:视图–》大纲视图
    12.使用文档结构图:视图–》文档结构图打上对勾
    13.页面边框:全选文字–》页面布局–》页面边框–》边框–》方框–》段落中间添加横线(选做)–》底纹–》确定
    14.添加目录:选择插入目录的位置–》引用–》目录
    15.添加页码、页眉、页脚:插入–》页眉、页码、页脚
    16. 行间距、段落距离:右击段落(或者快速工具栏段落)–》设置间距
    17.插入表格:插入–》表格(5行3列)
    18.设置表格属性:选中表格–》布局–》属性–》设置表格的对齐方式和文字环绕样式
    19.插入图片:(1)插入–》图片–》选择图片
    (2)直接将图片拖拽到文档中
    20.插入图表:插入–》图表–》选择图表样式–》编辑图表数据
    21.插入批注:需要编辑的内容–》审阅–》新建批注
    22.插入对象:插入–》对象–》选择需要插入的对象
    23.统计字数:审阅–》字数统计
    24.自动更正:office按钮–》word选项–》校对–》自动更正选项–》在替换处输入预替换的内容–》替换为处输入–》要替换的内容–》添加(在Word中输入预替换的内容,然后回车就看到已经替换了的内容)
    25.拼写检查:审阅–》拼写检查
    26.修订:审阅–》修订–》接受或者拒绝修订。

    展开全文
  • 如何将word文档文字变成同一类型的 按“Ctrl+h”打开查找和替换,并输入想要查找的字 如何将word文档文字变成同一类型的 点击“更多” 如何将word文档文字变成同一类型的 点击“格式”,再点击字体 如...
  • 2. 替换Word文档中的关键字 2.1 创建模板到指定文件路径 2.2 代码部分 using System.Collections.Generic; using UnityEngine; using NPOI.XWPF.UserModel; using System.IO; using System.Diagnostics; ...
  • 平时我们在编辑word文档的时候,经常会遇到将文档中的某一个文字或者是数字替换成别的内容,很多人想到的方法就是一个字一个字的找,之后进行更改,这样会很耽误我们的时间,如果你的文档内容过多的话难道你也会使用...
  • NPOI编辑WORD文档

    2019-07-08 16:44:57
    转载: 最近需要写数据库的...我使用的是2.1.3版本,并做了一个WORD模板,直接在该文档替换编辑。 首先是打开模板文件,这里有个注意项是doc文件使用HWPFDocument进行打开,而docx文件需要使用XWPFDocument来打...
  • 一、空行替换  在日常工作中,我们经常从网上下载一些文字材料,往往因...但有一些用上面的方法却是屡试屡败,每次都是提示:“Word已完成对文档的搜索并已完成0处替换”。为什么空行就在眼前,Word却不认识它呢? 
  • Word-VBA:替换文字

    2020-09-09 12:11:13
    '工具-引用 ...WordDoc.Range.Find.Execute findtext:="被替换掉啥", ReplaceWith:="替换成啥", MatchWildcards:=True, Forward:=True, Replace:=wdReplaceAll, Wrap:=wdFindContinue 如果不引用,.
  • 最近项目需要操作word文档,需求是批量替换word文档内容。 网络上各种搜索推荐POI什么的,因为以前用过POI觉得还是比较麻烦,最后选择了 Spire.Doc,真的超简单。 Spire.Doc简介 Spire.Doc for Java [1] 是一款E-...
  • 单面打印的简单报告 设置纸张和文档网格 可以设置每行多少个字和有多少行,在“文档网格”设置选项里。 设置样式 标题1到标题9可以选择,...2)用替换功能,高级,格式替换。 格式刷双击可以连续使用多次。 查看和...
  • python替换word中的文字内容

    万次阅读 2018-07-05 14:32:46
    摘要:这篇文章介绍了如何使用python【3.6版本】把pdf文件转换为word文档替换word文档中的文字内容,这里替换的规则是中英转换或者其它自定义规则pdf转换为wordpdf文件由于很难编辑,因而想要通过编程修改内容有些...
  • Word的人中,像我一样没有花过太多心思研究过、菜鸟级别的,估计大多都遇到过这样一个郁闷的问题 :在输入光标位置插入字符时,Word会根据插入字符的数目删除掉几个光标后面的字符。 这个情况以前一直被我当成Word...
  • 平时我们在编辑word文档的时候,经常会遇到将文档中的某一个文字或者是数字替换成别的内容,很多人想到的方法就是一个字一个字的找,之后进行更改,这样会很耽误我们的时间,如果你的文档内容过多的话难道你也会使用...
  • 强大的:Word文档替换(空行替换、空格替换、软回车替换成硬回车) 2012-02-16 16:06 85人阅读 评论(0) 收藏 举报 在日常工作中,我们经常从网上下载一些文字材料,往往因空行多使得页数居高不下,或者...
  • 一、空行替换在日常工作中,我们经常从网上下载一些...但有一些用上面的方法却是屡试屡败,每次都是提示:“Word已完成对文档的搜索并已完成0处替换”。为什么空行就在眼前,Word却不认识它呢?在用替换的办法删除...
  • Word文档编辑心得

    千次阅读 2013-08-26 12:57:08
    2 关于行距:右击选择的文字->段落 缩进与间距选项卡->间距先的 行距下 选默认值 然后设置具体的行距 3 关于检查的用于取消红色下划波浪线 审阅->拼写与检查语法->全部忽略(可以按alt+g) 4 格式刷 开始->格式刷...
  • 在jsp页面中嵌入word文档编辑器(CKEditor) 二、下载CKEditor编辑器 下载链接:https://ckeditor.com/ckeditor-4/download/ 三、下载后将文件导入WEB项目中: 四、引用CKEditor.js <script src="../ckeditor/...
  • 用phpword处理docx模板时候始终发生神奇的BUG,就是复制原版例子里的${Value1}进自己的模板然后替换是没问题的,但是只要一改动这个变量文字,PHP做相应替换就失效了。 用了下残废百度无果,一怒翻起google,准确...
  • 查找与替换功能是Word软件中比较常用的编辑处理方法,我们不但可以用它来替换文字,还可以替换特殊字符,比如去除文档中不需要的多余符号等。其实格式类元素也是Word查找与替换功能中不可或缺的重要因子,如果能方便...
  • 我们经常会遇到在项目中,需要将一段内容输出到word、 比如通过在你的项目中放一个富文本编辑器,通过用户的输入提交后,将它做一些处理之后这个内容生成一个word文档,然后提供用户下载使用,或者用户上传一个word...
  • 群里(Word学习交流群:180627193)一位朋友问到,如何一次性批量替换多个word文档中的同一内容。其实,实现多个Word文档的字符进行批量替换的方法有多种。(www.itblw.com)  第一种方法,可以利用第三方软件:...
  • 那我们能不能实现用Java语言在线打开word文档的同时,将指定内容通过程序查找替换成我们想要的内容呢?这是可以的。 但是这需要开发者具备将activex控件集成到Java环境的能力。对于大部分Java开发工程师来说,仅仅...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,465
精华内容 7,386
关键字:

word文档编辑文字替换