在我的web应用程序中,我需要将MySQL原生查询结果导出到Excel文件中。我事先不知道query中有多少列,也不能为它创建任何预定义的类。
我搜索了很多,但没有找到任何可以将任何MySQL原生查询结果导出到Excel文件的东西。
有人能告诉我怎样才能做到这一点吗?
发布于 2021-01-14 01:55:21
您可以使用apache-poi库。您的代码将如下所示:
public class ExcelFile {
private final List<Object[]> data;
private final String filePath;
public ExcelFile(final List<Object[]> data, final String filePath) {
this.data = data;
this.filePath = filePath;
}
public void export() {
try (XSSFWorkbook workbook = new XSSFWorkbook()) {
XSSFSheet sheet = workbook.createSheet();
fillSheet(sheet);
workbook.write(new FileOutputStream(filePath));
} catch (IOException ignore) {
ignore.printStackTrace();
}
}
private void fillSheet(final XSSFSheet sheet) {
for (int i = 0; i < data.size(); i++) {
XSSFRow excelRow = sheet.createRow(i);
Object[] dbRow = data.get(i);
fillRow(excelRow, dbRow);
}
}
private void fillRow(final XSSFRow row, final Object[] dbRow) {
for (int j = 0; j < dbRow.length; j++) {
XSSFCell cell = row.createCell(j);
cell.setCellValue(String.valueOf(dbRow[j]));
}
}
}Maven依赖关系:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>完整示例:here
https://stackoverflow.com/questions/65704046
复制相似问题