org.apache.poi word org.apache.poi
摘要:怎么使用JAVA,POI读写word文档 如何使用JAVA、POI读写word文档??能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式...
发布日期:2020-09-28怎么使用JAVA,POI读写word文档
如何使用JAVA、POI读写word文档??能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式不变。
最好能给个例子?网上多是很早以前的那个解决方法如下:,只能读文本内容,且新生成的word文件打开时总是要提示选择编码,不太好用,希望能有新的解决方案??!!poi操作word1.1 添加poi支持:包下载地址1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。
但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。
下载地址为;下载extractors-0.4_zip这个文件2、提取Doc文件内容 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();// 对DOC文件进行提取 text = extractor.extractText(in); return text; } public static void main(String[] args) { try{ String text = WordReader.readDoc("c:/test.doc"); System.out.println(text); }catch(Exception e){ e.printStackTrace(); } }3、写入Doc文档 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);
去 http://poi.apache.org/ 下载poi 怎样选择版本
Java可以使用这个开源框架,对word进行读取合并等操作,Apache POI是一个开源的利用Java读写Excel、WORD等微软OLE2组件文档的项目。
最新的3.5版本有很多改进,加入了对采用OOXML格式的Office 2007支持,如xlsx、docx、pptx文档。
示例如下:import org.apache.poi.POITextExtractor; import org.apache.poi.hwpf.extractor.WordExtractor; //得到.doc文件提取器 org.apache.poi.hwpf.extractor.WordExtractor doc = new WordExtractor(new FileInputStream(filePath)); //提取.doc正文文本 String text = doc.getText(); //提取.doc批注 String[] comments = doc. getCommentsText(); 2007 import org.apache.poi.POITextExtractor; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFComment; import org.apache.poi.xwpf.usermodel.XWPFDocument; //得到.docx文件提取器 org.apache.poi.xwpf.extractor.XWPFWordExtractor docx = new XWPFWordExtractor(POIXMLDocument.openPackage(filePath)); //提取.docx正文文本 String text = docx.getText(); //提取.docx批注 org.apache.poi.xwpf.usermodel.XWPFComment[] comments = docx.getDocument()).getComments(); for(XWPFComment comment:comments){ comment.getId();//提取批注Id comment.getAuthor();//提取批注修改人 comment.getText();//提取批注内容 }
利用poi操作word文档时,出现多行多列 如何处理?求大神
mport org.apache.poi.POITextExtractor;import org.apache.poi.hwpf.extractor.WordExtractor;org.apache.poi.hwpf.extractor.WordExtractor doc = new WordExtractor(new FileInputStream(filePath));String text = doc.getText();
org.apache.poi 什么版本支持xlxs
1. 读取word 2003及word 2007需要的jar包2. 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:3. 1. openxml4j-bin-beta.jar4. 2. poi-3.5-beta6-.jar5. 3. poi-ooxml-3.5-beta6-.jar6. 4 .dom4j-1.6.1.jar7. 5. geronimo-stax-api_1.0_spec-1.0.jar8. 6. ooxml-schemas-1.0.jar9. 7. xmlbeans-2.3.0.jar10. 其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目录下可以找到)。
11. 2.换行符号12. 硬换行:文件中换行,如果是键盘中使用了"enter"的换行。
13. 软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。
14. 对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。
15. 3.读取的注意事项16. 值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。
17. 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 }
Apache的POI,可以利用POI(java)生成word中柱状图、饼图之类的图表...
主要用到org.apache.poi 来操作word,而读取数据库图片 通过读取数据库Blob 字段的列然后通过 public static BufferedImage imgChangeBuffer(Blob blob) 方法钩子一个 BufferedImage 然后把这个 BufferedImage 设置到word中,希望能帮上忙。
org.apache.poi.ss.usermodel.cell 在哪个包
时读取(写入)xls和xlsx两种类型的Excel文件。
但poi对excel有一个很好的抽象(ss包下的Workbook、Sheet、Cell等类),可以一定程度上忽略xls/,但如果需要对各自有理强的支持,还是建议使用相应的API;xlsx的处理细节。
Apache POI 各个包功能描述:HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能,针对其通用部分进行处理...
org.apache.poi.hslf报错,是因为缺少什么包
;public static void main(String argv[]){try{//。
假定在D盘JTest目录下有一个文件名为test1.hssf.usermodel.HSSFRow;import org; 定义单元格为字符串类型cell.setCellType(HSSFCell.apache.poi.hssf; 其语句为。
HDGF - 提供读写Microsoft Visio格式档案的功能.createCell((short) 0).HSSFCell;import java.io;import java.usermodel.poi;);效益指标"效益指标"public static void main(String argv[]){try{/.hssf.usermodel.HSSFWorkbook.HSSFRow;import org.apache;)。
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能; 如要新建一名为"//:HSSF - 提供读写Microsoft Excel格式档案的功能;HSSFSheet sheet = workbook.createSheet();/.apache.poi.hssf.HSSFWorkbook;import org;D.xls的Excel文件。
HWPF - 提供读写Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能;).io.FileInputStream;public class ReadXL {public static String fileToBeRead=" 创建对工作表的引用。
/.usermodel.apache.poi.hssf;/ 操作结束,关闭文件fOut.println("/ 创建对Excel工作簿文件的引用HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead)):import org.apache.hssf.usermodel.HSSFSheet;import org;//的工作表,其语句为.poi;}}}读取Excel文档中的数据示例2将演示如何读取Excel文档中的数据;test.xls"fOut.flush();/ 也可用getSheetAt(int index)按索引引用,/.HSSFSheet;/ 把相应的Excel 工作簿存盘workbook.createSheet(".FileOutputStream;public class CreateXL {public static String outputFile=".poi.CELL_TYPE_STRING).close().usermodel.out; 在单元格中输入一些内容cell.setCellValue(" HSSFSheet sheet = workbook.usermodel:\\.poi:\\/ 在索引0的位置创建行(最顶端的行)HSSFRow row = sheet.createRow((short)0);// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")HSSFSheet sheet = workbook.getSheet(".hssf.usermodel.HSSFCell,其名为缺省值// 创建新的Excel 工作簿HSSFWorkbook workbook = new HSSFWorkbook();// 新建一输出文件流FileOutputStream fOut = new FileOutputStream(outputFile);/import org.apache;}catch(Exception e) {System;System.out.println("文件生成;//:HSSFSheet sheet = workbook.getSheetAt(0);// 读取左上端单元HSSFRow row = sheet.getRow(0);HSSFCell cell = row.getCell((short)0);// 输出单元内容,cell.getStringCellValue()就是取所在单元的值System.out.println("左上端单元是: " + cell.getStringCellValue());}catch(Exception e) {System.out.println("已运行xlRead() : " + e );}}}设置单元格格式在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。
在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:1、创建字体,设置其为红色、粗体:HSSFFont font = workbook.createFont();font.setColor(HSSFFont.COLOR_RED);font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);2、创建格式HSSFCellStyle cellStyle= workbook.createCellStyle();cellStyle.setFont(font);3、应用格式HSSFCell cell = row.createCell((short) 0);cell.setCellStyle(cellStyle);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue("标题 ");处理WORD文档import java.io.*;import org.textmining.text.extraction.WordExtractor;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFCell;public class TestPoi {public TestPoi() {}public static void main(String args[]) throws Exception{FileInputStream in = new FileInputStream ("D:\\a.doc");WordExtractor extractor = new WordExtractor();String str = extractor.extractText(in);//System.out.println("the result length is"+str.length());System.out.println(str);}};/在索引0的位置创建单元格(左上端)HSSFCell cell = row;import org.apache;/ 在Excel工作簿中建一工作表.xls".apache.poi.hssf;//已运行 xlCreate() ..;增加值");/.write(fOut),第一张工作表的缺省索引是0,//://: " + e )。
示例2程序如下;/ 在Excel文档中;test1;Sheet1"Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。
结构;D。
创建Excel 文档示例1将演示如何利用Jakarta POI API 创建Excel 文档。
示例1程序如下:import org."