[英]jxls - multiple row (list) binding doesn't work
我正在嘗試使用jxls庫創建excel表單。
我的excel模板是:
當我僅將一張地圖添加到列表並綁定它時,它就可以工作。 我的代碼很簡單:
List<Map<String,Object>> sss = new ArrayList();
HashMap<String,Object> sm = new HashMap<String,Object>();
sm.put("name1", "AtestName");
sm.put("name2", "AtestName2");
sm.put("name3", "AtestName3");
sss.add(sm);
Map<String, Object> model = new HashMap<String,Object>();
model.put("sData", sss);
.... XLSTransformer transformer = new XLSTransformer(); .....
但是當我將多個地圖添加到列表並綁定它時,它無法引發異常。 聽說jxls庫會自動識別列表。 我在做什么?
List<Map<String,Object>> sss = new ArrayList();
HashMap<String,Object> sm = new HashMap<String,Object>();
sm.put("name1", "AtestName");
sm.put("name2", "AtestName2");
sm.put("name3", "AtestName3");
sss.add(sm);
HashMap<String,Object> sm2 = new HashMap<String,Object>();
sm.put("name1", "BtestName");
sm.put("name2", "BtestName2");
sm.put("name3", "BtestName3");
sss.add(sm2);
HashMap<String,Object> sm3 = new HashMap<String,Object>();
sm.put("name1", "CtestName");
sm.put("name2", "CtestName2");
sm.put("name3", "CtestName3");
sss.add(sm3);
Map<String, Object> model = new HashMap<String,Object>();
model.put("sData", sss);
.... XLSTransformer transformer = new XLSTransformer(); .....
[ 06:15:10] DEBUG - AbstractExcelView.renderMergedOutputModel(140) | Created Excel Workbook from scratch
[ 06:15:10] DEBUG - SheetTransformer.transformSheet(72) | Processing sheet: Sheet1
[ 06:15:10] DEBUG - CollectionRowTransformer.processRowCollections(96) | ----collection-property--------->sData
, 2016 6:15:10 오후 org.apache.catalina.core.StandardWrapperValve invoke
: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Sheet.getSheetConditionalFormatting()Lorg/apache/poi/ss/usermodel/SheetConditionalFormatting;
at net.sf.jxls.util.Util.copyConditionalFormat(Util.java:642)
at net.sf.jxls.util.Util.copyCell(Util.java:569)
at net.sf.jxls.util.Util.duplicateStyle(Util.java:411)
at net.sf.jxls.util.Util.duplicateRow(Util.java:244)
at net.sf.jxls.controller.SheetTransformationControllerImpl.duplicateRow(SheetTransformationControllerImpl.java:140)
at net.sf.jxls.transformer.CollectionRowTransformer.processRowCollections(CollectionRowTransformer.java:106)
at net.sf.jxls.transformer.CollectionRowTransformer.transform(CollectionRowTransformer.java:66)
at net.sf.jxls.transformer.SheetTransformer.transformSheet(SheetTransformer.java:88)
at net.sf.jxls.transformer.XLSTransformer.transformWorkbook(XLSTransformer.java:248)
at net.sf.jxls.transformer.XLSTransformer.transformXLS(XLSTransformer.java:221)
您收到java.lang.NoSuchMethodError:org.apache.poi.ss.usermodel.Sheet.getSheetConditionalFormatting
的錯誤很可能意味着您的POI版本存在問題。
因此,請檢查您使用的Apache POI版本以及它是否支持Sheet.getSheetConditionalFormatting()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.