JAVA根据传入的数据个数异步导出同样多列的Excel表格
时间: 2024-02-23 07:58:07 浏览: 68
你可以使用Java中的线程池来实现异步导出同样多列的Excel表格。以下是一个示例代码:
```
public void exportExcel(List<List<String>> dataList) {
ExecutorService executorService = Executors.newFixedThreadPool(dataList.size());
for (int i = 0; i < dataList.size(); i++) {
List<String> data = dataList.get(i);
executorService.submit(() -> {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet" + (i + 1));
Row header = sheet.createRow(0);
for (int j = 0; j < data.size(); j++) {
header.createCell(j).setCellValue("列" + (j + 1));
}
Row dataRow = sheet.createRow(1);
for (int j = 0; j < data.size(); j++) {
dataRow.createCell(j).setCellValue(data.get(j));
}
try {
FileOutputStream outputStream = new FileOutputStream("path/to/excel" + (i + 1) + ".xlsx");
workbook.write(outputStream);
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
});
}
executorService.shutdown();
}
```
这里使用了一个线程池来异步执行导出Excel表格的任务。线程池的大小与数据列表的大小相同,每个任务都会创建一个工作簿和工作表,并将数据写入到表格中。最后,每个任务都会将表格写入到磁盘上。你可以根据自己的需求修改代码。
阅读全文