Java Apache poi xlsx的生成速度较慢,有许多缺陷
我正在使用ApachePOI3.14生成xlsx。所有操作都正常,但在将每个图像添加到工作簿后,性能都会下降。 减慢速度的方法是绘图类的createPicture(锚定,pictureIndex)。 有没有更好的方法将图像添加到xlsxJava Apache poi xlsx的生成速度较慢,有许多缺陷,java,excel,apache,apache-poi,xlsx,Java,Excel,Apache,Apache Poi,Xlsx,我正在使用ApachePOI3.14生成xlsx。所有操作都正常,但在将每个图像添加到工作簿后,性能都会下降。 减慢速度的方法是绘图类的createPicture(锚定,pictureIndex)。 有没有更好的方法将图像添加到xlsx Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, width * Units.EMU_PER_PIXEL, he
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = drawing.createAnchor(0, 0, width *
Units.EMU_PER_PIXEL, height * Units.EMU_PER_PIXEL, columnIndex, rowNum,columnIndex, rowNum);
anchor.setAnchorType(AnchorType.MOVE_AND_RESIZE);
byte[] byteStream = Files.readAllBytes(Paths.get(imagePath));
int pictureIndex = sheet.getWorkbook().addPicture(byteStream, imageType);
drawing.createPicture(anchor, pictureIndex);
我已经对此进行了深入研究,并找到了唯一的解决办法 我写了一篇关于这个的帖子。 我的答案是正确的 尽管这篇文章是用韩语写的,但请考虑周到 然而,这种方式不适合生产服务器,而是用于故障排除
如果您想使用生产服务器,您可能需要在私有存储库(如sonarqube等)中单独管理已编辑的jar)我深入研究了这一点,找到了唯一的解决方法 我写了一篇关于这个的帖子。 我的答案是正确的 尽管这篇文章是用韩语写的,但请考虑周到 然而,这种方式不适合生产服务器,而是用于故障排除
如果您想使用生产服务器,您可能需要在专用存储库(例如sonarqube等)中单独管理已编辑的jar您是否尝试过在开始时只调用一次
CreateDrawingPachur
,然后在整个过程中重新使用它?是,我曾尝试只调用一次CreateDrawingPachura,然后使用GetDrawingPachura,但问题仍然存在,每次调用drawing.createPicture()时,速度都会变慢。请调用create一次,将对它的引用存储在某个位置,然后重新使用它。将所有图形XML处理成友好类的速度很慢!这方面有更新吗?我遇到了完全相同的情况。嗨,我发现问题是ApachePOI版本没有真正流式传输图像。从版本3.17+开始,该问题已得到修复。您是否尝试在开始时只调用一次createDrawingPachura
,并在整个过程中重新使用它?是的,我只尝试调用了一次createDrawingPachura,然后使用GetDrawingPachura,但问题仍然存在,每次我调用drawing.createPicture()它变慢了。调用create一次,将引用存储到某个地方,然后重新使用它。将所有图形XML处理成友好类的速度很慢!这方面有更新吗?我遇到了完全相同的情况。嗨,我发现问题是ApachePOI版本没有真正流式传输图像。该问题已从3.17版修复+