jXLS jx:image以java.lang.IllegalArgumentException结尾:imgBean值必须包含图像字节

我想用jXLS 2.2.3将图像放在XLS文件模板中

XLS模板定义如下:

单元格A1,添加注释:jx:area(lastCell =“L10”)

单元格A10,添加评论:jx:each(items =“rows”var =“r”lastCell =“L10”)

单元格D10,添加评论:jx:image(imgBean =“r.barcodeJpgImage”imageType =“JPEG”lastCell =“L10”)

当我执行代码时:

ByteArrayOutputStream fos = new ByteArrayOutputStream(); //fis is template file input stream, fos is the output Transformer transformer = TransformerFactory.createTransformer(fis, fos); AreaBuilder areaBuilder = new XlsCommentAreaBuilder(transformer); List<Area> xlsAreaList = areaBuilder.build(); Area xlsArea = xlsAreaList.get(0); Context context = new Context(); for (Map.Entry<String, Object> entry : beans.entrySet()) { context.putVar(entry.getKey(), entry.getValue()); } xlsArea.applyAt(new CellRef(0,0), context); transformer.write(); 

我得到这个例外:

引起:java.lang.IllegalArgumentException:imgBean的值必须包含图像字节(byte [])在org.jxls.command.ImageCommand.applyAt(ImageCommand.java:76)在org.jxls.area.XlsArea.applyAt(XlsArea。 java:142)at org.jxls.command.EachCommand.applyAt(EachCommand.java:177)at org.jxls.area.XlsArea.applyAt(XlsArea.java:142)

variablesr.barcodeJpgImage不为空,并包含JPEG图像字节。

任何想法可能是错的?!

  1. 升级到jxls-2.2.5或更高版本
  2. 像这样指定Image-command

    jx:image(src =“r.barcodeJpgImage”imageType =“JPEG”lastCell =“L10”)