Java多sheet导出
时间: 2023-09-03 08:15:42 浏览: 98
导数据到多个sheet
在Java中进行多sheet导出可以使用Apache POI库来实现。以下是一个基本的示例代码:
```java
public class ExcelExporter {
public static void exportToExcel(Map<String, List<Object[]>> data, String filePath) throws IOException {
// 创建工作簿对象
Workbook workbook = new XSSFWorkbook();
// 遍历每个sheet,创建并写入数据
for (Map.Entry<String, List<Object[]>> entry : data.entrySet()) {
String sheetName = entry.getKey();
List<Object[]> sheetData = entry.getValue();
// 创建sheet对象
Sheet sheet = workbook.createSheet(sheetName);
// 写入表头
Row headerRow = sheet.createRow(0);
for (int i = 0; i < sheetData.get(0).length; i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue("列" + (i + 1));
}
// 写入数据
int rowNum = 1;
for (Object[] rowData : sheetData) {
Row row = sheet.createRow(rowNum++);
for (int i = 0; i < rowData.length; i++) {
Cell cell = row.createCell(i);
cell.setCellValue(rowData[i].toString());
}
}
}
// 将工作簿写入文件
FileOutputStream fos = new FileOutputStream(filePath);
workbook.write(fos);
fos.close();
}
}
```
其中,`data`参数是一个`Map`,键为sheet名称,值为该sheet的数据,每个数据项为一个`Object`数组,表示一行数据。调用该方法即可将数据导出到指定路径的Excel文件中。
使用示例:
```java
public static void main(String[] args) throws IOException {
// 构造数据
Map<String, List<Object[]>> data = new HashMap<>();
List<Object[]> sheet1Data = new ArrayList<>();
sheet1Data.add(new Object[]{"A1", "B1", "C1"});
sheet1Data.add(new Object[]{"A2", "B2", "C2"});
data.put("Sheet1", sheet1Data);
List<Object[]> sheet2Data = new ArrayList<>();
sheet2Data.add(new Object[]{"D1", "E1", "F1"});
sheet2Data.add(new Object[]{"D2", "E2", "F2"});
data.put("Sheet2", sheet2Data);
// 导出到Excel文件
ExcelExporter.exportToExcel(data, "output.xlsx");
}
```
阅读全文