Jxls:Transformer为null

时间:2017-07-21 15:06:26

标签: java android maven transformer jxls

我正在使用Jxls将数据写入excel文件。

为此,我有一个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 Object返回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

1 个答案:

答案 0 :(得分:0)

检查jxls-demo项目仓库以了解如何为Maven项目配置Jxls依赖项。