2

我想使用 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 值必须在 org.jxls.area.XlsArea.applyAt(XlsArea. java:142) 在 org.jxls.command.EachCommand.applyAt(EachCommand.java:177) 在 org.jxls.area.XlsArea.applyAt(XlsArea.java:142)

变量r.barcodeJpgImage不为空并且包含 JPEG 图像字节。

知道可能出了什么问题吗?!

4

1 回答 1

1
  1. 升级到 jxls-2.2.5 或更高版本
  2. 像这样指定图像命令

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

于 2015-09-04T22:27:03.353 回答