Java将两个list数据写入同一个excel文件的两张sheet里
时间: 2024-10-20 14:07:02 浏览: 20
在Java中,可以使用Apache POI库来操作Excel文件,包括读写。要将两个List数据分别写入Excel的不同sheet中,你可以按照以下步骤操作:
1. 首先,确保已经添加了Apache POI依赖到项目中。如果没有,可以从Maven仓库导入`poi`, `poi-ooxml`和`poi-ooxml-schemas`这三个依赖。
```xml
<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>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>
```
2. 创建一个Workbook对象,并添加新的Sheet。
```java
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet1 = workbook.createSheet("Sheet1");
XSSFSheet sheet2 = workbook.createSheet("Sheet2");
```
3. 对每个List遍历,将数据写入对应sheet的行。
```java
import org.apache.poi.ss.usermodel.*;
// 假设你有两个List,如Map<String, List<String>> dataMap
for (Map.Entry<String, List<String>> entry : dataMap.entrySet()) {
String sheetName = entry.getKey();
XSSFSheet sheet = sheetName.equals("Sheet1") ? sheet1 : sheet2;
for (int i = 0; i < entry.getValue().size(); i++) {
// 获取当前行
Row row = sheet.createRow(i + 1);
// 写入单元格数据
int cellIndex = 0;
for (String value : entry.getValue()) {
Cell cell = row.createCell(cellIndex++);
cell.setCellValue(value);
}
}
}
```
4. 最后,保存整个workbook。
```java
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
// 关闭工作簿以释放资源
workbook.close();
```
阅读全文