Java一个sheet页下导出多个表
时间: 2023-09-03 08:13:23 浏览: 146
java导出包含多个sheet的Excel代码示例
在Java中,你可以使用Apache POI库来实现一个sheet页下导出多个表的功能。以下是一个简单的示例代码:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelExporter {
public static void exportSheetsToExcel() {
try (Workbook workbook = new XSSFWorkbook()) {
// 创建新的Sheet页
Sheet sheet = workbook.createSheet("多表导出");
// 创建第一个表格
createTable(sheet, "表格1", new String[] {"列1", "列2", "列3"}, new Object[][] {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
// 创建第二个表格
createTable(sheet, "表格2", new String[] {"列A", "列B", "列C"}, new Object[][] {{"a", "b", "c"}, {"d", "e", "f"}, {"g", "h", "i"}});
// 保存Excel文件
try (FileOutputStream outputStream = new FileOutputStream("多表导出.xlsx")) {
workbook.write(outputStream);
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 创建表格
private static void createTable(Sheet sheet, String tableName, String[] headers, Object[][] data) {
// 创建新的行,并设置表格名称
Row row = sheet.createRow(sheet.getLastRowNum() + 1);
Cell cell = row.createCell(0);
cell.setCellValue(tableName);
// 创建表头
row = sheet.createRow(sheet.getLastRowNum() + 1);
for (int i = 0; i < headers.length; i++) {
cell = row.createCell(i);
cell.setCellValue(headers[i]);
}
// 填充数据
for (int i = 0; i < data.length; i++) {
row = sheet.createRow(sheet.getLastRowNum() + 1);
for (int j = 0; j < data[i].length; j++) {
cell = row.createCell(j);
cell.setCellValue(data[i][j].toString());
}
}
// 添加空行
sheet.createRow(sheet.getLastRowNum() + 1);
}
}
```
在这个示例代码中,我们使用`createTable`方法来创建每个表格,并将它们添加到同一个sheet页中。然后,我们使用`Workbook.write`方法将数据写入Excel文件中。
请注意,这个示例代码中的数据是硬编码的,你需要根据实际情况进行修改。
阅读全文