一、前言
在操作Word文档过程中经常会遇到一些内容需要多处出现的情况。如果使用查找+替换的方法来实现更新,虽然可以满足基本需要,但不够便捷,不够准确。此时可通过引用“变量”的方法来实现一处修改,多处自动同步更新的效果。本文就将使用Java程序来添加、计数、检索和删除Word文档变量。
二、环境构建
使用工具:Free Spire.Doc for Java (免费版)
Jar包获取及导入:
方式一:通过E-iceblue中文官网下载获取Free Spire.Doc for Java,解压后将lib文件夹下的Spire.Doc.jar手动导入Java程序。
方式二:通过maven仓库安装产品及导入相关依赖包。
三、代码演示
示例1 添加文档变量
import com.spire.doc.Document;import com.spire.doc.FieldType;import com.spire.doc.FileFormat;import com.spire.doc.Section;import com.spire.doc.documents.Paragraph;public class AddVariables { public static void main(String[] args) { //创建Document实例 Document document = new Document(); //添加节 Section section = document.addSection(); //添加段落 Paragraph paragraph = section.addParagraph(); //添加DocVariable域 paragraph.appendField("A1", FieldType.Field_Doc_Variable); //添加文档变量到DocVariable域 document.getVariables().add("A1", "19"); //更新域 document.isUpdateFields(true); //保存文档 document.saveToFile("output/AddVariables.docx", FileFormat.Docx_2013); }}
示例2 计算文档变量的个数
import com.spire.doc.Document;public class Count { public static void main(String[] args) { //加载Word文档 Document document = new Document(); document.loadFromFile("C:甥敳獲Test1DesktopAddVariables.docx"); //获取文档变量的个数 int number = document.getVariables().getCount(); StringBuilder content = new StringBuilder(); content.append("文档变量的个数为: " + number); System.out.println(content.toString()); }}
示例3 检索文档变量的名称和值
import com.spire.doc.Document;public class GetValueAndName { public static void main(String[] args) { //加载Word文档 Document document = new Document(); document.loadFromFile("C:甥敳獲Test1DesktopAddVariables.docx"); //使用索引检索变量的名称 String s1 = document.getVariables().getNameByIndex(0); //使用索引检索变量的值 String s2 = document.getVariables().getValueByIndex(0); //使用变量名称检索变量的值 String s3 = document.getVariables().get("A1"); System.out.println("索引为0的变量的名称为: " + s1); System.out.println("索引为0的变量的值为: " + s2); System.out.println("名称为"A1"的变量的值为: " + s3); }}
示例4 删除指定文档变量
import com.spire.doc.Document;import com.spire.doc.FileFormat;public class RemoveVariables { public static void main(String[] args) { //加载Word文档 Document document = new Document(); document.loadFromFile("C:甥敳獲Test1DesktopAddVariables.docx"); //删除名为“A1”的指定文档变量 document.getVariables().remove("A1"); //更新域 document.isUpdateFields (true); //保存文档 document.saveToFile("output/RemoveVariables.docx", FileFormat.Docx_2013); }}