700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java poi word 表格_java 使用POI 读写word 表格

java poi word 表格_java 使用POI 读写word 表格

时间:2019-04-27 23:29:32

相关推荐

java poi word 表格_java 使用POI 读写word 表格

导读热词

下面是编程之家 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

import org.apache.poi.hwpf.HWPFDocument;

import org.apache.poi.hwpf.usermodel.Paragraph;

import org.apache.poi.hwpf.usermodel.Range;

import org.apache.poi.hwpf.usermodel.Table;

import org.apache.poi.hwpf.usermodel.TableCell;

import org.apache.poi.hwpf.usermodel.TableIterator;

import org.apache.poi.hwpf.usermodel.TableRow;

public class POIWordUtil {

public static void main(String[] args) throws Exception {

Map replaces = new HashMap();

replaces.put("${username}",Text.str("rongzhi_li"));

replaces.put("${password}",Text.str("1123456"));

replaces.put("${author}",Text.str("lee"));

poiWordTableReplace("t1.doc","t2.doc",replaces);

}

public static void poiWordTableReplace(String sourceFile,String newFile,Map replaces) throws Exception {

FileInputStream in = new FileInputStream(sourceFile);

HWPFDocument hwpf = new HWPFDocument(in);

Range range = hwpf.getRange();// 得到文档的读取范围

TableIterator it = new TableIterator(range);

// 迭代文档中的表格

while (it.hasNext()) {

Table tb = (Table) it.next();

// 迭代行,默认从0开始

for (int i = 0; i < tb.numRows(); i++) {

TableRow tr = tb.getRow(i);

// 迭代列,默认从0开始

for (int j = 0; j < tr.numCells(); j++) {

TableCell td = tr.getCell(j);// 取得单元格

// 取得单元格的内容

for (int k = 0; k < td.numParagraphs(); k++) {

Paragraph para = td.getParagraph(k);

String s = para.text();

final String old = s;

for (String key : replaces.keySet()) {

if (s.contains(key)) {

s = s.replace(key,replaces.get(key).getText());

}

}

if (!old.equals(s)) {// 有变化

para.replaceText(old,s);

s = para.text();

System.out.println("old:" + old + "->" + "s:" + s);

}

} // end for

} // end for

} // end for

} // end while

FileOutputStream out = new FileOutputStream(newFile);

hwpf.write(out);

out.flush();

out.close();

}

}

public abstract class Text {

public abstract String getText();

public static Text str(final String string) {

return new Text() {

@Override

public String getText() {

return string;

}

};

}

}

以上是编程之家()为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。