Java导出浏览器下载

这里写自定义目录标题

/**
     *  导出数据到Excel
     * @param response 响应体
     * */
    @RequestMapping("/out")
    @RequiresPermissions("user:list")
    @ResponseBody
    public String outExcelDemo(HttpServletResponse response) throws IOException, IllegalAccessException {
        //文件名
        String fileName = "用户";
        //sheet名
        String sheetName = "用户";

        //表头集合,作为表头参数
        List<String> titleList = new ArrayList<>();
        titleList.add("用户ID");
        titleList.add("用户名");
        titleList.add("密码");
        titleList.add("姓名");
        titleList.add("角色ID");
        titleList.add("最近登录时间");
        titleList.add("IP");
        titleList.add("状态");
        titleList.add("备注");
        titleList.add("皮肤");
        titleList.add("邮箱");
        titleList.add("编码");
        titleList.add("电话");
        titleList.add("副职角色ID组");

        //数据对象,从数据库中得到
        List<SysUserVo>  list =     sysUserService.getExcelList2();
        //调取封装的方法,传入相应的参数
         ExcelUtil.createExcel(sheetName,titleList, list,response,fileName);
        return null;
    }

 

公共类:

package com.xxx.pms.util;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.List;

/**
 *  数据导出excel,工具类
 * @author big bug bean
 * @date 2019年10月11日15:55:07
 * */
public class ExcelUtil {
    /**
     *  生成Excel表格
     * @param sheetName sheet名称
     * @param titleList 表头列表
     * @param dataList 数据列表
     * @return HSSFWorkbook对象
     * */

public static HSSFWorkbook createExcel(String sheetName,
                                           List<String> titleList, List dataList, HttpServletResponse response,String fileName) throws IOException, IllegalAccessException {

        //创建HSSFWorkbook对象
        HSSFWorkbook wb = new HSSFWorkbook();
        //创建sheet对象
        HSSFSheet sheet=wb.createSheet(sheetName);
        //在sheet里创建第一行,这里即是表头
        HSSFRow rowTitle=sheet.createRow(0);

        //写入表头的每一个列
        for (int i = 0; i < titleList.size(); i++) {
            //创建单元格
            rowTitle.createCell(i).setCellValue(titleList.get(i));
        }

        //写入每一行的记录
        for (int i = 0; i < dataList.size(); i++) {
            //创建新的一行,递增
            HSSFRow rowData = sheet.createRow(i+1);

            //通过反射,获取POJO对象
            Class cl = dataList.get(i).getClass();
            //获取类的所有字段
            Field[] fields = cl.getDeclaredFields();
            for (int j = 0; j < fields.length; j++) {
                //设置字段可见,否则会报错,禁止访问
                fields[j].setAccessible(true);
                //创建单元格
                rowData.createCell(j).setCellValue((String) fields[j].get(dataList.get(i)));
            }
        }
        //输出Excel文件
        OutputStream output=response.getOutputStream();
        response.reset();
        //中文名称要进行编码处理
        response
                .setHeader("Content-disposition", "attachment; filename="+new String(fileName.getBytes("GB2312"),"ISO8859-1")+".xls");
        response.setContentType("application/msexcel");
        wb.write(output);
        output.close();
        return wb;
    }
}

PS:改方法是基于POI框架,请加入依赖包

MAVEN 直接复制下面

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.14</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.14</version>
  </dependency>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值