六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 41|回复: 0

jxl例子

[复制链接]

升级  6%

15

主题

15

主题

15

主题

秀才

Rank: 2

积分
59
 楼主| 发表于 2013-1-28 18:54:31 | 显示全部楼层 |阅读模式
利用JXL导出EXCEL的简单实例
<%@ page pageEncoding="gbk" %>
<%@ include file="/sys-adm.jsp" %>
<%@ page language="java" contentType="text/html; charset=GBK" %><%@ page import="java.util.*" %>
<%@ page import="javax.jdo.*" %><%@ page import="java.io.OutputStream" %>
<%@ page import="cn.com.pconline.play.*" %>
<%@ page import="cn.com.pconline.play.util.*" %>
<%@ page import="jxl.Workbook" %>
<%@ page import="jxl.write.WritableCellFormat" %>
<%@ page import="jxl.write.WritableSheet" %>
<%@ page import="jxl.write.WritableWorkbook" %>
<%@ page import="jxl.write.WriteException" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%    List result = PlayService.xlsMembers();//
一个简单的方法,列出Member类的所有实例// 设置资源头信息
    response.reset();
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "filename=Member.xls");//attachment// WritableWorkbook是JexcelApi的一个类。
// 以下可以理解为创建一个excel文件,然后在excel里面创建一个表

    OutputStream os = response.getOutputStream();
//取得输出流
    WritableWorkbook workbook = Workbook.createWorkbook(os);
    WritableSheet sheet = workbook.createSheet("First Sheet", 0);
// 组织excel文件的内容
    jxl.write.Label label = null;
    int excelCol = 0;
    int row = 0;
    try {
        label = new jxl.write.Label(excelCol++, row, "帐号");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "姓名");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "身份证");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "联系电话");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "生日");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "城市");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "职业");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "已购音箱型号");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "试听与否");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol++, row, "邮箱");
        sheet.addCell(label);
        label = new jxl.write.Label(excelCol, row, "注册时间");
        sheet.addCell(label);
        //jxl.write.Number number = null;
        jxl.write.DateTime dateTime;
        jxl.write.DateFormat customDateFormat = new jxl.write.DateFormat("yyyy-MM-dd");//时间格式
        WritableCellFormat dateFormat = new WritableCellFormat(customDateFormat);        for(int i=0;i<result.size();i++){
            Member rr = (Member) result.get(i);
            excelCol = 0;
            row = i + 1;            SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");            label = new jxl.write.Label(excelCol++, row, rr.getLogin());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getName());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getIdcard());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getPhone());
            sheet.addCell(label);            /*字串格式*/
            try{
                label = new jxl.write.Label(excelCol++, row, formatDate.format(rr.getBirth()));
                sheet.addCell(label);
            }catch (Exception e){
                //Maybe somebody fogot to input his birthday ,I need do nothing here!
            }            label = new jxl.write.Label(excelCol++, row, rr.getAddress());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getSerialNumber());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getType());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getDeclaration());
            sheet.addCell(label);            label = new jxl.write.Label(excelCol++, row, rr.getEmail());
            sheet.addCell(label);            /*时间格式*/
            dateTime = new jxl.write.DateTime(excelCol, row, rr.getCreateTime(), dateFormat);
            sheet.addCell(dateTime);            //label = new jxl.write.Label(excelCol, row, formatDate.format(rr.getCreateTime()));
            //sheet.addCell(label);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally{
//      生成excel文件
        workbook.write();
        workbook.close();
        os.close();
    }
%>
-----------------------
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表