共计 3074 个字符,预计需要花费 8 分钟才能阅读完成。
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) {
// 加载文档 1
Document doc1 = new Document();
doc1.loadFromFile(“test.docx”);
// 加载文档 2
Document 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);
// 保存文档 1
doc1.saveToFile(“ReplaceTextWithDocument.docx”,FileFormat.Docx_2013);
doc1.dispose();
}
}
【示例 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 文档
外汇经纪商对比 http://www.fx61.com/brokerlist
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();
}
}