WEB实现Excel下载的一种方式--JAVA EXCEL

来源:互联网 发布:手机淘宝举报有用吗 编辑:程序博客网 时间:2024/05/19 13:09

需求场景:

     最近在做一个手机借记管理平台(WEB),项目新功能要求能下载所有手机的信息(也就是存在数据库的信息)生成EXCEL表格。

用到的工具:

    JAVA EXCEL(下载地址:http://nchc.dl.sourceforge.net/project/jexcelapi/jexcelapi/2.6.6/jexcelapi_2_6_6.zip jxl.jar复制到WEB-INF/lib目录下面即可

具体实现:

    1.实现DownloadUTestPhonesExcel类,实现对OutputStream的数据写入:

import java.io.IOException;import java.io.OutputStream;import java.util.ArrayList;import com.utest.model.Phone;import com.utest.service.PhoneSer;import com.utest.service.ServiceManager;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;public class DownloadUTestPhonesExcel {    public void createExcel(OutputStream os) throws WriteException,IOException{        //创建工作薄        WritableWorkbook workbook = Workbook.createWorkbook(os);        //创建新的一页        WritableSheet sheet = workbook.createSheet("First Sheet",0);        //创建要显示的内容,创建一个单元格,第一个参数为列坐标,第二个参数为行坐标,第三个参数为内容                //查询数据库        PhoneSer phoneSer = (PhoneSer) ServiceManager.getService(Constants.PHONE_SERVICE);        Phone phone = new Phone();phone.setIsDeleted(0);phone.setManager("max");phone.setPageSize(65535);        ArrayList<Phone> phones = (ArrayList<Phone>) phoneSer.selectPhoneInfo(phone);        String[] tableheads={        "id","manufacturer","Model","manager","umanager"        };        //填写表头        Label tempdate;        for (int j = 0; j <tableheads.length ; j++) {    tempdate = new Label(j,0,tableheads[j]);            sheet.addCell(tempdate);            tempdate = null;}        //填写数据        for(int i= 0;i<phones.size();i++){        //id        tempdate = new Label(0,i+1,phones.get(i).getId());            sheet.addCell(tempdate);            tempdate = null;            //manufacturer        tempdate = new Label(1,i+1,phones.get(i).getManufacturer());            sheet.addCell(tempdate);            tempdate = null;            //Model        tempdate = new Label(2,i+1,phones.get(i).getModel());            sheet.addCell(tempdate);            tempdate = null;            //manager        tempdate = new Label(3,i+1,phones.get(i).getManager());            sheet.addCell(tempdate);            tempdate = null;            //umanager        tempdate = new Label(4,i+1,phones.get(i).getUmanager());            sheet.addCell(tempdate);            tempdate = null;                   }                        //把创建的内容写入到输出流中,并关闭输出流        workbook.write();        workbook.close();        os.close();    }    }
    2.实现global_download_utest_phones.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.io.*" %><%@ page import="com.utest.utils.*" %><%     String fname = "PhonesOfUTest";    OutputStream os = response.getOutputStream();//取得输出流    response.reset();//清空输出流        //下面是对中文文件名的处理    response.setCharacterEncoding("UTF-8");//设置相应内容的编码格式    fname = java.net.URLEncoder.encode(fname,"UTF-8");    response.setHeader("Content-Disposition","attachment;filename="+new String(fname.getBytes("UTF-8"),"GBK")+".xls");    response.setContentType("application/msexcel");//定义输出类型    DownloadUTestPhonesExcel sw = new DownloadUTestPhonesExcel();    sw.createExcel(os); %><html>  <head>    <title></title>  </head>  <body>  </body></html>
     3.结果:

               

当然要实现更细致的Excel,我们还需更多的了解JAVA EXCEL:

    可以查看下载文件中的jexcelapi_2_6_6\jexcelapi\docs\index.html文件,了解更多实现方法(如高光,下划线,合并单元格等操作)

例如:

//浮点数据        Number number = new Number(1,1,3.1415926535);//整形数据        Number ints = new Number(2,1,15042699);//日期型数据        Calendar c = Calendar.getInstance();        Date date = c.getTime();        WritableCellFormat cf1 = new WritableCellFormat(DateFormats.FORMAT1);        DateTime dt = new DateTime(4,1,date,cf1);        sheet.addCell(dt);

// 如果觉得不错,记得顶我哦! 顶我!顶我!顶我!





2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大型考试考砸了怎么办 能力考试考砸了怎么办 考砸了老师批评怎么办 英语抽测考砸了老师怎么办? 辅导班学生考砸了老师怎么办 好学生考砸了怎么办? 孩子学习不认真马虎怎么办 孩子做作业不认真马虎怎么办 一年级小孩学习不认真怎么办 孩子做题审题不认真怎么办 初二孩子不认真审题怎么办 孩子总是粗心抄错题看错题怎么办 孩子总马虎我要怎么办 年检标志跟车牌号不一样怎么办 纹完身后喝酒了怎么办 孩子学习态度不端正怎么办 孩子高考三模考差了家长怎么办 一年级学生学习马虎大意怎么办 一年级下册孩子做作业马虎怎么办 一年级孩子做题马虎怎么办 四年级小孩不喜欢数学该怎么办 工作出了大错误怎么办 遇到不讲道理的人怎么办 四岁宝宝爱生闷气怎么办 一岁宝宝没耐心怎么办 孩子挑食 幼儿园老师该怎么办 小孩被惯的无法无天怎么办 高中的儿子不写作业怎么办 儿子总是不写作业怎么办 长鸡眼脚背肿了怎么办 脚上反复长鸡眼怎么办 脚底长鸡眼很痒怎么办 小脚趾上长鸡眼怎么办 6岁宝宝不爱学习怎么办 上班站久了腿肿怎么办 站时间长了腿肿怎么办 孩子做作业老是粗心大意怎么办 高中孩子没学习兴趣怎么办 初三孩子失去学习兴趣怎么办 初二对学习兴趣不大怎么办 脸上痒发红发肿怎么办