介绍
这篇文章将为大家详细讲解有关如何使用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 ()); } }
<>强然后访问接口,弹出页面:强>
<强>下载该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的接口