我正在使用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>