【第22期】观点:IT 行业加班,到底有没有价值?

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;
            }
        }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

http中的Content-Type

要学习content-type,必须事先知道它到底是什么,是干什么用的。 HTTP协议(RFC2616)采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、...

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

本文主要介绍Java 导出CSV文件到本地及实现web下载CSV。 1.Java 导出CSV文件到本地 csvWriter: package com.csvio; import...

JAVA写CSV文件

java写csv文件,通过文件输出流和第三方工具库opencsv两种方式。

Java中实现文件上传下载的三种解决方案

第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname...

java实现文件下载的两种方式

public HttpServletResponse download(String path, HttpServletResponse response) { try { ...

利用javacsv实现CSV文件的读写

在读写CSV文件是大家可能到会有这样的纠结:到底是用第三方的jar包,还是自己写个类呢?如果用第三方的jar包,网上的资源有的特别大,可能就是个几百K的程序,却要附带一个和自己差不多大的jar包,得不...

java web文件下载功能实现

需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法:     一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 Insert titl...

文件下载(java+android)

文件下载(java+android) 一、普通的文件下载 a) Java实现普通文件下载 i. 指定所要下载的path(网页文件的路径) ii. 将path转换为httpurlconnec...

利用JavaCSV API来读写csv文件

利用JavaCSV API读写csv文件,这是一个成熟的三方工具包,可以极大提升开发者开发效率。

将数据导出为csv文件(需要javacsv.jar)

package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Serv...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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