有一个优雅的方式来从列表<POJO>生成Excel电子表格? (JAVA)

在Java中,有没有一种优雅的方式来从列表生成Excel电子表格?

有两种可能的和完全不同的方法:

  • 写一个CSV文件。 这是逗号分隔的,你只需将你的字段用逗号分隔,写成一个扩展名为.csv的文件。 Excel可以读得很好,而且非常简单。

  • 使用Apache / Jakarta POI ,一个库来编写完全格式化,与Office兼容的Excel文件(Excel 95,2003,…各种标准)。 这需要更多的工作。

正如之前的答案所暗示的,CSV是一种简单的方法,但是Excel有一个推断数据types的习惯 – 例如,如果一个string看起来像一个数字,它将被格式化为一个数字,即使你有双精度数字,引用它。 如果你想要更多的控制,你可以尝试生成Excel XML,在你的情况下可能会使用一个模板,并生成一个有点像HTML表格的表。 查看一个简单的Excel XML文档的例子。

是。 使用sep4j,你可以在用HashMap定义标题后在一行中完成。

Collection<User> users = Arrays.asList(user1, user2); LinkedHashMap<String, String> headerMap = new LinkedHashMap<String, String>(); headerMap.put("userId", "User Id"); //"userId" is a property of User class. // "User Id" will be the column header in the excel. headerMap.put("firstName", "First Name"); headerMap.put("lastName", "Last Name"); ExcelUtils.save(headerMap, users, outputStream);