java实现xls、csv文件导出或下载

原创 2016年06月01日 11:58:27

一般在java开发中需要下载xls或者是csv文件,需要在做报表或者是数据采集的时候需要,现将代码片段摘出:

public String exportMouldCsv() {
        OutputStream os = null;
        WritableWorkbook wbook = null;
        try {
            HttpServletResponse response = ServletActionContext.getResponse();
            // 取得输出流
            os = response.getOutputStream();
            // 清空输出流
            response.reset();
            // 设定输出文件头
            String fileName = "文件名设置.xls";
            fileName = new String(fileName.getBytes("GBK"), "iso-8859-1");
            response.setHeader("Content-disposition", "attachment; filename="
                    + fileName);
            // 定义输出类型
            response.setContentType("application/msexcel");
            // 建立excel文件
            wbook = Workbook.createWorkbook(os);

            WritableCellFormat cellFormat = new WritableCellFormat();
            cellFormat.setAlignment(jxl.format.Alignment.CENTRE);

            // WritableSheet.setColumnView(int i,int width)
            // 作用是指定第i+1列的宽度,比如:
            // 将第一列的宽度设为30
            // sheet.setColumnView(0,30)
            // wsheet.setRowView(0,10)
            WritableFont font1 = new WritableFont(WritableFont.TIMES, 10,
                    WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
                    jxl.format.Colour.BLACK);
            WritableCellFormat cellFormat_top = new WritableCellFormat();
            cellFormat_top.setAlignment(jxl.format.Alignment.CENTRE);
            // 设置单元格背景颜色
            // cellFormat_top.setBackground(Colour.LIGHT_BLUE);
            // 设置字体格式
            cellFormat_top.setFont(font1);
            cellFormat_top.setBorder(jxl.format.Border.ALL,
                    jxl.format.BorderLineStyle.THIN);

            WritableCellFormat cellFormat_bottom = new WritableCellFormat();
            cellFormat_bottom.setBorder(jxl.format.Border.ALL,
                    jxl.format.BorderLineStyle.THIN);

            WritableCellFormat cellFormat_bottom_1 = new WritableCellFormat();
            // 设置居中
            cellFormat_bottom_1.setAlignment(jxl.format.Alignment.CENTRE);
            // 设置表格边框
            cellFormat_bottom_1.setBorder(jxl.format.Border.ALL,
                    jxl.format.BorderLineStyle.THIN);
            WritableSheet wsheet = wbook.createSheet("
            文件名设置", 0);

            wsheet.setRowView(0, 300);
            wsheet.setRowView(1, 300);
            wsheet.setColumnView(0, 10);
            wsheet.setColumnView(1, 20);
            wsheet.setColumnView(2, 15);
            wsheet.setColumnView(3, 15);
            wsheet.setColumnView(4, 15);
            wsheet.setColumnView(5, 15);
            wsheet.setColumnView(6, 20);
            wsheet.setColumnView(7, 30);
            //表头设置
            Label label_0 = new Label(0, 0, "组织");
            label_0.setCellFormat(cellFormat_top);
            wsheet.addCell(label_0);

            Label label_1 = new Label(1, 0, "代码");
            label_1.setCellFormat(cellFormat_top);
            wsheet.addCell(label_1);

            Label label_2 = new Label(2, 0, "名称");
            label_2.setCellFormat(cellFormat_top);
            wsheet.addCell(label_2);

            Label label_3 = new Label(3, 0, "年");
            label_3.setCellFormat(cellFormat_top);
            wsheet.addCell(label_3);

            Label label_4 = new Label(4, 0, "月");
            label_4.setCellFormat(cellFormat_top);
            wsheet.addCell(label_4);

            Label label_5 = new Label(5, 0, "项");
            label_5.setCellFormat(cellFormat_top);
            wsheet.addCell(label_5);

            Label label_6 = new Label(6, 0, "项名称");
            label_6.setCellFormat(cellFormat_top);
            wsheet.addCell(label_6);

            Label label_7 = new Label(7, 0, "数量");
            label_7.setCellFormat(cellFormat_top);
            wsheet.addCell(label_7);

            wbook.write();
        } catch (Exception e) {
            logger.error(e);
            e.printStackTrace();
        } finally {
            if (wbook != null) {
                try {
                    wbook.close();
                } catch (Exception e) {
                    logger.error(e);
                }
                wbook = null;
            }
            if (os != null) {
                try {
                    os.close();
                } catch (Exception e) {
                    logger.error(e);
                }
                os = null;
            }
        }
    }

还有一种情况就是将后台获取的数据以xls或者是csv格式为文件导出,方便打印或者是传阅等。

public String exportMouldCsv() {
        OutputStream os = null;
        WritableWorkbook wbook = null;
        try {
            HttpServletResponse response = ServletActionContext.getResponse();
            // 取得输出流
            os = response.getOutputStream();
            // 清空输出流
            response.reset();
            // 设定输出文件头
            String fileName = "文件名设置.xls";
            fileName = new String(fileName.getBytes("GBK"), "iso-8859-1");
            response.setHeader("Content-disposition", "attachment; filename="
                    + fileName);
            // 定义输出类型
            response.setContentType("application/msexcel");
            // 建立excel文件
            wbook = Workbook.createWorkbook(os);

            WritableCellFormat cellFormat = new WritableCellFormat();
            cellFormat.setAlignment(jxl.format.Alignment.CENTRE);

            // WritableSheet.setColumnView(int i,int width)
            // 作用是指定第i+1列的宽度,比如:
            // 将第一列的宽度设为30
            // sheet.setColumnView(0,30)
            // wsheet.setRowView(0,10)
            WritableFont font1 = new WritableFont(WritableFont.TIMES, 10,
                    WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
                    jxl.format.Colour.BLACK);
            WritableCellFormat cellFormat_top = new WritableCellFormat();
            cellFormat_top.setAlignment(jxl.format.Alignment.CENTRE);
            // 设置单元格背景颜色
            // cellFormat_top.setBackground(Colour.LIGHT_BLUE);
            // 设置字体格式
            cellFormat_top.setFont(font1);
            cellFormat_top.setBorder(jxl.format.Border.ALL,
                    jxl.format.BorderLineStyle.THIN);

            WritableCellFormat cellFormat_bottom = new WritableCellFormat();
            cellFormat_bottom.setBorder(jxl.format.Border.ALL,
                    jxl.format.BorderLineStyle.THIN);

            WritableCellFormat cellFormat_bottom_1 = new WritableCellFormat();
            // 设置居中
            cellFormat_bottom_1.setAlignment(jxl.format.Alignment.CENTRE);
            // 设置表格边框
            cellFormat_bottom_1.setBorder(jxl.format.Border.ALL,
                    jxl.format.BorderLineStyle.THIN);
            WritableSheet wsheet = wbook.createSheet("
            文件名设置", 0);

            wsheet.setRowView(0, 300);
            wsheet.setRowView(1, 300);
            wsheet.setColumnView(0, 10);
            wsheet.setColumnView(1, 20);
            wsheet.setColumnView(2, 15);
            wsheet.setColumnView(3, 15);
            wsheet.setColumnView(4, 15);
            wsheet.setColumnView(5, 15);
            wsheet.setColumnView(6, 20);
            wsheet.setColumnView(7, 30);
            //表头设置
            Label label_0 = new Label(0, 0, "组织");
            label_0.setCellFormat(cellFormat_top);
            wsheet.addCell(label_0);

            Label label_1 = new Label(1, 0, "代码");
            label_1.setCellFormat(cellFormat_top);
            wsheet.addCell(label_1);

            Label label_2 = new Label(2, 0, "名称");
            label_2.setCellFormat(cellFormat_top);
            wsheet.addCell(label_2);

            Label label_3 = new Label(3, 0, "年");
            label_3.setCellFormat(cellFormat_top);
            wsheet.addCell(label_3);

            Label label_4 = new Label(4, 0, "月");
            label_4.setCellFormat(cellFormat_top);
            wsheet.addCell(label_4);

            Label label_5 = new Label(5, 0, "项");
            label_5.setCellFormat(cellFormat_top);
            wsheet.addCell(label_5);

            Label label_6 = new Label(6, 0, "项名称");
            label_6.setCellFormat(cellFormat_top);
            wsheet.addCell(label_6);

            Label label_7 = new Label(7, 0, "数量");
            label_7.setCellFormat(cellFormat_top);
            wsheet.addCell(label_7);

            //获取从后台获取数据,并赋值给对应的列值
            MList mList = goalService.getMaterielViewList(mat);
            if (null!=mList ) {
                for (int i = 0; i < matList.size(); i++) {
                    Materiel materiel=new Materiel();
                    materiel=matList.get(i);
                    Label label_00 = new Label(0, (i+1), materiel.getMvgr1()==null?"":materiel.getMvgr1());
                    label_00.setCellFormat(cellFormat_bottom_1);
                    wsheet.addCell(label_00);
                    Label label_01 = new Label(1, (i+1), materiel.getBezei()==null?"":materiel.getBezei());
                    label_01.setCellFormat(cellFormat_bottom_left);
                    wsheet.addCell(label_01);
                    .....
                    //后面是自己来咯!!
                }
            }

            wbook.write();
        } catch (Exception e) {
            logger.error(e);
            e.printStackTrace();
        } finally {
            if (wbook != null) {
                try {
                    wbook.close();
                } catch (Exception e) {
                    logger.error(e);
                }
                wbook = null;
            }
            if (os != null) {
                try {
                    os.close();
                } catch (Exception e) {
                    logger.error(e);
                }
                os = null;
            }
        }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java 导出CSV文件及实现web下载CSV

本文主要介绍Java 导出CSV文件到本地及实现web下载CSV。 1.Java 导出CSV文件到本地 csvWriter: package com.csvio; import...
  • psp0001060
  • psp0001060
  • 2015年11月02日 17:43
  • 9155

利用Javacsv实现Java读写csv文件

今天跟大家分享一个利用外部Jar包来实现Java操作CSV文件 一.资源下载 1.直接下载Jar包: http://central.maven.org/maven2/net/sourceforg...
  • StemQ
  • StemQ
  • 2017年03月07日 23:03
  • 5548

javaCSV csv文件处理

  • 2017年08月18日 11:49
  • 13KB
  • 下载

Java生成CSV文件

1、新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; ...
  • xuxu198899223
  • xuxu198899223
  • 2014年07月24日 10:22
  • 6358

java读写CSV文件的两种方法

BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "GBK...
  • KinseyGeek
  • KinseyGeek
  • 2017年04月18日 23:16
  • 1572

java操作CSV文件类文件

  • 2008年10月22日 14:23
  • 135KB
  • 下载

利用JavaCSV API来读写csv文件

利用JavaCSV API读写csv文件,这是一个成熟的三方工具包,可以极大提升开发者开发效率。...
  • loongshawn
  • loongshawn
  • 2016年12月01日 16:25
  • 18122

java 操作csv格式的文件-javacsv.jar

转自:http://zjb10000.iteye.com/blog/619699转自:
  • gf771115
  • gf771115
  • 2014年06月18日 13:12
  • 10571

java 实现csv文件导入导出

主要解决csv文件的导入导出问题
  • u014656173
  • u014656173
  • 2016年12月26日 22:53
  • 146

用javacsv API 来操作csv文件

javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法。 先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中。  本站下载地址: ...
  • a9529lty
  • a9529lty
  • 2014年12月01日 16:19
  • 15795
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java实现xls、csv文件导出或下载
举报原因:
原因补充:

(最多只允许输入30个字)