gpt4 book ai didi

java - 如何使用 apache-poi 在列中显示对象

转载 作者:行者123 更新时间:2023-12-02 10:18:02 25 4
gpt4 key购买 nike

我有一个包含 234 个字段的大型 DTO,我必须在使用 apache-poi 创建的 Excel 文件的列中显示此 DTO 的每个字段的值。

这是我的代码:

// Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();

Sheet sheet = workbook.createSheet("Export values");

// Get the Entity
Simfoot simEntity = simService.findById(simId).get();

Row row = sheet.createRow(0);
row.createCell(1).setCellValue("Consult our values");

// and after this I want to convert my Simfoot object to a column in the third column ( so creteCell(2) ..... ).

我想在我的第一列中没有任何内容,在我的第二列中只显示字符串(“咨询我们的值”),在我的第三列中我需要有 234 个字段。在一个单元格中包含一个字段(字段的值)。因此,234 行在第三列中显示一个值。

我希望这是清楚的。

非常感谢您的帮助。

最佳答案

使用一些反射:

    // Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();

final Sheet sheet = workbook.createSheet("Export values");

// Get the Entity
final Simfoot simEntity = simService.findById(simId).get();

Row row = sheet.createRow(0);
row.createCell(1).setCellValue("Consult our values");

// and after this I want to convert my Simfoot object to a column in the third column ( so creteCell(2) ..... ).
Arrays.stream(simEntity.getClass().getDeclaredMethods())
.filter(m -> m.getName().startsWith("get") && m.getParameterTypes().length == 0 && !void.class.equals(m.getReturnType()))
.forEach(m -> {
try {
Object value = m.invoke(simEntity, null);
Row r = sheet.createRow(sheet.getLastRowNum()+1);
r.createCell(2).setCellValue(value == null ? "" : value.toString());
}
catch (Exception ex) {
// Manage Exception....
}
});

关于java - 如何使用 apache-poi 在列中显示对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54534966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com