2017-07-21 70 views
0

我正在使用Jxls將數據寫入excel文件。Jxls:變壓器爲空

對於我有一個XLS模板R.raw.object_collection_xmlbuilder_template_products_list這是*/res>raw文件夾和XML構建文件R.xml.excel_template_products_list*/res>xml文件夾中。

try (InputStream is = mContext.getResources().openRawResource(R.raw.object_collection_xmlbuilder_template_products_list)) { 
       try (OutputStream os = new FileOutputStream(excel_file)) { 
        Transformer transformer = TransformerFactory.createTransformer(is, os); 

        try (InputStream configInputStream = mContext.getResources().openRawResource(+R.xml.excel_template_products_list)) { 

         AreaBuilder areaBuilder = new XmlAreaBuilder(configInputStream, transformer); 
         List<Area> xlsAreaList = areaBuilder.build(); 
         Area xlsArea = xlsAreaList.get(0); 

         org.jxls.common.Context context = new org.jxls.common.Context(); 
         context.putVar("products", hashmap_list); 

         xlsArea.applyAt(new CellRef("Result!A1"), context); 
         transformer.write(); 
        } 
       } 
      } catch (Exception ex) { 
        aLog.error(ex); 
     } 

但是Transformer對象返回爲null。 而對於線List<Area> xlsAreaList = areaBuilder.build();,它拋出:

Method threw 'java.lang.NoClassDefFoundError' 
exception.org.jxls.builder.xml.AreaAction 

這些都是jar文件我補充說:

'libs/jxls-2.4.0.jar' 
'libs/jxls-poi-1.0.12.jar' 
'libs/slf4j.api-1.6.1.jar' 

一個解決方案建議我加入Maven的依賴,就像這樣:

maven { 
     url "https://repo1.maven.org/maven2/" 
    } 

但我仍然得到例外。

因此,任何想法爲什麼變壓器可能爲空,我該如何修復異常?謝謝。

編輯: 這是XML內容:

<?xml version="1.0" encoding="utf-8"?> 
<xls> 
    <area ref="Template!A1:T31"> 
     <each items="products" var="products" ref="Template!A4:T31"> 
      <area ref="Template!A4:T31"/> 
     </each> 
    </area> 
</xls> 

這是XLS模板:enter image description here

回答

0

檢查jxls-demo項目回購看到JXLS依賴關係是如何配置Maven項目。