Java导出Excel

这篇博客详细介绍了如何使用Java进行Excel文件的导出操作。通过创建WritableWorkbook和WritableSheet对象,设置字体和单元格样式,以及填充数据,最终成功输出到Excel文件。示例代码中,作者展示了如何设置标题、列名以及正文数据,并且处理了输出流和响应头,确保文件能正确下载。
摘要由CSDN通过智能技术生成

    List<LeadInfo> leadInfoList = leadInfoMapper.downloadExcel(requestContext, leadInfo, page, pagesize);
    String result = "Excel文件导出成功!";
    // 列名称
    String[] Title = new String[] { "订单号", "状态代码", "原因代码", "事件时间", "备注", "地点"};
    // 以下开始输出到EXCEL
    try {
        // 定义输出流,以便打开保存对话框______________________begin
        OutputStream opStream = response.getOutputStream();// 获得输出流
        response.reset();// 清除输出流
        // 设定输出文件头
        response.setHeader("Content-disposition",
                "attachment; filename=" + new String("event.xls".getBytes("GB2312"), "ISO8859-1"));
        response.setContentType("application/msexcel");// 定义输出类型
        // 定义输出流,以便打开保存对话框______________________end
        /************* 设置时间格式 *************/
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        /** **********创建工作簿************ */
        WritableWorkbook workbook = Workbook.createWorkbook(opStream);
        /** **********创建工作表************ */
        WritableSheet sheet = workbook.createSheet("Sheet1", 0);
        /** **********设置纵横打印(默认为纵打)、打印纸***************** */
        jxl.SheetSettings sheetset = sheet.getSettings();
        sheetset.setOrientation(PageOrientation.LANDSCAPE);
        sheetset.setProtected(false);
        /** ************设置单元格字体************** */
        WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
        WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
        DisplayFormat dFormat = NumberFormats.TEXT;
        /** ************以下设置三种单元格样式,灵活备用************ */
        // 用于标题居中
        WritableCellFormat wcf_center = new WritableCellFormat(BoldFont, dFormat);
        wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
        wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
        wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
        wcf_center.setWrap(false); // 文字是否换行
        // 用于正文居左
        WritableCellFormat wcf_left = new WritableCellFormat(NormalFont, dFormat);
        wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
        wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
        wcf_left.setAlignment(Alignment.CENTRE); // 文字水平对齐
        wcf_left.setWrap(false); // 文字是否换行
        /** ***************以下是EXCEL开头大标题,暂时省略********************* */
        // sheet.mergeCells(0, 0, colWidth, 0);
        // sheet.addCell(new Label(0, 0, "XX报表", wcf_center));
        /** ***************以下是EXCEL第一行列标题********************* */
        for (int i = 0; i < Title.length; i++) {
            sheet.addCell(new Label(i, 0, Title[i], wcf_center));
        }
        /** ***************以下是EXCEL正文数据********************* */
        int i = 1;
        for (LeadInfo leadInfo1 : leadInfoList) {
            sheet.addCell(new Label(0, i, "", wcf_left));
            sheet.addCell(new Label(1, i, "", wcf_left));
            sheet.addCell(new Label(2, i, "", wcf_left));
            sheet.addCell(new Label(3, i, "", wcf_left));
            sheet.addCell(new Label(4, i, "", wcf_left));
            sheet.addCell(new Label(5, i, "", wcf_left));
            i++;
        }
        /** **********将以上缓存中的内容写到EXCEL文件中******** */
        workbook.write();
        /** *********关闭文件************* */
        workbook.close();
    } catch (Exception e) {
        result = "系统提示:excel导出失败,原因:" + e.toString();
        System.out.println(e.toString());
        e.printStackTrace();
    }
    return result;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值