如何使用SpringBoot: SpringBoot创建导出Excel的接口

  介绍

这篇文章将为大家详细讲解有关如何使用SpringBoot: SpringBoot创建导出Excel的接口,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在Web项目中,难免需要导出Excel这样的功能,后端接口怎么实现呢,控制器代码在下面,复制到项目的控制器中即可使用:

<强>首先加入Excel的依赖,本例中我们用apache的poi:

& lt; dependency>   & lt; groupId> org.apache.poi   & lt; artifactId> poi   & lt; version> 3.17 & lt;/version>   & lt;/dependency>

<强>后台导出Excel的控制器接口代码:

进口org.apache.poi.hssf.usermodel。*;
  进口org.springframework.stereotype.Controller;
  进口org.springframework.web.bind.annotation.RequestMapping;
  
  进口javax.servlet.http.HttpServletResponse;
  进口java.io.IOException;
  
  @ controller
  公开课ExcelController {/* *
  * Excel表格导出接口
  * http://localhost: 8080/ExcelDownload
  * @param响应响应对象
  * @throws IOException抛IO异常
  */@RequestMapping (“/ExcelDownload")
  公共空间excelDownload (HttpServletResponse响应)抛出IOException {//表头数据
  String[]头={“ID",“姓名“,“性别“,“年龄“,“地址“,“分数“};//数据内容
  String[]学生1={“1“,“小红”、“女”,“23”,“成都青羊区“,“96“};
  String[]学生二={“2“,“小强“,“男”,“26”,“成都金牛区“,“91“};
  String[]学生三={“3“,“小明“,“男”、“28”,“成都武侯区“,“90“};//声明一个工作簿
  HSSFWorkbook工作簿=new HSSFWorkbook ();//生成一个表格,设置表格名称为“学生表“
  HSSFSheet表=workbook.createSheet(“学生表“);//设置表格列宽度为10个字节
  sheet.setDefaultColumnWidth (10);//创建第一行表头
  HSSFRow headrow=sheet.createRow (0);//遍历添加表头(下面模拟遍历学生,也是同样的操作过程)
  for (int i=0;我& lt;header.length;我+ +){//创建一个单元格
  HSSFCell细胞=headrow.createCell(我);//创建一个内容对象
  HSSFRichTextString文本=new HSSFRichTextString(头[我]);//将内容对象的文字内容写入到单元格中
  cell.setCellValue(文本);
  }//模拟遍历结果集,把内容加入表格//模拟遍历第一个学生
  HSSFRow第一行=sheet.createRow (1);
  for (int i=0;我& lt;student1.length;我+ +){
  HSSFCell细胞=row1.createCell(我);
  HSSFRichTextString文本=new HSSFRichTextString(学生1[我]);
  cell.setCellValue(文本);
  }//模拟遍历第二个学生
  HSSFRow row2=sheet.createRow (2);
  for (int i=0;我& lt;student2.length;我+ +){
  HSSFCell细胞=row2.createCell(我);
  HSSFRichTextString文本=new HSSFRichTextString(学生二[我]);
  cell.setCellValue(文本);
  }//模拟遍历第三个学生
  HSSFRow row3=sheet.createRow (3);
  for (int i=0;我& lt;student3.length;我+ +){
  HSSFCell细胞=row3.createCell(我);
  HSSFRichTextString文本=new HSSFRichTextString(学生三[我]);
  cell.setCellValue(文本);
  }//准备将Excel的输出流通过反应输出到页面下载//八进制输出流
  response.setContentType(“应用程序/octet-stream");//这后面可以设置导出Excel的名称,此例中名为student.xls
  response.setHeader (“Content-disposition",“附件文件名=student.xls");//刷新缓冲
  response.flushBuffer ();//Excel工作簿将写入到响应的输出流中,供页面下载
  workbook.write (response.getOutputStream ());
  }
  }

<>强然后访问接口,弹出页面:

如何使用SpringBoot: SpringBoot创建导出Excel的接口

<强>下载该Excel,打开后如下图:

如何使用SpringBoot: SpringBoot创建导出Excel的接口

至此为止,SpringBoot的后台控制器接口导出Excel数据表,已成功实现!

<强>后来我封装了一个静态方法,可以在项目中作为工具类使用:

进口org.apache.poi.hssf.usermodel。*;
  进口javax.servlet.http.HttpServletResponse;
  进口java.io.IOException;
  进口并不知道;/* *
  * Excel工具类
  */公开课ExcelUtil {/* *
  * Excel表格导出
  * @param响应HttpServletResponse对象
  * @param excelData Excel表格的数据,封装为List比;
  * @param sheetName表的名字
  * @param文件名导出Excel的文件名
  * @param columnWidth Excel表格的宽度,建议为15
  * @throws IOException抛IO异常
  */公共静态孔隙exportExcel (HttpServletResponse响应,
  List

如何使用SpringBoot: SpringBoot创建导出Excel的接口