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();

}

}


zhuanzhudeyipi
65 声望2 粉丝