乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > Java 利用<em>poi</em> 可以直接读取word中的表格保持样式生...-poi 修

Java 利用<em>poi</em> 可以直接读取word中的表格保持样式生...-poi 修

作者:乔山办公网日期:

返回目录:word文档


我测了Free Spire.Doc for Java可以修改的,你获取页脚里面的段落然后修改文本内容就可以了,参考代码:

import com.spire.doc.*;

public class ModifyHeaderFooter {
public static void main(String[]args){
//加载测试文档
Document doc = new Document();
doc.loadFromFile("sample.docx");

//获取页脚中的指定段落,并修改
Section sec = doc.getSections().get(0);
HeaderFooter footer = sec.getHeadersFooters().getFooter();
footer.getParagraphs().get(1).setText("修改页脚");

//保存
doc.saveToFile("modified.docx",FileFormat.Docx_2013);
doc.dispose();
}
}

修改效果前后对比:



1.读取word 2003及word 2007需要的jar包
  读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,7a686964616fe59b9ee7ad94331是要导入的 jar 包比较的多,有如下 7 个之多:
1. openxml4j-bin-beta.jar
2. poi-3.5-beta6-20090622.jar
3. poi-ooxml-3.5-beta6-20090622.jar
4 .dom4j-1.6.1.jar
5. geronimo-stax-api_1.0_spec-1.0.jar
6. ooxml-schemas-1.0.jar
7. xmlbeans-2.3.0.jar
其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目录下可以找到)。
2.换行符号
  硬换行:文件中换行,如果是键盘中使用了"enter"的换行。
  软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。
  对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。
3.读取的注意事项
  值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。
4.读取word文本内容代码

1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.io.InputStream;
4
5 import org.apache.poi.POIXMLDocument;
6 import org.apache.poi.POIXMLTextExtractor;
7 import org.apache.poi.hwpf.extractor.WordExtractor;
8 import org.apache.poi.openxml4j.opc.OPCPackage;
9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
10
11 public class Test {
12 public static void main(String[] args) {
13 try {
14 InputStream is = new FileInputStream(new File("2003.doc"));
15 WordExtractor ex = new WordExtractor(is);
16 String text2003 = ex.getText();
17 System.out.println(text2003);
18
19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");
20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
21 String text2007 = extractor.getText();
22 System.out.println(text2007);
23
24 } catch (Exception e) {
25 e.printStackTrace();
26 }
27 }
28 }
所谓标题1就是一种样式,右键选修改时可以看到它的定义为
字体: 二号, 加粗, 字距调整二号, 行距: 多倍行距 2.41 字行, 段落间距段前: 17 磅, 段后: 16.5 磅, 与下段同页, 段中不分页, 1 级, 样式: 链接, 快速样式, 优先级: 10, 基于: 正文, 后续样式: 正文
xssf没预定义样式,所以你可根据标题1的定义自己一个个设置属性值即可

把word内容用poi读出来,成字符串,把字符串在内存中修改,修改字符串可用各种方法,正则是比较好的了

相关阅读

  • 如何用纯java代码实现<em>word</em>转<em>pdf</em&g

  • 乔山办公网word文档
  • 如果只是文字的话,直接读出来,然后用07的存回去,poi能实现。但是有目录什么的就麻烦了,03的读出来目录是一行代码,就容易出问题我用的poi正好在纠结,最后没办法,用按键精灵
  • <em>java</em> <em>poi</em> XWPFTable

  • 乔山办公网word文档
  • 首先需加载你的SQLCUTE是不能错(指明点就是数据库的连接)创建的方法查询所有的数据:publicListAllObject();得到所有的数据,我们就可以开始了(最好是写在你的Service中)创建表格输出的方
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网