福甭市建设局网站,学做川菜最好的网站,wordpress关注公众号阅读更多,门户网站建设检察word 文件读取
使用Apache POI Word 进行读取文件 使用poi 时如果报ClassNotFoundException 等错误#xff0c;请注意请求以下maven 文件的版本 Apache POI Word 说明文档#xff1a;Apache POI Word 说明文档
maven 解决依赖冲突教程#xff1a;https://www.cnblogs.com/…word 文件读取
使用Apache POI Word 进行读取文件 使用poi 时如果报ClassNotFoundException 等错误请注意请求以下maven 文件的版本 Apache POI Word 说明文档Apache POI Word 说明文档
maven 解决依赖冲突教程https://www.cnblogs.com/shangxiaofei/p/17662176.html
1:导包 !--poi--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion5.2.2/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion5.2.2/version/dependency!--读取doc文件--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-scratchpad/artifactIdversion5.2.2/version/dependency2读取doc和docx文件的工具类
package com.wkl.testdemo.word;import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;/*** 读取word工具类*/
public class ReadWordUtil {public static String readWord(InputStream inputStream, String suffix) throws Exception{String buffer ;try {if (doc.equals(suffix)) {HWPFDocument document new HWPFDocument(inputStream);WordExtractor extractor new WordExtractor(document);buffer extractor.getText();String[] paragraphText extractor.getParagraphText();//解析段落for (String s : paragraphText) {System.out.println(s);}extractor.close();document.close();} else if (docx.equals(suffix)) {XWPFDocument doc new XWPFDocument(inputStream);XWPFWordExtractor extractor new XWPFWordExtractor(doc);buffer extractor.getText();//解析段落ListXWPFParagraph paragraphs doc.getParagraphs();for (XWPFParagraph paragraph : paragraphs) {String text1 paragraph.getText();System.out.println(text1);}extractor.close();doc.close();}return buffer;} catch (Exception e) {throw e;}}public static void main(String[] args) throws Exception {String pathdocx C:\\Users\\wenge\\Desktop\\新建 DOCX 文档.docx;readWord(new FileInputStream(new File(pathdocx)),docx);String pathdoc C:\\Users\\wenge\\Desktop\\新建 DOC 文档.doc;readWord(new FileInputStream(new File(pathdoc)),doc);}
}导出word文档-Poi-tl
1:Poi-tl介绍
poi-tl是一个基于Apache POI的Java库用于操作Microsoft Office文档包括Word文档.docx、Excel电子表格.xlsx和PowerPoint演示文稿.pptx。它提供了一组简单易用的API使开发人员能够轻松地创建、读取和修改Office文档。
poi-tl的主要特点如下 简单易用poi-tl提供了一组简单易用的API使开发人员能够快速上手并进行Office文档的操作。它提供了丰富的方法和属性以满足不同的需求。 支持多种文档格式poi-tl支持多种常见的Office文档格式包括Word文档.docx、Excel电子表格.xlsx和PowerPoint演示文稿.pptx。开发人员可以使用poi-tl来创建、读取和修改这些文档。 功能丰富poi-tl提供了许多有用的功能如创建和修改文档的样式、添加和删除文本、插入和删除图片、创建和修改表格、添加和删除行列等。它还支持合并单元格、设置字体样式和颜色、设置边框和背景颜色等高级功能。 支持模板引擎poi-tl支持使用模板引擎来生成Office文档。开发人员可以使用模板引擎来定义文档的结构和样式并使用poi-tl来填充数据。这样可以实现文档的动态生成使开发人员能够更灵活地生成各种类型的文档。 支持国际化poi-tl支持国际化可以根据不同的语言和地区生成相应的文档。开发人员可以使用poi-tl提供的API来设置文档的语言、日期格式、货币格式等以满足不同国家和地区的需求。 开源免费poi-tl是一个开源的Java库使用Apache License 2.0许可证。这意味着开发人员可以免费使用和修改poi-tl并将其用于商业和非商业项目。
综上所述poi-tl是一个功能强大且易于使用的Java库用于操作Microsoft Office文档。它提供了丰富的API和功能使开发人员能够轻松地创建、读取和修改Office文档。无论是生成报告、导出数据还是进行数据分析poi-tl都是一个理想的选择
2:Poi-tl和其他模板引擎对比 其中 poi-tl官网地址:https://deepoove.com/poi-tl/ Apache POI Word 说明文档Apache POI Word 说明文档
3Poi-tl 功能列表 4导包
看poi-tl 官网有版本建议 !--poi word--dependencygroupIdcom.deepoove/groupIdartifactIdpoi-tl/artifactIdversion1.12.0/version/dependency!--poi--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion5.2.2/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion5.2.2/version/dependency!--读取doc文件--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-scratchpad/artifactIdversion5.2.2/version/dependency5导出文件测试-helloworld
1生成一个模板.docx
2程序测试
package com.wkl.testdemo.word;import com.deepoove.poi.XWPFTemplate;import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;/*** author wangkanglu* version 1.0* description* date 2023-12-20 15:53*/
public class WriteWordUtil {public static void main(String[] args) {String path C:\\Users\\Desktop\\模板.docx;MapString,String data new HashMap();data.put(title,标题1111);data.put(publishTime,2023-12-20 13:12:12);data.put(content,内容);try {toword(data,path,C:\\Users\\Desktop\\模板1.docx);} catch (IOException e) {throw new RuntimeException(e);}}/*** 生成word工具类* param datas 数据* param filePath 模板地址* param descpath 输出地址* return 返回生成文件路径* throws IOException*/public static String toword(Map datas, String filePath, String descpath) throws IOException {String outPath descpath;XWPFTemplate template XWPFTemplate.compile(filePath).render(datas);FileOutputStream out new FileOutputStream(outPath);template.write(out);template.close();return descpath;}
}
3结果:
6复杂使用-增加文件批注 package com.wkl.testdemo.word;import java.io.IOException;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;import org.apache.poi.util.LocaleUtil;import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.Documents;
import com.deepoove.poi.data.Documents.DocumentBuilder;
import com.deepoove.poi.data.ParagraphRenderData;
import com.deepoove.poi.data.Paragraphs;
import com.deepoove.poi.data.Pictures;
import com.deepoove.poi.data.TableRenderData;
import com.deepoove.poi.data.Tables;
import com.deepoove.poi.data.Texts;
import com.deepoove.poi.data.style.Style;
import com.deepoove.poi.plugin.comment.CommentRenderData;
import com.deepoove.poi.plugin.comment.CommentRenderPolicy;
import com.deepoove.poi.plugin.comment.Comments;
import com.deepoove.poi.plugin.comment.Comments.CommentBuilder;public class CommentRenderPolicyTest {public static void main(String[] args) {try {testCommentExample();} catch (IOException e) {throw new RuntimeException(e);}}public static void testCommentExample() throws IOException {// commentCommentRenderData comment0 newCommentBuilder().addText(Texts.of(咏鹅).fontSize(20).bold().create()).comment(Documents.of().addParagraph(Paragraphs.of(Pictures.ofLocal(D:\\Pictures\\002KoyJzly1hix2zhdr2qj60sq0sq0uu02.jpg).create()).create()).create()).create();CommentRenderData comment1 newCommentBuilder().addText(骆宾王).comment(骆宾王作为“初唐四杰”之一对荡涤六朝文学颓波革新初唐浮靡诗风。他一生著作颇丰是一个才华横溢的诗人。).create();CommentRenderData comment2 newCommentBuilder().addText(曲项).comment(弯着脖子).create();CommentRenderData comment3 newCommentBuilder().addText(拨).comment(划动).create();// document DocumentBuilder documentBuilder Documents.of().addParagraph(Paragraphs.of().addComment(comment0).center().create());documentBuilder.addParagraph(Paragraphs.of().addComment(comment1).center().create());documentBuilder.addParagraph(Paragraphs.of(鹅鹅鹅).addComment(comment2).addText(向天歌。).center().create());documentBuilder.addParagraph(Paragraphs.of(白毛浮绿水红掌).addComment(comment3).addText(清波。).center().create());// renderXWPFTemplate.create(documentBuilder.create(), Style.builder().buildFontFamily(微软雅黑).buildFontSize(14f).build()).writeToFile(C:\\Users\\Desktop\\增加批注.docx);}private static CommentBuilder newCommentBuilder() {return Comments.of().signature(Sayi, s, LocaleUtil.getLocaleCalendar());}}