1.导入依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15-beta2</version>
</dependency>
2.生成excel
我们从数据库里获得数据生成excel表,这里只是实现最简单的功能
user_id | user_name |
---|---|
101 | 张三 |
102 | 王五 |
103 | 李四 |
@Component
public class PoiDataToExcel {
@Autowired
private UserMapper userMapper; //依赖注入获得mapper
public void excelField() throws IOException {
List<UserEntity> list = userMapper.getAll();
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();//创建excel表
HSSFSheet sheet = hssfWorkbook.createSheet("sheetName");//创建sheet
HSSFRow headerRow = sheet.createRow(0);//创建首行
headerRow.createCell(0).setCellValue("用户id");//创建行内单元格
headerRow.createCell(1).setCellValue("用户姓名");
//遍历list,动态加入到单元格内
for (UseryEntity entity : list) {
//每遍历一次,在末尾行动态添加一行
HSSFRow data = sheet.createRow(sheet.getLastRowNum() + 1);
//动态添加数据
data.createCell(0).setCellValue(entity.getUserId());
data.createCell(1).setCellValue(entity.getUserName());
}
//保存到本地
File file = new File("D:/test.xls");
FileOutputStream outputStream = new FileOutputStream(file);
hssfWorkbook.write(outputStream); //将Excel写入输出流中
outputStream.flush();
outputStream.close();
}
}