package com.learn;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* <dependency>
* <groupId>org.apache.poi</groupId>
* <artifactId>poi-ooxml</artifactId>
* <version>3.17</version>
* </dependency>
* <dependency>
* <groupId>org.apache.poi</groupId>
* <artifactId>poi</artifactId>
* <version>3.17</version>
* </dependency>
*/
@Slf4j
public class WriteExcelUtil {
public static ByteArrayOutputStream writeExcel(Map<Integer, List<String>> map){
ByteArrayOutputStream bos = null;
try {
//创建工作簿
Workbook workbook = new XSSFWorkbook();
//创建工作表
Sheet sheet = workbook.createSheet("工资表");
//写入数据
Iterator<Integer> it = map.keySet().iterator();
int rowNumber = 0;
while (it.hasNext()){
//获取行信息
Integer rowNum = it.next();
Row row = sheet.createRow(rowNumber);
++rowNumber;
List<String> rowValue = map.get(rowNum);
//将行数据写入
for (int cellNum = 0; cellNum < rowValue.size(); cellNum++) {
Cell cell = row.createCell(cellNum);
cell.setCellValue(rowValue.get(cellNum));
}
}
bos = new ByteArrayOutputStream();
workbook.write(bos);
log.info("文件写入完成");
return bos;
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
(42条消息) POI读取excel。读取MultipartFile格式的excel文件_杜763的博客-CSDN博客。