POI实现读写内容到word中
读取word中的内容
/**
* 利用POI实现从word中读取内容
*/
============================================
将读取的内容写入另外一个文件中
package com.cy;
/**
* WordReader类中readDoc的作用为从word中将数据读出
*/
import com.cy.WordWriter;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class WordWriter {
public static boolean writeDoc(String path, String content) {
boolean w = false;
try {
// byte b[] = content.getBytes("ISO-8859-1");
byte b[] = content.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(b);
POIFSFileSystem fs = new POIFSFileSystem();
DirectoryEntry directory = fs.getRoot();
DocumentEntry de = directory.createDocument("WordDocument", bais);
FileOutputStream ostream = new FileOutputStream(path);
fs.writeFilesystem(ostream);
bais.close();
ostream.close();
} catch (IOException e) {
e.printStackTrace();
}
return w;
}
public static void main(String[] args) throws Exception{
String wr=WordReader.readDoc("D://test.doc");
boolean b = writeDoc("D://result.doc",wr);
}
}
//目前该程序只能实现对简单的文字的操作,无法实现对表格样式的操作,继续改进,请关注!!
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.hwpf.extractor.WordExtractor;
public class WordReader {
public static String readDoc(String doc) throws Exception {
// 创建输入流读取DOC文件
FileInputStream in = new FileInputStream(new File(doc));
WordExtractor extractor = null;
String text = null;
// 创建WordExtractor
extractor = new WordExtractor(in);
// 对DOC文件进行提取
text = extractor.getText();
return text;
}
public static void main(String[] args) {
try{
String text = WordReader.readDoc("d://test.doc");
System.out.println(text);
}catch(Exception e){
e.printStackTrace();
}
}
}
摘自:http://blog.csdn.net/sunrise353/article/details/1762324
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
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;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ExportDocImpl {
public void testWord(){
try{
FileInputStream in = new FileInputStream("D:\\sinye.doc");//载入文档
POIFSFileSystem pfs = new POIFSFileSystem(in);
HWPFDocument hwpf = new HWPFDocument(pfs);
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();
System.out.println(s);
} //end for
} //end for
} //end for
} //end while
}catch(Exception e){
e.printStackTrace();
}
}//end method
public void testWord1(){
try {
//word 2003: 图片不会被读取
InputStream is = new FileInputStream(new File("D:\\sinye.doc"));
WordExtractor ex = new WordExtractor(is);
String text2003 = ex.getText();
System.out.println(text2003);
//word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后
OPCPackage opcPackage = POIXMLDocument.openPackage("D:\\sinye.doc");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException;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;import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.POIXMLDocument; import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.poifs.filesystem.POIFSFileSystem;public class ExportDocImpl {public void testWord(){try{FileInputStream in = new FileInputStream("D:\\sinye.doc");//载入文档POIFSFileSystem pfs = new POIFSFileSystem(in); HWPFDocument hwpf = new HWPFDocument(pfs); 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(); System.out.println(s);} //end for } //end for} //end for} //end while}catch(Exception e){e.printStackTrace();}}//end methodpublic void testWord1(){try { //word 2003: 图片不会被读取 InputStream is = new FileInputStream(new File("D:\\sinye.doc")); WordExtractor ex = new WordExtractor(is); String text2003 = ex.getText(); System.out.println(text2003); //word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后 OPCPackage opcPackage = POIXMLDocument.openPackage("D:\\sinye.doc"); POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage); String text2007 = extractor.getText(); System.out.println(text2007); } catch (Exception e) { e.printStackTrace(); } } }
转载于:https://www.cnblogs.com/wh-king/articles/2490432.html
POI实现读写内容到word中相关推荐
- java poi 读取 word图片_Java Poi 根据文字内容 插入 word 图片-Go语言中文社区
需求描述 如下图,我需要在word里根据一个图片的名字,将名字替换成该图片(公章) 思路: 用POI遍历每一个表格里的每一行的每一个单元格,如果遇到我自己定义的"&章",则 ...
- 在word中如何设置翻译功能?原来word还能翻译多种语言!
在工作中我们经常要接触到word文件,当我们需要翻译word文件时,却不知道如何下手了!其实在word中是有翻译功能的,并且可以翻译多种语言.有需要的小伙伴可以跟着小编学习一下的啊! No.1在哪里设 ...
- 怎样在word中批量替换文字?Word替换文字这一招你会吗?
平时我们在编辑word文档的时候,经常会遇到将文档中的某一个文字或者是数字替换成别的内容,很多人想到的方法就是一个字一个字的找,之后进行更改,这样会很耽误我们的时间,如果你的文档内容过多的话难道你也会 ...
- Word中如何删除目录页的页码
---恢复内容开始--- word中插入目录之后想要为每页添加页码,如果我们直接添加页码的话会出现目录是第一页,正文部分的页码是从2开始而不是1,用下面的方法就可以解决 首先让文档中的所有符号可见 第 ...
- word中插入空白页!
如题.用VBA实现在已有内容的word中插入空白页,插入的这一页的页眉与页脚不同于其它页,新插入一页的后面页的页码和新插入一页前一页的页码连接,请问如何实现啊!~~谢谢了!!~ 更正一下 应该是插入分 ...
- java使用poi读写word中的图片(二)
文章目录 准备工作 简单读取 复杂读取 查看Word的XML 特别说明:Word中的Svg图片 第一种写入图片到Word中的方式 第二种写入图片到Word中的方式 最后 准备工作 这里就不在复述了,可 ...
- java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换、更新内置Excel数据、更新插入的文本框内容、合并表格单元格;
本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展.感谢被参考的妹子.另外该博客 ...
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑...
将Doc或者Docx文档处理成html的代码逻辑 下面是maven的配置代码: <!-- 文档处理所需的jar的依赖 --><dependency><groupId> ...
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑
将Doc或者Docx文档处理成html的代码逻辑 下面是maven的配置代码: <!-- 文档处理所需的jar的依赖 --><dependency><groupId> ...
最新文章
- pap和chap交叉认证
- java database connect
- 删除安装的mysql数据库文件_安装/删除MySQL数据库
- 【cocos2d-x从c++到js】06:Google的继承写法解析
- PHP buffer的机制
- oracle快速排序法,经典算法系列之快速排序算法
- 操作系统——实验叁——主存空间的分配与回收
- 向后转动作要领_跆拳道腿法之转身侧踢动作要领
- Git常用命令——远程操作
- 【python】字典与集合的练习题
- 将 Azure VM 迁移到 Azure 中的托管磁盘
- Quartz时间配置(周期任务)
- Altium Designer 元件封装库与3D模型大全
- mac系统的UTF-8 BOM编码
- postgresql 客户端 uri 设置时区
- 【Hyperledger Fabric】学习笔记2——超级账本介绍
- 改写[转载]关闭危险端口的批处理文件FOR WIN7
- 企业微信的IM架构设计揭秘:消息模型、万人群、已读回执、消息撤回等
- windows10安装蓝牙驱动方法步骤
- 干掉Microsoft Virtual WiFi Miniport Adapter