springboot导出数据到Excel表格

springboot导出数据到Excel表格

开发工具与关键技术:Java springboot 
作者:熊俊杰
撰写时间:2021.6.18

在使用导出的时候,pom.xml先引用poi框架

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>

接下来就可以直接使用这个框架来导出数据了

//导出数据
 public void Daochuassigns1(String assignsname, String isactive, HttpServletResponse response) throws IOException{    
  List<x_assigns> xa = xAssignsservices.daochushuju(assignsname,isactive);//查询出来的数据
        int count = xa.size();
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("导出数据");//模板名称
        HSSFRow row = null;
        row = sheet.createRow(0);//创建第一个单元格
        row.setHeight((short) (26*20));//单元格的行高
        row.createCell(0).setCellValue("站点信息列表");//第一行单元格信息
        /*为标题设置表格以及内容
        * firstRow:从第一行开始
        * lastRow:从第0行结束
        * firstCol:从第一个单元格开始
        * lastCol:从第*个单元格结束
        * */
        CellRangeAddress rowRegin = new CellRangeAddress(0,0,0,3);
        sheet.addMergedRegion(rowRegin);

        row = sheet.createRow(1);
        row.setHeight((short) (22*20));//单元格的行高
        row.createCell(0).setCellValue("名称");//第一行单元格信息
        row.createCell(1).setCellValue("联系电话");//第二行单元格信息
        row.createCell(2).setCellValue("地址");//第三行单元格信息
        row.createCell(3).setCellValue("坐标");//第四行单元格信息
        //遍历所有数据
        for (int i=0;i < count;i++){
            x_assigns x = xa.get(i);
            row = sheet.createRow(i+2);
            //row.setHeight((short) (17*20));//单元格的行高
            row.createCell(0).setCellValue(x.getAssignsname());//第一行单元格信息
            row.createCell(1).setCellValue(x.getAssignsphone());//第二行单元格信息
            row.createCell(2).setCellValue(x.getAssignssite());//第三行单元格信息
            row.createCell(3).setCellValue(x.getCoordinates());//第四行单元格信息
        }
        sheet.setDefaultRowHeight((short) (17*20));
        //列宽自适应
        for (int i =0;i<=13;i++){
            sheet.autoSizeColumn(i);
        }
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
        OutputStream os = response.getOutputStream();
        response.setHeader ("Content-disposition","attachment;filename=导出数据.xls");//文件名称
        wb.write(os);
        os.flush();
        os.close();
    }

还有一种更简单的导出方式,pom.xml引用easypoi导出excel表格

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>4.0.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>4.0.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>4.0.0</version>
</dependency>

在对应的实体类里面使用刚刚引用的框架,然后写上对应类的名称
在这里插入图片描述

然后直接通过下面的方法导出数据

//导出数据
@RequestMapping(value = "/Daochuassigns")//easypoi导出,method = RequestMethod.GET
public void Daochuassigns(String assignsname, String isactive, HttpServletResponse response) throws IOException {
List<x_assigns> xa = xAssignsservices.daochushuju(assignsname,isactive);//查询出数据
    //设置序号(将id字段作为序号,导出后实现序号递增)
    Integer i =1;
    for (x_assigns assigns : xa) {
        assigns.setAssignsid(i++);
    }
    // 导出操作
    ExcelUtils.exportExcel(xa, "报名点报表", "导出报名点", x_assigns.class, "报名点报表.xls", response);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值