Springboot⽣成并导出Excel(使⽤POI)
 ⽂件下载的⼯作原理还是依靠了HTTP协议提供了⽂件下载功能。
  SpringBoot集成POI,导出excel⽂件⾮常⽅便。⾸先引⼊所需要的poi  jar包,然后在Controller层实现相关的业务代码即可。话不多说,直接上代码吧。
1.配置l
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
2.在controller层添加如下代码:
import org.apache.poi.hssf.usermodel.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Excel表格导出接⼝
* localhost:8080/ExcelDownload
* @param response response对象
* @throws IOException 抛IO异常
*/
@RequestMapping("/ExcelDownload")
public void excelDownload(HttpServletResponse response) throws IOException {
//表头数据
String[] header = {"姓名", "⼯号", "性别", "出⽣⽇期", "⾝份证号码", "婚姻状况","民族","籍贯","政治⾯貌","电⼦邮件","电话号码","联系地址","所属部门","职位","职称","聘⽤形式","⼊职⽇期","转正⽇期","合同起始⽇期","合同截⽌⽇期//声明⼀个⼯作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//⽣成⼀个表格,设置表格名称为"学⽣表"
HSSFSheet sheet = ateSheet("员⼯表");
//设置表格列宽度为10个字节
sheet.setDefaultColumnWidth(10);
//创建标题的显⽰样式
HSSFCellStyle headerStyle = ateCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//创建第⼀⾏表头
HSSFRow headrow = ateRow(0);
//遍历添加表头(下⾯模拟遍历学⽣,也是同样的操作过程)
for (int i = 0; i < header.length; i++) {
//创建⼀个单元格
HSSFCell cell = ateCell(i);
//创建⼀个内容对象
HSSFRichTextString text = new HSSFRichTextString(header[i]);
/
/将内容对象的⽂字内容写⼊到单元格中
cell.setCellValue(text);
cell.setCellStyle(headerStyle);
}
//获取所有的employee
List<Employee> AllEmpNonLimit();
for(int i=0;i<emps.size();i++){
//创建⼀⾏
HSSFRow row1 = ateRow(i+1);
//第⼀列创建并赋值
/
/第⼆列创建并赋值
//第三列创建并赋值
//第4列创建并赋值
(i).getBirthday() != null){
}
//第5列创建并赋值
//第6列创建并赋值
//第7列创建并赋值
<(i).getNationName());
//籍贯
//第8列创建并赋值
//第9列创建并赋值
//第10列创建并赋值
//第11列创建并赋值
//第12列创建并赋值
//第13列创建并赋值
//第14列创建并赋值
//第15列创建并赋值
(i).getEngageForm() != null){
}
//第16列创建并赋值-⼊职⽇期
(i).getBeginDate()!= null){
}
//转正⽇期
(i).getConversionTime() != null){
}
//合同起始⽇期
(i).getBeginContract() != null){
}
//合同截⽌⽇期
(i).getEndContract() != null){
//第20列创建并赋值-合同期限
(i).getContractTerm() != null){
springframework jar包下载}
//第21列创建并赋值-最⾼学历
if( (i).getTiptopDegree() != null){
}
}
//准备将Excel的输出流通过response输出到页⾯下载
//⼋进制输出流
response.setContentType("application/octet-stream");
//这后⾯可以设置导出Excel的名称,此例中名为student.xls
response.setHeader("Content-disposition", "attachment;filename=employee.xls");
/
/刷新缓冲
response.flushBuffer();
//workbook将Excel写⼊到response的输出流中,供页⾯下载
workbook.OutputStream());
}
4.实现效果图:
还是很简单的!
吾知也有涯⽽⽣也⽆涯!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。