我正在使用Jxls将数据写入到excel文件中。
为此,我有一个xls模板R.raw.object_collection_xmlbuilder_template_products_list,它位于*/res>raw文件夹中,而xml builder文件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模板:

发布于 2017-07-24 16:30:23
查看jxls-demo项目存储库,了解如何为Maven项目配置Jxls依赖项。
https://stackoverflow.com/questions/45240990
复制相似问题