
下方是读取 word 文件的 Java 代码,值得注意的是: POI 在读取 word 文件的时候不会读取 word 文件中的信息, 还有就是对于 2007 版的 word(docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。
通过apache 的poi方法完成excel的读写,cell数据读写等常规 *** 作,支持xls xlsx表格格式。
需要添加依赖的jar资源,具体如下:
xls格式的excel 表格需要通过HSSFWorkbook加载,而xlsx格式的excel表格需要XSSFWorkbook表格加载,获取WorkBook对象实例,这个实例对象就是表格文件的对象,具体为:
上面不同后缀的文件 *** 作方法有所区分,分为两类,xls表格对应的HSSFWorkbook类方法,xlsx对应的XSSFWorkbook类方法, *** 作过程基本类似,下面以HSSFWorkbook为例进行讲述。( xls,xlsx只要获取到wb后,如果没有特别的处理 *** 作,后续采用这两种方法的任一种都是可以进行表格数据处理,可以不做区分 )
补充:获取wb后,wb提供的方法有很多,包括创建表格createSheet,获取表格名称getSheetName等等,具体根据自己需求使用。
正常来说,每个Excel文件都会有多个sheet表格,比如Sheet1,Sheet2,Sheet3等等,我们通过第一步获取的wb对象,就可以轻松的拿到Excel表格的实例对象,方法两种,可以根据Excel表格的index序号获取,也可以通过Excel表格的名字获取,具体如下:
补充:sheet对象同样提供了用于 *** 作本表格的很多方法,包括行列读写,新填行列等等所有表格相关的 *** 作内容。
上一步获取了sheet对象,我们就可以获取具体的行列数据了。
通过上述cell对象我们就可以获得具体的内容了,包括内容格式等等详细信息。
单元格读取方式根据其类型有所不同,具体如下所示。
如果想给新添加的Cell设置个字体格式及颜色啥的,也是可以的,比如把刚新建的Cell字体设为红色,具体如下:
上面步骤,只是对于表格数据的处理,但实际上并没有保存到文件,如果此时就结束,那表格文件里的数据其实是没有更改,一定要记得最后要保存到表格哦~,具体如下:
到此,基本的表格读写处理已经基本完成了,Poi的方法库其实有很多 *** 作,这里只是简单介绍的基本的读写,如果你想修改表格字体等等,都是可以实现的哦,赶紧动手试试吧。
本程序Gitee源码地址: >
如果只是文字的话,直接读出来,然后用07的存回去,poi能实现。但是有目录什么的就麻烦了,03的读出来目录是一行代码,就容易出问题
我用的poi正好在纠结,最后没办法,用按键精灵一个个转的。有个word文档批处理貌似能做到,但是要收费。
下面的是我读取word文字的代码
03读取:
InputStream is = new FileInputStream(docfile);
WordExtractor ex = new WordExtractor(is);
text = exgetText();
Systemoutprintln(text);
07读取:
OPCPackage opcPackage = POIXMLDocumentopenPackage(docxfilegetAbsolutePath());
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
text = extractorgetText();
Systemoutprintln(text);
最后:doc不一定是03的,也可能是07的
The supplied data appears to be a raw XML file Formats such as Office 2003 XML are not supported
换对象来处理
~~~~~~~~~~~~~~~~~~~~~~~~~~
/仅支持2003
@param file
@throws IOException
/
private static void readExcel2003(File file) throws IOException {
InputStream is = new FileInputStream(file);
Workbook rwb = new HSSFWorkbook(is);
Sheet sheet = rwbgetSheetAt(0);
Row row = sheetgetRow(3);
Cell cell = rowgetCell(0);
Systemoutprintln(cellgetStringCellValue());
}
/
仅支持2007
@param file
@throws IOException
/
private static void readExcel2007(File file) throws IOException {
InputStream is = new FileInputStream(file);
Workbook rwb = new XSSFWorkbook(is);
Sheet sheet = rwbgetSheetAt(0);
Row row = sheetgetRow(3);
Cell cell = rowgetCell(0);
Systemoutprintln(cellgetStringCellValue());
}
/
支持2003/2007
@param file
@throws Exception
/
private static void readExcel(File file) throws Exception {
InputStream is = new FileInputStream(file);
Workbook rwb = WorkbookFactorycreate(is);
Sheet sheet = rwbgetSheetAt(0);
Row row = sheetgetRow(3);
Cell cell = rowgetCell(0);
Systemoutprintln(cellgetStringCellValue());
}
以上就是关于POI解析word2007相关的一点小问题求助全部的内容,包括:POI解析word2007相关的一点小问题求助、基于Apache POI的Excel表格处理、如何使用POI转换.DOC / DOCX为PDF在Java等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)