将数据库中的数据下载成表格---导入poi jar包

本文介绍如何使用ExportExcelUtil工具类生成Excel文件,包括设置标题、导出文件名称、填充数据等关键步骤。
生成表格的工具类:
public class ExportExcelUtil {
    private String title = "";
    private String exportFileName = "";
    private List<String> headers;
    private List<List> data;

    public void exportExcel(HttpServletResponse response) {

        // 声明一个工作薄
        HSSFWorkbook workbook = new HSSFWorkbook();
        // 生成一个表格
        HSSFSheet sheet = workbook.createSheet(title);
        // 设置表格默认列宽度为20个字节
        sheet.setDefaultColumnWidth(20);

        // 生成一个样式
        HSSFCellStyle style = workbook.createCellStyle();
        // 设置这些样式
        style.setFillForegroundColor(HSSFColor.GOLD.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        // 生成一个字体
        HSSFFont font = workbook.createFont();
        font.setColor(HSSFColor.BLACK.index);
        // font.setFontHeightInPoints((short) 12);
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        // 把字体应用到当前的样式
        style.setFont(font);

        // 指定当单元格内容显示不下时自动换行
        style.setWrapText(true);
        // 产生表格标题行

        HSSFRow row = sheet.createRow(0);
        OutputStream out = null;
        try {
            for (int i = 0; i < headers.size(); i++) {
                HSSFCell cell = row.createCell(i);
                cell.setCellStyle(style);
                HSSFRichTextString text = new HSSFRichTextString(
                        (String) headers.get(i));
                cell.setCellValue(text);
            }
            // 遍历集合数据,产生数据行
            if (data != null) {

                for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
                    row = sheet.createRow(rowIndex + 1);
                    List rowData = data.get(rowIndex);
                    for (int cellIndex = 0; cellIndex < rowData.size(); cellIndex++) {
                        HSSFCell cell = row.createCell(cellIndex);
                        // cell.setCellStyle(style2);
                        // String cellStr=(String)rowData.get(cellIndex);
                        String cellStr = rowData.get(cellIndex) + "";
                        HSSFRichTextString richString = new HSSFRichTextString(
                                cellStr == null ? "" : cellStr);
                        // HSSFFont font3 = workbook.createFont();
                        // font3.setColor(HSSFColor.BLUE.index);
                        // richString.applyFont(font3);
                        cell.setCellValue(richString);
                    }

                }
            }
            response.setContentType("octets/stream");
            response.addHeader("Content-Disposition", "attachment;filename="
                    + exportFileName);
            out = response.getOutputStream();
            workbook.write(out);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getExportFileName() {
        return exportFileName;
    }

    public void setExportFileName(String exportFileName) {
        this.exportFileName = exportFileName;
    }

    public List<String> getHeaders() {
        return headers;
    }

    public void setHeaders(List<String> headers) {
        this.headers = headers;
    }

    public List<List> getData() {
        return data;
    }

    public void setData(List<List> data) {
        this.data = data;
    }
}
调用工具类的方法
public String HistoryList() {
    List history = this.service.orderList(vo);//查询数据库,返回list集合
    ExportExcelUtil excel = new ExportExcelUtil();
    List<String> headers = new ArrayList<String>();
    headers.add("每一列的列名");//有多少列一次添加多少次
    excel.setHeaders(headers);
    List<List> data = new ArrayList<List>();
    for (int i = 0; i < history.size(); i++) {
        TradevmVmauditHistoryEntity entity = (TradevmVmauditHistoryEntity) history
                .get(i);//将list中的值转化成具体的类
        List list = new ArrayList();
        list.add(entity.getDomain());//循环向list中添加数据,每一个list就是一行
        data.add(list);//循环添加每一行
    }
    excel.setData(data);
    excel.setExportFileName("shenhe.xls");
    excel.setTitle("审核历史查询");
    HttpServletResponse response = this.getResponse();
    excel.exportExcel(response);
}


乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值