前面的文章中,介绍了ApachePOI如何利用模板幻灯片文件制作PPT,详见:https://blog.terrynow.com/2023/07/11/apache-poi-generate-ppt-slide-from-template/,实际生成后遇到一个问题,就是每个幻灯片都变成了自动3秒播放,实际的模板也没有自动播放,经过一番搜索,找到解决办法: for (XSLFSlide slide : ppt0.getSlides()) { if (slide.getXmlObject() != null) { sl…

2023-07-15 0条评论 79点热度 0人点赞 admin 阅读全文

项目中遇到一个需求是生成PPT文件,但是一般来说,PPT会比较复杂,我们的做法是先用WPS或者Powerpoint制作好模板PPT文件(模板文件里使用文本占位符${placeholder}来表示要替换的地方),然后读取模板文件,生成实际需要的PPT文件。 如图,使用文本占位符: 代码如下: public void generatePPT() { // 读取模板ppt Path path = Paths.get(pptTemplateFile); XMLSlideShow templatePPT = new XMLS…

2023-07-11 0条评论 82点热度 0人点赞 admin 阅读全文

如题的需求,需要用Java将word的doc(docx)文档转成html,另外word文档中,还有一些图片,需要将图片转成base保存在html中。 需要用到的框架如下: Apache POI xdocreport 相关的maven依赖如下: pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.3<…

2023-06-24 0条评论 138点热度 0人点赞 admin 阅读全文

Java语言将html转换成docx文件,我们使用了Apache POI、poi-tl、poi-tl-ext 基本上大部分的html都能转成docx了,不过还需要一个需求,就是需要将docx文件内容,在特定某一处地方实现分页。 通过查找和自己的研究,实现了在html增加一个特殊的标签,例如:<pbr/> 可以将这个标签在转换成docx的时候,换成分页。 PageBreakRenderer.java import org.apache.poi.xwpf.usermodel.BreakType; impor…

2023-06-17 0条评论 159点热度 0人点赞 admin 阅读全文

使用ApachePOI生成单元格内容的时候,无论内容中是否含有\n等换行符,内容都是不换行的,要让单元格中的内容按照\n换行,需要设置一下CellStyle(setWrapText(true)),并给这个cell设置cellStyle,代码如下: CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); cellStyle.setVerticalAlignment(Ver…

2023-06-12 0条评论 124点热度 0人点赞 admin 阅读全文

因为需要一个新功能要把POI升级到5.2.2,pom.xml下直接修改了版本号以后,启动程序导出Excel报错了,如下: java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream 解决办法 看报错是关于commons-io的,经过研究,发现指定commons-io的版本为2.11.0以上即可解决问题 <dependency> <groupId>commons…

2023-01-30 0条评论 418点热度 0人点赞 admin 阅读全文

使用Apache POI生成单元格内容,给单元格设置了边框,代码如下: // 创建带有四个变量的CellStyle CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setBorderT…

2022-12-25 0条评论 214点热度 0人点赞 admin 阅读全文

默认情况下使用ApachePOI生成的单元格Cell,我们给Cell设置内容后,如果内容比较多,宽度不够的情况下,里面的文字是不换行的,如果希望文本换行,可以有两种做法 将单元格设置为文本自动换行(推荐) HSSFCellStyle cellStyle = workbook.createCellStyle(); cellStyle.setWrapText(true); // 设置cellStyle格式为自动换行 cell.setCellStyle(cellStyle); // 给单元格cell设置cellStyle…

2022-12-24 0条评论 329点热度 0人点赞 admin 阅读全文

默认情况下用ApachePOI生成的Excel,单元格Cell所在的那一列(Column)的宽度都很窄,用户下载后,需要每一个单元格都手动拉宽才能显示内容,比较不方便。 POI中可以有以上几种方式,从代码中设置单元格宽度: 宽度的参数要乘以256,这是怎么回事呢?其实,这个参数的单位是1/256个字符宽度,20 * 256 就是20个字符的宽度 # 我们假设要给单元格设置宽度是20 (以下都要将需要的宽度乘以256传进去) # 设置Sheet下所有的单元格的默认宽度是20 sheet.setDefaultColum…

2022-11-29 0条评论 389点热度 0人点赞 admin 阅读全文

需求是要给POI生成的Cell单元格内容加文字颜色(或者背景颜色),实操后发现,设置颜色并没有和之前的普通程序(例如Html里面给文字加颜色,可以是RBG或者#FF00FF这样的颜色) 下来面实例看下: Font font = workbook.createFont(); font.setBold(true); // 设置字体颜色是红色 font.setColor(HSSFColor.HSSFColorPredefined.RED.getIndex()); CellStyle cellStyle = workboo…

2022-11-09 0条评论 962点热度 0人点赞 admin 阅读全文
12