一、前言
在操作Word文档过程中经常会遇到一些内容需要多处出现的情况。如果使用查找+替换的方法来实现更新,虽然可以满足基本需要,但不够便捷,不够准确。此时可通过引用“变量”的方法来实现一处修改,多处自动同步更新的效果。本文就将使用Java程序来添加、计数、检索和删除Word文档变量。
二、环境构建
使用工具:Free Spire.Doc for Java (免费版)
Jar包获取及导入:
方式一:通过官网下载获取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:\\Users\\Test1\\Desktop\\AddVariables.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:\\Users\\Test1\\Desktop\\AddVariables.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:\\Users\\Test1\\Desktop\\AddVariables.docx");
//删除名为“A1”的指定文档变量
document.getVariables().remove("A1");
//更新域
document.isUpdateFields (true);
//保存文档
document.saveToFile("output/RemoveVariables.docx", FileFormat.Docx_2013);
}
}
网友评论