JAVA调用POI实现WORD转HTML
- 格式:pdf
- 大小:83.93 KB
- 文档页数:4
JAVA读取WORD文档解决方案在Java中读取Word文档需要使用特定的Java库或API来解析和处理Word文档格式(.doc或.docx)。
在下面的解决方案中,我们将介绍两种流行的Java库,即Apache POI和JavaFX的XSSF。
1. Apache POI:Apache POI是一个流行的开源Java库,用于处理Microsoft Office 格式的文件,包括Word文档。
下面是使用Apache POI库读取Word文档的步骤:1.1 添加Apache POI依赖库到项目中。
在Maven项目中,可以在pom.xml文件中添加以下依赖项:```xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>```1.2 使用`XWPFDocument`类打开Word文档。
下面是一个示例代码:```javaFileInputStream fis = newFileInputStream("path/to/word/document.docx");XWPFDocument document = new XWPFDocument(fis);fis.close(;```1.3 使用`XWPFParagraph`类和`XWPFRun`类来遍历Word文档中的段落和文本。
POI转换worddoc⽂件为(html,xml,txt)在POI中还存在有针对于word doc⽂件进⾏格式转换的功能。
我们可以将word的内容转换为对应的Html⽂件,也可以把它转换为底层⽤来描述doc⽂档的xml⽂件,还可以把它转换为底层⽤来描述doc⽂档的xml格式的text⽂件。
这些格式转换都是通过AbstractWordConverter特定的⼦类来完成的。
1 转换为Html⽂件将doc⽂档转换为对应的Html⽂档是通过WordToHtmlConverter类进⾏的。
它会尽量的利⽤Html的⽅式来呈现原⽂档的样式。
⽰例代码:/*** Word转换为Html* @throws Exception*/@Testpublic void testWordToHtml() throws Exception {InputStream is = new FileInputStream("D:\\test.doc");HWPFDocument wordDocument = new HWPFDocument(is);WordToHtmlConverter converter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());//对HWPFDocument进⾏转换converter.processDocument(wordDocument);Writer writer = new FileWriter(new File("D:\\converter.html"));Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );//是否添加空格transformer.setOutputProperty( OutputKeys.INDENT, "yes" );transformer.setOutputProperty( OutputKeys.METHOD, "html" );transformer.transform(new DOMSource(converter.getDocument() ),new StreamResult( writer ) );}2 转换为Xml⽂件将doc⽂档转换为对应的Xml⽂件是通过WordToFoConverter类进⾏的。
java用poi实现对word读取和修改操作新增WordUtil类,将代码拷进去直接运行即可package com.cjhxfund.ats.fm.instr;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import org.apache.poi.POIXMLDocument;import ermodel.XWPFDocument;import ermodel.XWPFParagraph;import ermodel.XWPFRun;import ermodel.XWPFTable;import ermodel.XWPFTableCell;import ermodel.XWPFTableRow;public class WordUtil {public static void searchAndReplace(String srcPath, String destPath,Map<String, String> map) {try {XWPFDocument document = newXWPFDocument(POIXMLDocument.openPackage(srcPath));// 替换段落中的指定文字Iterator<XWPFParagraph> itPara =document.getParagraphsIterator();while (itPara.hasNext()) {XWPFParagraph paragraph = (XWPFParagraph) itPara.next();//String s = paragraph.getParagraphText();Set<String> set = map.keySet();Iterator<String> iterator = set.iterator();while (iterator.hasNext()) {String key = iterator.next();List<XWPFRun> runs=paragraph.getRuns();for (XWPFRun run : runs) {String text = run.getText(0);if(text != null){//String runText = run.toString();if(text.indexOf(key) != -1){text = text.replace(key, map.get(key));System.out.println("key=="+key+"~~~~runText=="+text);run.setText(text,0);}}}}}// 替换表格中的指定文字Iterator<XWPFTable> itTable =document.getTablesIterator();while (itTable.hasNext()) {XWPFTable table = (XWPFTable) itTable.next();int rcount = table.getNumberOfRows();for (int i = 0; i < rcount; i++) {XWPFTableRow row = table.getRow(i);List<XWPFTableCell> cells = row.getTableCells();for (XWPFTableCell cell : cells) {for(Entry<String, String> e : map.entrySet()) {if (cell.getText().equals(e.getKey())) { cell.removeParagraph(0);cell.setText(e.getValue());}}}}}FileOutputStream outStream = null;outStream = new FileOutputStream(destPath);document.write(outStream);outStream.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception {Map<String, String> map = new HashMap<String, String>();map.put("附件", "文件");map.put("结果", "结束");//map.put("金额", "数量");String srcPath = "D:\\10\\测试java读取【word】文档内容_V1.0.doc";String destPath = "D:\\10\\out.doc";searchAndReplace(srcPath, destPath, map);}}。
xwpfdocument doc转xwpfdocument是Apache POI库中的一个类,用于处理Microsoft Word文档(.docx)的读写操作。
在本篇文章中,我们将讨论如何使用xwpfdocument类将Word文档转换为其他格式。
1. 简介xwpfdocument是POI库中的核心类之一,它提供了一系列方法来读取、写入和修改Word文档。
这个类可以打开一个已存在的文档,也可以创建一个新的文档。
通过操作xwpfdocument对象,我们可以对文档的内容、样式和布局进行编辑。
2. 转换为PDF格式在许多情况下,我们希望将Word文档转换为PDF格式,以便在不同平台上进行共享和打印。
为了实现这个目标,我们可以使用Apache PDFBox库。
以下是一个示例代码,将一个.docx文档转换为.pdf格式。
```javaimport ermodel.XWPFDocument;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPage;import org.apache.pdfbox.pdmodel.PDPageContentStream;import org.apache.pdfbox.text.PDFTextStripper;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class WordToPDFConverter {public static void main(String[] args) {try {// 读取Word文档FileInputStream fis = new FileInputStream("input.docx");XWPFDocument document = new XWPFDocument(fis);// 创建PDF文档PDDocument pdfDoc = new PDDocument();PDPage page = new PDPage();pdfDoc.addPage(page);// 获取Word文档的内容String content = new XWPFWordExtractor(document).getText();// 将内容写入PDF文档PDPageContentStream contentStream = new PDPageContentStream(pdfDoc, page);contentStream.beginText();contentStream.setFont(PDType1Font.TIMES_ROMAN, 12); contentStream.newLineAtOffset(100, 700);contentStream.showText(content);contentStream.endText();contentStream.close();// 保存PDF文档pdfDoc.save(new FileOutputStream("output.pdf"));pdfDoc.close();// 关闭Word文档document.close();fis.close();System.out.println("Word文档已成功转换为PDF格式。
javaword⽂档转html⽂件⼀、简介 ⼀般word⽂件后缀有doc、docx两种。
docx是office word 2007以及以后版本⽂档的扩展名;doc是office word 2003⽂档保存的扩展名。
对于这两种格式的word转换成html需要使⽤不同的⽅法。
对于docx格式的⽂档使⽤xdocreport进⾏转换。
依赖如下:<dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.document</artifactId><version>1.0.5</version></dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId><version>1.0.5</version></dependency>对于docx格式的⽂档使⽤poi进⾏转换。
依赖如下:<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.12</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.12</version></dependency>⼆:⽰例 代码⽰例如下:1package com.test.word;23import java.io.File;4import java.io.FileInputStream;5import java.io.FileNotFoundException;6import java.io.FileOutputStream;7import java.io.IOException;8import java.io.InputStream;9import java.io.OutputStream;1011import javax.xml.parsers.DocumentBuilderFactory;12import javax.xml.parsers.ParserConfigurationException;13import javax.xml.transform.OutputKeys;14import javax.xml.transform.Transformer;15import javax.xml.transform.TransformerException;16import javax.xml.transform.TransformerFactory;17import javax.xml.transform.dom.DOMSource;18import javax.xml.transform.stream.StreamResult;1920import org.apache.poi.hwpf.HWPFDocument;21import org.apache.poi.hwpf.converter.PicturesManager;22import org.apache.poi.hwpf.converter.WordToHtmlConverter;23import ermodel.PictureType;24import org.apache.poi.xwpf.converter.core.FileImageExtractor;25import org.apache.poi.xwpf.converter.core.FileURIResolver;26import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;27import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;28import ermodel.XWPFDocument;29import org.junit.Test;30import org.w3c.dom.Document;3132/**33 * word 转换成html34*/35public class WordToHtml {3637/**38 * 2007版本word转换成html39 * @throws IOException40*/41 @Test42public void Word2007ToHtml() throws IOException {43 String filepath = "C:/test/";44 String fileName = "滕王阁序2007.docx";45 String htmlName = "滕王阁序2007.html";46final String file = filepath + fileName;47 File f = new File(file);48if (!f.exists()) {49 System.out.println("Sorry File does not Exists!");50 } else {51if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {5253// 1) 加载word⽂档⽣成 XWPFDocument对象54 InputStream in = new FileInputStream(f);55 XWPFDocument document = new XWPFDocument(in);5657// 2) 解析 XHTML配置 (这⾥设置IURIResolver来设置图⽚存放的⽬录)58 File imageFolderFile = new File(filepath);59 XHTMLOptions options = XHTMLOptions.create().URIResolver(new FileURIResolver(imageFolderFile));60 options.setExtractor(new FileImageExtractor(imageFolderFile));61 options.setIgnoreStylesIfUnused(false);62 options.setFragment(true);6364// 3) 将 XWPFDocument转换成XHTML65 OutputStream out = new FileOutputStream(new File(filepath + htmlName));66 XHTMLConverter.getInstance().convert(document, out, options);6768//也可以使⽤字符数组流获取解析的内容69// ByteArrayOutputStream baos = new ByteArrayOutputStream();70// XHTMLConverter.getInstance().convert(document, baos, options);71// String content = baos.toString();72// System.out.println(content);73// baos.close();74 } else {75 System.out.println("Enter only MS Office 2007+ files");76 }77 }78 }7980/**81 * /**82 * 2003版本word转换成html83 * @throws IOException84 * @throws TransformerException85 * @throws ParserConfigurationException86*/87 @Test88public void Word2003ToHtml() throws IOException, TransformerException, ParserConfigurationException {89 String filepath = "C:/test/";90final String imagepath = "C:/test/image/";91 String fileName = "滕王阁序2003.doc";92 String htmlName = "滕王阁序2003.html";93final String file = filepath + fileName;94 InputStream input = new FileInputStream(new File(file));95 HWPFDocument wordDocument = new HWPFDocument(input);96 WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()); 97//设置图⽚存放的位置98 wordToHtmlConverter.setPicturesManager(new PicturesManager() {99public String savePicture(byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches) {100 File imgPath = new File(imagepath);101if(!imgPath.exists()){//图⽚⽬录不存在则创建102 imgPath.mkdirs();103 }104 File file = new File(imagepath + suggestedName);105try {106 OutputStream os = new FileOutputStream(file);107 os.write(content);108 os.close();109 } catch (FileNotFoundException e) {110 e.printStackTrace();111 } catch (IOException e) {112 e.printStackTrace();113 }114return imagepath + suggestedName;115 }116 });117118//解析word⽂档119 wordToHtmlConverter.processDocument(wordDocument);120 Document htmlDocument = wordToHtmlConverter.getDocument();121122 File htmlFile = new File(filepath + htmlName);123 OutputStream outStream = new FileOutputStream(htmlFile);124125//也可以使⽤字符数组流获取解析的内容126// ByteArrayOutputStream baos = new ByteArrayOutputStream();127// OutputStream outStream = new BufferedOutputStream(baos);128129 DOMSource domSource = new DOMSource(htmlDocument);130 StreamResult streamResult = new StreamResult(outStream);131132 TransformerFactory factory = TransformerFactory.newInstance(); 133 Transformer serializer = factory.newTransformer();134 serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); 135 serializer.setOutputProperty(OutputKeys.INDENT, "yes");136 serializer.setOutputProperty(OutputKeys.METHOD, "html"); 137138 serializer.transform(domSource, streamResult);139140//也可以使⽤字符数组流获取解析的内容141// String content = baos.toString();142// System.out.println(content);143// baos.close();144 outStream.close();145 }146 } 运⾏⽣存⽂件结果如下:。
Java在线预览方案在现代Web应用程序中,我们经常需要对各种文档格式进行在线预览。
尤其是对于Java开发人员来说,如何实现Java在线预览方案是一个常见的问题。
本文将介绍一些常用的Java在线预览方案,以帮助开发人员选择适合自己项目的解决方案。
方案一:使用第三方工具库第一种方案是使用第三方开源工具库来实现Java在线预览。
这些工具库通常提供了丰富的API和工具,可以轻松地将各种文档格式转换为可预览的HTML或其他格式。
以下是一些常用的第三方工具库:Apache POIApache POI是一个Java类库,用于读取和写入Microsoft Office格式的文档。
它支持预览.doc、.docx、.xls、.xlsx等文件格式,并提供了用于将这些文件转换为HTML的API。
使用Apache POI,开发人员可以轻松地将Office文档转换为HTML,并在Web应用程序中进行在线预览。
PDFBoxPDFBox是一个用于处理PDF文件的Java库。
它可以读取和写入PDF文件,并提供了将PDF文档转换为图片或HTML的功能。
使用PDFBox,开发人员可以将PDF文件转换为HTML,并在Web应用程序中进行在线预览。
Apache TikaApache Tika是一个Java工具库,用于提取和分析文档中的元数据和内容。
它支持广泛的文档格式,包括Word文档、Excel文件、PDF文件等。
开发人员可以使用Apache Tika从不同的文档格式中提取内容,并将其转换为HTML进行在线预览。
方案二:使用在线预览服务另一种方案是使用在线预览服务来实现Java在线预览。
在线预览服务通常是基于云服务提供的,开发人员可以通过API将文档上传到服务中进行预览。
以下是一些常用的在线预览服务:Google Docs ViewerGoogle Docs Viewer是一个由Google提供的在线预览服务。
它支持多种文档格式,包括Word文档、Excel文件、PDF文件等。
java实现在线预览- -之poi实现word、excel、ppt转htmljava实现在线预览- -之poi实现word、excel、ppt转html简介java实现在线预览功能是一个大家在工作中也许会遇到的需求,如果公司有钱,直接使用付费的第三方软件或者云在线预览服务就可以了,例如永中office、office web365(/)他们都有云在线预览服务,就是要钱0.0如果想要免费的,可以用openoffice,还需要借助其他的工具(例如swfTools、FlexPaper等)才行,可参考这篇文章/z69183787/article/details/17468039,写的挺细的,实现原理就是:1.通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件;2.通过swfTools将pdf文件转换成swf格式的文件;3.通过FlexPaper文档组件在页面上进行展示。
当然如果装了Adobe Reader XI,那把pdf直接拖到浏览器页面就可以直接打开预览,这样就不需要步骤2、3了,前提就是客户装了Adobe Reader XI这个pdf阅读器。
我这里介绍通过poi实现word、excel、ppt转html,这样就可以放在页面上了。
word转htmlpackage wordToHtml;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.util.List;import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import mons.io.FileUtils;import org.apache.poi.hwpf.HWPFDocument;import org.apache.poi.hwpf.converter.PicturesManager; importorg.apache.poi.hwpf.converter.WordToHtmlConverter; import ermodel.Picture;import ermodel.PictureType; import org.w3c.dom.Document;public class PoiWordToHtml {public static void main(String[] args) throws Throwable { final String path = "D:\\poi-test\\wordToHtml\\";final String file = "人员选择系分.doc";InputStream input = new FileInputStream(path + file); HWPFDocument wordDocument = new HWPFDocument(input);WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuil der().newDocument());wordToHtmlConverter.setPicturesManager(new PicturesManager() {public String savePicture(byte[] content, PictureType pictureType,String suggestedName, float widthInches, float heightInches) {return suggestedName;}});wordToHtmlConverter.processDocument(wordDocument); List pics =wordDocument.getPicturesTable().getAllPictures();if (pics != null) {for (int i = 0; i < pics.size(); i++) {Picture pic = (Picture) pics.get(i);try {pic.writeImageContent(new FileOutputStream(path+ pic.suggestFullFileName()));} catch (FileNotFoundException e) {e.printStackTrace();}}}Document htmlDocument = wordToHtmlConverter.getDocument(); ByteArrayOutputStream outStream = new ByteArrayOutputStream();DOMSource domSource = newDOMSource(htmlDocument);StreamResult streamResult = newStreamResult(outStream);TransformerFactory tf =TransformerFactory.newInstance();Transformer serializer = tf.newTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");serializer.setOutputProperty(OutputKeys.INDENT, "yes");serializer.setOutputProperty(OutputKeys.METHOD, "html");serializer.transform(domSource, streamResult); outStream.close();String content = new String(outStream.toByteArray());FileUtils.writeStringToFile(new File(path, "人员选择系分.html"), content, "utf-8");}}1234567891011121314151617181920212223242526272 8293031323334353637383940414243444546474849505 15253545556575859606162636465excel转htmlpackage excelToHtml;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import mons.io.FileUtils;importorg.apache.poi.hssf.converter.ExcelToHtmlConverter; import ermodel.HSSFWorkbook; import org.apache.poi.hwpf.converter.PicturesManager; importorg.apache.poi.hwpf.converter.WordToHtmlConverter; import ermodel.Picture;import ermodel.PictureType; import org.w3c.dom.Document;public class PoiExcelToHtml {final static String path = "D:\\poi-test\\excelToHtml\\";final static String file = "exportExcel.xls";public static void main(String args[]) throws Exception {InputStream input=new FileInputStream(path+file);HSSFWorkbook excelBook=newHSSFWorkbook(input);ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBu ilder().newDocument() );excelToHtmlConverter.processWorkbook(excelBook);List pics = excelBook.getAllPictures();if (pics != null) {for (int i = 0; i < pics.size(); i++) {Picture pic = (Picture) pics.get (i);try {pic.writeImageContent (new FileOutputStream (path + pic.suggestFullFileName() ) );} catch (FileNotFoundException e) {e.printStackTrace();}}}Document htmlDocument=excelToHtmlConverter.getDocument();ByteArrayOutputStream outStream = newByteArrayOutputStream();DOMSource domSource = new DOMSource (htmlDocument);StreamResult streamResult = new StreamResult (outStream);TransformerFactory tf =TransformerFactory.newInstance();Transformer serializer = tf.newTransformer();serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");serializer.setOutputProperty (OutputKeys.INDENT, "yes");serializer.setOutputProperty (OutputKeys.METHOD, "html");serializer.transform (domSource, streamResult);outStream.close();String content = new String(outStream.toByteArray() );FileUtils.writeStringToFile(new File (path, "exportExcel.html"), content, "utf-8");}}1234567891011121314151617181920212223242526272 8293031323334353637383940414243444546474849505 15253545556575859606162636465ppt转html其实只是ppt转图片,有了图片后放到页面上去,点击下一页就一张张显示就可以了。
Java使⽤poi将word转换为html 使⽤poi将word转换为html,⽀持doc,docx,转换后可以保持图⽚、样式。
1.导⼊Maven包<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.14</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.14</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.14</version></dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>xdocreport</artifactId><version>1.0.6</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.14</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>ooxml-schemas</artifactId><version>1.3</version></dependency>2.转换代码import org.apache.poi.hwpf.HWPFDocument;import org.apache.poi.hwpf.converter.WordToHtmlConverter;import org.apache.poi.xwpf.converter.core.BasicURIResolver;import org.apache.poi.xwpf.converter.core.FileImageExtractor;import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;import ermodel.XWPFDocument;import org.w3c.dom.Document;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.OutputStreamWriter;public class Test {// doc转换为htmlvoid docToHtml() throws Exception {String sourceFileName = "C:\\doc\\test.doc";String targetFileName = "C:\\html\\test.html";String imagePathStr = "C:\\html\\image\\";HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(sourceFileName));Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document);// 保存图⽚,并返回图⽚的相对路径wordToHtmlConverter.setPicturesManager((content, pictureType, name, width, height) -> {try(FileOutputStream out = new FileOutputStream(imagePathStr + name)){out.write(content);} catch (Exception e) {e.printStackTrace();}return "image/" + name;});wordToHtmlConverter.processDocument(wordDocument);Document htmlDocument = wordToHtmlConverter.getDocument();DOMSource domSource = new DOMSource(htmlDocument);StreamResult streamResult = new StreamResult(new File(targetFileName));TransformerFactory tf = TransformerFactory.newInstance();Transformer serializer = tf.newTransformer();serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");serializer.setOutputProperty(OutputKeys.INDENT, "yes");serializer.setOutputProperty(OutputKeys.METHOD, "html");serializer.transform(domSource, streamResult);}// docx转换为htmlpublic void docxToHtml() throws Exception {String sourceFileName = "D:\\ac\\00.docx";String targetFileName = "D:\\ac\\test.html";String imagePathStr = "D:\\ac\\image\\";OutputStreamWriter outputStreamWriter = null;try {XWPFDocument document = new XWPFDocument(new FileInputStream(sourceFileName));XHTMLOptions options = XHTMLOptions.create();// 存放图⽚的⽂件夹options.setExtractor(new FileImageExtractor(new File(imagePathStr)));// html中图⽚的路径options.URIResolver(new BasicURIResolver("image"));outputStreamWriter = new OutputStreamWriter(new FileOutputStream(targetFileName), "utf-8"); XHTMLConverter xhtmlConverter = (XHTMLConverter) XHTMLConverter.getInstance();xhtmlConverter.convert(document, outputStreamWriter, options);} finally {if (outputStreamWriter != null) {outputStreamWriter.close();}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Java 将Word转为PDF/Html/图片/XPS/SVG(基于Spire.Cloud.SDK for Java)Spire.Cloud.SDK for Java API提供了ConverApi接口支持将Word文档转换为多种文档格式,包括将Word转为PDF、Html、位图Bitmap(JPEG/BMP/ PNG)、矢量图Vectorgraph(支持WMF/SVG)、XPS、PostScript、PCL、dotx、dotm、docm、odt、wordxml、wordml、doc、docx、rtf、epub等等。
下面将详细介绍如何来实现转换。
步骤一、导入jar文件创建Maven项目程序,通过maven仓库下载导入。
以IDEA为例,新建Maven项目,在pom.xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下:<repositories><repository><id>com.e-iceblue</id><name>cloud</name><url>/repository/maven-public/</url></repository></repositories><dependencies><dependency><groupId> cloud </groupId><artifactId>spire.cloud.sdk</artifactId><version>3.5.0</version></dependency><dependency><groupId> com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.1</version></dependency><dependency><groupId> com.squareup.okhttp</groupId><artifactId>logging-interceptor</artifactId><version>2.7.5</version></dependency><dependency><groupId> com.squareup.okhttp </groupId><artifactId>okhttp</artifactId><version>2.7.5</version></dependency><dependency><groupId> com.squareup.okio </groupId><artifactId>okio</artifactId><version>1.6.0</version></dependency><dependency><groupId> io.gsonfire</groupId><artifactId>gson-fire</artifactId><version>1.8.0</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.18</version></dependency><dependency><groupId> org.threeten </groupId><artifactId>threetenbp</artifactId><version>1.3.5</version></dependency></dependencies>完成配置后,点击“Import Changes” 即可导入所有需要的jar文件。
POI读取word(word2003和word2007)(转)最近在给客户做系统的时候,⽤户提出需求,要能够导⼊ word ⽂件,现在 microsoft word 有好⼏个版本 97、2003、2007的,这三个版本存储数据的格式上都有相当⼤的差别,⽽现在 97 基本上已经退出市场,⼏乎没有⼈⽤这个版本了,所以在我们的系统中只考虑 2003 版本和 2007 版本的,因为我们只要求能够读取 word 中的⽂字内容即可,其中的⽂字样式、图⽚等信息可以忽略,也不⽤直接操作 word ⽂件,所以我们选择⽤ apache 的 POI 进⾏读取。
读取 2003 版本(.doc)的word⽂件相对来说⽐较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个jar 包即可,⽽ 2007 版本(.docx)就⿇烦多,我说的这个⿇烦不是我们写代码的时候⿇烦,是要导⼊的 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 ⽬录下可以找到)。
[java]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. /**12. * POI 读取 word 2003 和 word 2007 中⽂字内容的测试类<br />13. * @createDate 2009-07-2514. * @author Carl He15. */16. public class Test {17. public static void main(String[] args) {18. try {19. //word 2003:图⽚不会被读取20. InputStream is = new FileInputStream(new File("c://files//2003.doc"));21. WordExtractor ex = new WordExtractor(is);22. String text2003 = ex.getText();23. System.out.println(text2003);24.25. //word 2007 图⽚不会被读取,表格中的数据会被放在字符串的最后26. OPCPackage opcPackage = POIXMLDocument.openPackage("c://files//2007.docx");27. POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);28. String text2007 = extractor.getText();29. System.out.println(text2007);30.31. } catch (Exception e) {32. e.printStackTrace();33. }34. }35. }如果想下载完整的⽰例代码,可以,这个 rar 包中有 POI 读取word 2003 和 word 2007 所需要的全部 jar 包和 word 2003、word 2007 ⽰例⽂件。
Java的POI(Poor Obfuscation Implementation)是一个用于处理Microsoft Office文档的Java库,主要包括对Excel、Word和PowerPoint等文件的读写操作。
以下是一个简单的Java POI用法示例:1. 首先,需要在项目中引入Apache POI依赖。
如果使用Maven,可以在pom.xml文件中添加以下依赖:```xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.0</version></dependency>```2. 创建一个Java类,实现读取Excel文件的功能:```javaimport ermodel.*;import ermodel.XSSFWorkbook;import java.io.File;import java.io.FileInputStream;import java.io.IOException;public class ReadExcel {public static void main(String[] args) {try {FileInputStream excelFile = new FileInputStream(new File("example.xlsx"));Workbook workbook = new XSSFWorkbook(excelFile);Sheet sheet = workbook.getSheetAt(0);for (Row row : sheet) {for (Cell cell : row) {switch (cell.getCellType()) {case STRING:System.out.print(cell.getStringCellValue() + "\t");break;case NUMERIC:System.out.print(cell.getNumericCellValue() + "\t");break;case BOOLEAN:System.out.print(cell.getBooleanCellValue() + "\t");break;default:System.out.print("N/A\t");break;}}System.out.println();}workbook.close();} catch (IOException e) {e.printStackTrace();}}}```这个示例中,我们首先创建了一个`FileInputStream`对象来读取名为"example.xlsx"的Excel文件。
Java POI XWPFSDT 获取格式一、简介在Java开发中,Apache POI是一个流行的用于操作Microsoft Office文件(如Word、Excel)的开源库。
在使用POI操作Word文档时,XWPFSDT是一个重要的类,用于获取文本的格式。
二、什么是XWPFSDTXWPFSDT(Simple Decorated Text)是Word文档中的一种特殊文本格式,它可以包含格式化文本、表格、图像等。
在使用POI操作Word文档时,我们经常需要获取XWPFSDT中的文本内容和格式。
三、XWPFSDT 获取格式的方法1. 获取文本内容要获取XWPFSDT中的文本内容,可以使用POI提供的getText()方法。
示例代码:```javaXWPFDocument doc = new XWPFDocument(new FileInputStream("example.docx"));List<XWPFSDT> sdtList = doc.getCustomXMLDatas();for (XWPFSDT sdt : sdtList) {System.out.println(sdt.getText());}```2. 获取文本格式除了获取文本内容外,有时候我们还需要获取XWPFSDT中文本的格式,比如字体、颜色、大小等。
可以使用POI提供的getStyle()方法。
示例代码:```javaXWPFDocument doc = new XWPFDocument(new FileInputStream("example.docx"));List<XWPFSDT> sdtList = doc.getCustomXMLDatas();for (XWPFSDT sdt : sdtList) {System.out.println("文本内容:" + sdt.getText());System.out.println("文本格式:" + sdt.getStyle());}```四、XWPFSDT 获取格式的应用1. 数据处理通过获取XWPFSDT中文本的格式,可以实现对文本内容的灵活处理。
Java将Word转为HTML的⽅法本⽂介绍如何在JAVA程序中将Word⽂档通过Document.saveToFile()⽅法转换为HTML⽂档。
编辑代码前,参考如下环境配置,导⼊jar包。
【程序环境】1. IntelliJ IDEA 2018( jdk 1.8.0)2. 测试⽂档:Word 2013(.docx)3. Jar包:Free Spire.Doc for Java 3.9.0导⼊jar的两种⽅法:⽅法1:下载jar包到本地,解压,将本地lib⽂件夹下的Spire.Doc.jar导⼊Java程序,步骤如下:导⼊结果:⽅法2:maven程序中需要配置pom.xml⽂件,指定maven仓库路径和spire.doc.free的依赖,配置内容如下:<repositories><repository><id>com.e-iceblue</id><url>/repository/maven-public/</url></repository></repositories><dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</version></dependency></dependencies>【Java】import com.spire.doc.*;public class WordtoHtml {public static void main(String[] args) {Document doc = new Document();doc.loadFromFile("test.docx");doc.saveToFile("wordtohtml.html",FileFormat.Html);doc.dispose();}}转换效果Word测试⽂档:转换后的HTML⽂件:注:代码中的⽂件路径为IDEA程序项⽬⽂件夹路径,如 F:\IDEAProject\Conversion_Doc\test.docx ,⽂件路径可以另⾏⾃定义为其他路径。
JAVA操作WORDJava操作Word主要有两种方式:一种是使用Apache POI库进行操作,另一种是使用XML模板进行操作。
下面将详细介绍如何通过XML模板实现Java操作Word。
1.准备工作:2. 创建Word模板:首先,创建一个空的Word文档,将其保存为XML格式,作为Word的模板。
可以在Word中添加一些标记或占位符,用于后续替换。
3.导入POI和相关依赖:在Java项目中,导入以下依赖:```xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.xmlbeans</groupId><artifactId>xmlbeans</artifactId><version>3.1.0</version></dependency>```4.读取模板文件:使用POI库读取Word模板文件,将其转换为XML格式的字符串,并保存为`template.xml`文件中。
```javaimport ermodel.XWPFDocument;import java.io.FileOutputStream;public class WordTemplateReaderpublic static void main(String[] args) throws ExceptionXWPFDocument document = new XWPFDocument(new FileInputStream("template.docx"));FileOutputStream out = new FileOutputStream("template.xml");document.write(out);out.close(;document.close(;}}```5.数据替换:读取template.xml文件,使用Java中的字符串替换功能,将模板中的占位符替换为实际的数据。
Java读取word文档解决方案嘿,小伙伴,今天咱们就来聊聊如何在Java中读取Word文档,让你的程序也能像人一样“读懂”Word文件。
这可是个常用需求,不管你是做数据分析,还是文档处理,这项技能绝对不能少。
下面,我就用我那十年的方案写作经验,带你一起探索这个话题。
咱们得明确一下,Java读取Word文档主要有两种方式:一种是通过ApachePOI库,另一种是通过JODConverter库。
这两种方法各有千秋,下面我会一一介绍。
一、ApachePOI库ApachePOI,这可是Java读取Word文档的经典之作。
它支持读取和写入Word文档,功能强大,稳定性高。
不过,使用起来可能会有点难度,因为它的API相对复杂。
1.引入依赖你需要在项目的pom.xml文件中引入ApachePOI的依赖:xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.1.0</version></dependency>2.读取Word文档就是读取Word文档的核心代码了。
这里我以读取.docx格式的文档为例:javaermodel.XWPFDocument;ermodel.XWPFParagraph;ermodel.XWPFRun;importjava.io.FileInputStream;importjava.io.IOException;importjava.util.List;publicclassWordReader{publicstaticvoidmn(Stringargs){try(FileInputStreamfis=newFileInputStream("path/to/your/ document.docx");XWPFDocumentdoc=newXWPFDocument(fis)){List<XWPFParagraph>paragraphs=doc.getParagraphs();for(XWPFParagraphparagraph:paragraphs){List<XWPFRun>runs=paragraph.getRuns();Stringtext="";for(XWPFRunrun:runs){text+=run.getText(0);}System.out.println(text);}}catch(IOExceptione){e.printStackTrace();}}}这里,我们通过`FileInputStream`读取Word文档,然后创建一个`XWPFDocument`对象来解析文档。
java使⽤poi转换docdocx为pdf为了⽅便前端预览word⽂件,上传后进⾏pdf转换(也可以预览时⽣成临时⽂件)*注word中插⼊的表格的话表格内字体都要为宋体不然转出来为空引⽤jar包<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency> <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId> <version>2.0.1</version> </dependency><!-- https:///artifact/org.apache.poi/poi-scratchpad --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.17</version></dependency>docx转换⽐较简单代码如下FileInputStream fileInputStream = null;FileOutputStream fileOutputStream=null;try {// 读取docx⽂件fileInputStream = new FileInputStream(inPath);XWPFDocument xwpfDocument = new XWPFDocument(fileInputStream);PdfOptions pdfOptions = PdfOptions.create();// 输出路径fileOutputStream = new FileOutputStream(outPath);// 调⽤转换PdfConverter.getInstance().convert(xwpfDocument,fileOutputStream,pdfOptions);} catch (IOException e) {e.printStackTrace();}finally {fileInputStream.close();fileOutputStream.close();}doc不能直接通过poi转换pdf,看到有教程先转html然后再转pdf,要结合itext还要处理html标签闭合问题觉得太⿇烦(好吧其实是我懒).转换思路找到⼀个jar包可以把doc转成docx :spire.doc.free-3.9.0.jar⽹址:https:///Introduce/Free-Spire-Doc-JAVA.html 下载后引⼊或安装到本地maven仓库添加pom即可官⽅有提⽰:免费版有篇幅限制。
JavaPOI操作word⽂档内容、表格⼀、pom<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.0.0</version></dependency>⼆、直接上代码word模板中${content} 注意我只有在.docx⽤XWPFDocument才有效2.1/*** 获取document**/XWPFDocument document = null;try {document = new XWPFDocument(inputStream);} catch (IOException ioException) {ioException.printStackTrace();}/*** 替换段落⾥⾯的变量** @param doc 要替换的⽂档* @param params 参数*/private void replaceInPara(XWPFDocument doc, Map<String, String> params) {for (XWPFParagraph para : doc.getParagraphs()) {replaceInPara(para, params);}}/*** 替换段落⾥⾯的变量** @param para 要替换的段落* @param params 参数*/private void replaceInPara(XWPFParagraph para, Map<String, String> params) {List<XWPFRun> runs;Matcher matcher;replaceText(para);//如果para拆分的不对,则⽤这个⽅法修改成正确的if (matcher(para.getParagraphText()).find()) {runs = para.getRuns();for (int i = 0; i < runs.size(); i++) {XWPFRun run = runs.get(i);String runText = run.toString();matcher = matcher(runText);if (matcher.find()) {while ((matcher = matcher(runText)).find()) {runText = matcher.replaceFirst(String.valueOf(params.get(matcher.group(1))));}//直接调⽤XWPFRun的setText()⽅法设置⽂本时,在底层会重新创建⼀个XWPFRun,把⽂本附加在当前⽂本后⾯, para.removeRun(i);para.insertNewRun(i).setText(runText);}}}}/*** 替换⽂本内容* @param para* @return*/private List<XWPFRun> replaceText(XWPFParagraph para) {List<XWPFRun> runs = para.getRuns();String str = "";boolean flag = false;for (int i = 0; i < runs.size(); i++) {XWPFRun run = runs.get(i);String runText = run.toString();if (flag || runText.equals("${")) {str = str + runText;flag = true;para.removeRun(i);if (runText.equals("}")) {flag = false;para.insertNewRun(i).setText(str);str = "";}i--;}}return runs;}2.22.2.1XWPFTable table = document.getTableArray(0);//获取当前表格XWPFTableRow twoRow = table.getRow(2);//获取某⼀⾏XWPFTableRow nextRow = table.insertNewTableRow(3);//插⼊⼀⾏XWPFTableCell firstRowCellOne = firstRow.getCell(0);firstRowCellOne.removeParagraph(0);//删除默认段落,要不然表格内第⼀条为空⾏XWPFParagraph pIO2 =firstRowCellOne.addParagraph();XWPFRun rIO2 = pIO2.createRun();rIO2.setFontFamily("宋体");//字体rIO2.setFontSize(8);//字体⼤⼩rIO2.setBold(true);//是否加粗rIO2.setColor("FF0000");//字体颜⾊rIO2.setText("这是写⼊的内容");//rIO2.addBreak(BreakType.TEXT_WRAPPING);//软换⾏,亲测有效/*** 复制单元格和样式** @param targetRow 要复制的⾏* @param sourceRow 被复制的⾏*/public void createCellsAndCopyStyles(XWPFTableRow targetRow, XWPFTableRow sourceRow) {targetRow.getCtRow().setTrPr(sourceRow.getCtRow().getTrPr());List<XWPFTableCell> tableCells = sourceRow.getTableCells();if (CollectionUtils.isEmpty(tableCells)) {return;}for (XWPFTableCell sourceCell : tableCells) {XWPFTableCell newCell = targetRow.addNewTableCell();newCell.getCTTc().setTcPr(sourceCell.getCTTc().getTcPr());List sourceParagraphs = sourceCell.getParagraphs();if (CollectionUtils.isEmpty(sourceParagraphs)) {continue;}XWPFParagraph sourceParagraph = (XWPFParagraph) sourceParagraphs.get(0);List targetParagraphs = newCell.getParagraphs();if (CollectionUtils.isEmpty(targetParagraphs)) {XWPFParagraph p = newCell.addParagraph();p.getCTP().setPPr(sourceParagraph.getCTP().getPPr());XWPFRun run = p.getRuns().isEmpty() ? p.createRun() : p.getRuns().get(0);run.setFontFamily(sourceParagraph.getRuns().get(0).getFontFamily());} else {XWPFParagraph p = (XWPFParagraph) targetParagraphs.get(0);p.getCTP().setPPr(sourceParagraph.getCTP().getPPr());XWPFRun run = p.getRuns().isEmpty() ? p.createRun() : p.getRuns().get(0);if (sourceParagraph.getRuns().size() > 0) {run.setFontFamily(sourceParagraph.getRuns().get(0).getFontFamily());}}}}#### 2.2.3/*** 合并单元格** @param table 表格对象* @param beginRowIndex 开始⾏索引* @param endRowIndex 结束⾏索引* @param colIndex 合并列索引*/public void mergeCell(XWPFTable table, int beginRowIndex, int endRowIndex, int colIndex) { if (beginRowIndex == endRowIndex || beginRowIndex > endRowIndex) {return;}//合并⾏单元格的第⼀个单元格CTVMerge startMerge = CTVMerge.Factory.newInstance();startMerge.setVal(STMerge.RESTART);//合并⾏单元格的第⼀个单元格之后的单元格CTVMerge endMerge = CTVMerge.Factory.newInstance();endMerge.setVal(STMerge.CONTINUE);table.getRow(beginRowIndex).getCell(colIndex).getCTTc().getTcPr().setVMerge(startMerge); for (int i = beginRowIndex + 1; i <= endRowIndex; i++) {table.getRow(i).getCell(colIndex).getCTTc().getTcPr().setVMerge(endMerge);}}/*** insertRow 在word表格中指定位置插⼊⼀⾏,并将某⼀⾏的样式复制到新增⾏* @param copyrowIndex 需要复制的⾏位置* @param newrowIndex 需要新增⼀⾏的位置* */public static void insertRow(XWPFTable table, int copyrowIndex, int newrowIndex) {// 在表格中指定的位置新增⼀⾏XWPFTableRow targetRow = table.insertNewTableRow(newrowIndex);// 获取需要复制⾏对象XWPFTableRow copyRow = table.getRow(copyrowIndex);//复制⾏对象targetRow.getCtRow().setTrPr(copyRow.getCtRow().getTrPr());//或许需要复制的⾏的列List<XWPFTableCell> copyCells = copyRow.getTableCells();//复制列对象XWPFTableCell targetCell = null;for (int i = 0; i < copyCells.size(); i++) {XWPFTableCell copyCell = copyCells.get(i);targetCell = targetRow.addNewTableCell();targetCell.getCTTc().setTcPr(copyCell.getCTTc().getTcPr());if (copyCell.getParagraphs() != null && copyCell.getParagraphs().size() > 0) {targetCell.getParagraphs().get(0).getCTP().setPPr(copyCell.getParagraphs().get(0).getCTP().getPPr()); if (copyCell.getParagraphs().get(0).getRuns() != null&& copyCell.getParagraphs().get(0).getRuns().size() > 0) {XWPFRun cellR = targetCell.getParagraphs().get(0).createRun();cellR.setBold(copyCell.getParagraphs().get(0).getRuns().get(0).isBold());}}}}/*** 正则匹配字符串** @param str* @return*/private Matcher matcher(String str) {Pattern pattern = pile("\\$\\{(.+?)\\}", Pattern.CASE_INSENSITIVE);Matcher matcher = pattern.matcher(str);return matcher;}。
java使⽤poi读取doc和docx⽂件的实现⽰例这⼏天在学习java io流的东西,有⼀个⽹友看到博客后问了⼀个问题,就是说他的doc⽂档为什么⽤我所说的⽅法死活就是乱码。
我⼀开始以为是他⽅法问题,结果⾃⼰试了之后发现和他的结果⼀样也是乱码。
于是在⽹上搜寻了⼀阵之后才发现原来doc⽂档和excel⼀样不能⽤普通的io流的⽅法来读取,⽽是也需要⽤poi,于是进⾏了⼀番尝试后,终于以正确的编码格式读取了这个doc⽂件。
在⽹上搜索的过程中发现doc和docx的读取⽅法是不⼀样的,于是顺带也学了⼀下docx⽂件的简单读取。
⼀、导包:doc⽂件的读取,需要导⼊poi-scratchpad的jar包和相关依赖包:docx⽂件读取,需要导⼊poi-ooxml的jar包和相关依赖包:我⽤的是maven构建项⽬,相关的依赖包会⾃动导⼊,maven导包配置如下:<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.8</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.8</version></dependency>⼆、读取⽂件的代码:1、doc⽂件读取简单⽰例:public static void readAndWriterTest3() throws IOException {File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.doc");String str = "";try {FileInputStream fis = new FileInputStream(file);HWPFDocument doc = new HWPFDocument(fis);String doc1 = doc.getDocumentText();System.out.println(doc1);StringBuilder doc2 = doc.getText();System.out.println(doc2);Range rang = doc.getRange();String doc3 = rang.text();System.out.println(doc3);fis.close();} catch (Exception e) {e.printStackTrace();}}2、docx⽂件读取简单⽰例:public static void readAndWriterTest4() throws IOException {File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.docx");String str = "";try {FileInputStream fis = new FileInputStream(file);XWPFDocument xdoc = new XWPFDocument(fis);XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);String doc1 = extractor.getText();System.out.println(doc1);fis.close();} catch (Exception e) {e.printStackTrace();}}我并没有在⼯作中操作过word,这篇博客也只是⼀时兴起所做,因此写的很简单。