Jxls:如何以编程方式定义模板并在变换器中使用?
我正在使用Jxls输出数据到Excel。 没有。 的列不是固定的,取决于谁在调用它。 那么如何以编程方式定义模板?
在Jxls文档中,有三种方法,使用excel标记,xml标记和Java Apis。 使用Java Apis,定义了XmlArea,但其中一个构造函数将变换器作为参数
public XlsArea(AreaRef areaRef, Transformer transformer); public XlsArea(String areaRef, Transformer transformer); public XlsArea(CellRef startCell, CellRef endCell, Transformer transformer); public XlsArea(CellRef startCellRef, Size size, List<CommandData> commandDataList, Transformer transformer);
Transformer constructor
需要一个inputinputstream
,它需要一个template
文件。
InputStream in = IdGenre.class.getResourceAsStream("/xlsTemplates/IdGenre/IdGenreTemplate.xlsx"); Transformer transformer = TransformerFactory.createTransformer(in, out);
根据我的理解, template
是在哪里定义了什么值在列中。
使用SimpleExporter
:
try(OutputStream os1 = new FileOutputStream("target/simple_export_output1.xls")) { List<Employee> employees = generateSampleEmployeeData(); List<String> headers = Arrays.asList("Name", "Birthday", "Payment"); SimpleExporter exporter = new SimpleExporter(); exporter.gridExport(headers, employees, "name, birthDate, payment", os1);
It requires a transformer and throws exception.
java.lang.NullPointerException: Attempt to invoke interface method 'java.util.List org.jxls.transform.Transformer.getCommentedCells()' on a null object reference
如何以编程方式创build模板,或者如何使用SimpleExporter
? 任何帮助深表感谢。 谢谢。