我正在使用Jxls将数据输出到excel。没有。列不是固定的,取决于谁在调用它。那么如何以编程方式定义模板?
在Jxls文档中,有三种方法可以使用excel标记,xml标记和Java Apis。使用Java Apis,定义了XmlArea,但其中一个构造函数将transform作为参数
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
需要inputstream
,这需要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
如何以编程方式创建模板或如何使用SimpleExporter
?任何帮助深表感谢。谢谢。