我的 java spring boot 应用程序需要根据我的数据库内容创建一个新的 excel 文件。我当前的解决方案将数据库中的所有数据放入我的 Excel 工作表中,但我想通过不说明单元格值是什么来改进它。例如,虽然它有效,但我的解决方案有 34 个字段,因此我为每个重复字段声明 userRow.createCell 行 34 次。理想情况下,我想说创建单元格(n)并获取数据库中每一行的所有值。如何才能做到这一点?这个 for 循环中还有另一个 for 循环?我在网上看到的每个例子似乎都具体说明了单元格的值是什么。
List<CaseData> cases = (List<CaseData>) model.get("cases");
Sheet sheet = workbook.createSheet("PIE Cases");
int rowCount = 1;
for (CaseData pieCase : cases) {
Row userRow = sheet.createRow(rowCount++);
userRow.createCell(0).setCellValue(pieCase.getCaseId());
userRow.createCell(1).setCellValue(pieCase.getAcknowledgementReceivedDate());
}
最佳答案
示例:
try {
Class caseDataObj = CaseData.class;
Method [] methods = caseDataObj.getDeclaredMethods();
Sheet sheet = workbook.createSheet("PIE Cases");
int rowCount = 1;
for(CaseData cd : cases) {
int cellIndex = 0;
Row userRow = sheet.createRow(rowCount++);
for (Method method : methods) {
String methodName = method.getName();
if(methodName.startsWith("get")) {
// Assuming all getters return String
userRow.createCell(cellIndex++).setCellValue((String) method.invoke(cd));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
关于java - Apache POI Java - 写入 Excel 并动态更新单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58977124/