2016-02-15 2 views
0

Я пытаюсь создать форму excel с помощью библиотеки jxls.jxls - привязка нескольких строк (список) не работает

мой шаблон Эксел:

enter image description here

, когда я просто добавить одну карту, чтобы перечислить и связать его, он работает. мой код просто:

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(); ..... 

success_result

, но когда я добавить несколько карту, чтобы перечислить и связать его, он не бросает исключение. Я слышал, что библиотека jxls автоматически распознает список. Что я делаю worng?

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) 

ответ

0

Ошибка Вы получаете java.lang.NoSuchMethodError:org.apache.poi.ss.usermodel.Sheet.getSheetConditionalFormatting скорее всего, означает, что у вас есть проблемы с версиями POI.

Поэтому, пожалуйста, проверьте версию Apache POI вы используете, и если он поддерживает Sheet.getSheetConditionalFormatting() метод

+0

Я проверил POI 3,7, что я использую. Метод не существует. Я запустил его до 3,9, и он решил. Спасибо господину Высочину :) – user2080563

Смежные вопросы