zhangjidong2005 发表于 2013-1-28 18:54:31

jxl例子

利用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();
    }
%>
-----------------------
页: [1]
查看完整版本: jxl例子