2015-09-04 47 views
2

我希望把圖像中的XLS文件模板與JXLS 2.2.3JXLS JX:與java.lang.IllegalArgumentException異常圖像結束:imgBean值必須包含圖像的字節數

XLS模板的定義如下:

細胞A1,添加的註釋: JX:區域(lastCell = 「L10」)

細胞A10,添加的註釋: JX:每個(項= 「行」 VAR = 「R」 lastCell = 「L10」)

單元格D10,添加評論: JX:圖像(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 []) at org.jxls.command.ImageCommand.applyAt(ImageCommand.java:76) at org.jxls.area.XlsArea.applyAt (XlsArea.java:142) at org.jxls.command.EachCommand.applyAt(EachCommand.ja VA:177) 在org.jxls.area.XlsArea.applyAt(XlsArea.java:142)

變量r.barcodeJpgImage不爲空,並且包含JPEG圖像字節。

任何想法可能是錯的?

+0

jxls-2中的Image-command直到v2.2.4不支持從bean屬性評估圖像。這個支持可能會在即將發佈的v2.2.5版本中加入。 –

回答

1
  1. 升級到JXLS-2.2.5或更高
  2. 指定Image-command這樣

    JX:圖像(SRC = 「r.barcodeJpgImage」 IMAGETYPE = 「JPEG」 lastCell = 「L10」)

+0

謝謝Leonid!這解決了我所描述的問題,所以我將其標記爲正確的答案。但是,還有一個 - 我沒有看到XLS文件中的圖片。沒有錯誤被拋出。字節數組被傳遞給lib。與模板中的單元格大小相比,圖片相當大。這可能是一個問題?! –

+0

很難說這有什麼問題。嘗試調整jxls-demo項目中的ImageDemo示例以使用您的圖片並查看它是否適合您。 –

+0

我無法在網站上找到該演示。儘管我花了一些時間進行調試。對於我在問題中描述的測試用例,我只有1行。我改變圖像格式PNG和lastCell是D10 我發現在org.jxls.transform.jexcel.JexcelTransformer,線路191問題: sheet.addImage(新WritableImage(areaRef.getFirstCellRef()getCol() areaRef.getFirstCellRef()。getRow(), areaRef.getLastCellRef()。getCol() - areaRef.getFirstCellRef()。getCol(), areaRef.getLastCellRef()。getRow() - areaRef.getFirstCellRef()。getRow() ),imageBytes)); 參數寬度和高度爲0. –

相關問題