java 导出到Excel

网上下载jxl.jar,build path 。然后就可以操作了

package net.sgis.servlet.exp2excel;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;

import javax.servlet.http.HttpServletResponse;

import jxl.CellView;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import net.sgis.model.dispatch.Ycdd;

public class ExportYcddUtil {
    
    /**
     * 导出用车调度信息到Excel
     * @param filename
     * @param content
     */
    public static void export2Excel(HttpServletResponse response,List<Ycdd> ycddList)
    {
        WritableWorkbook wwb=null;
        try
        {
            //获取输出流
            OutputStream os=response.getOutputStream();
            //设置输出文件头
            response.setHeader("Content-disposition", "attachment; filename="+new String("调度信息".getBytes("GB2312"),"8859_1")+".xls");
            //定义输出类型为excel
            response.setContentType("application/msexcel");
            wwb=Workbook.createWorkbook(os);
            //创建工作表
            WritableSheet ws=wwb.createSheet("用车调度信息", 5);
            
            //设置单元格的文字格式
            WritableFont wf=new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false,
                    UnderlineStyle.NO_UNDERLINE,Colour.BLUE);
            WritableCellFormat wcf=new WritableCellFormat(wf);
            wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
            wcf.setAlignment(Alignment.CENTRE);
            //添加标题
            ws.addCell(new Label(0,0,"编号",wcf));
            ws.addCell(new Label(1,0,"用车事由",wcf));
            ws.addCell(new Label(2,0,"用车类型",wcf));
            ws.addCell(new Label(3,0,"用车人",wcf));
            ws.addCell(new Label(4,0,"联系电话",wcf));
            ws.addCell(new Label(5,0,"目的地",wcf));
            ws.addCell(new Label(6,0,"车牌",wcf));
            ws.addCell(new Label(7,0,"驾驶员",wcf));
            ws.addCell(new Label(8,0,"调度人",wcf));
            ws.addCell(new Label(9,0,"调度意见",wcf));
            ws.addCell(new Label(10,0,"调度反馈",wcf));
            ws.addCell(new Label(11,0,"调度时间",wcf));
            ws.addCell(new Label(12,0,"还车时间",wcf));
            //设置单元格宽度
            for(int i=1;i<12;i++)
            {
                ws.setColumnView(i, 16);
            }
            //设置编号的宽度
            ws.setColumnView(0, 10);
            //设置还车时间的宽度
            ws.setColumnView(12, 30);
            //数据内容
            for(int i=0;i<ycddList.size();i++)
            {
                Ycdd ycdd=ycddList.get(i);
                ws.addCell(new Label(0,i+1,ycdd.getBH()+"",wcf));
                ws.addCell(new Label(1,i+1,ycdd.getYCSY(),wcf));
                ws.addCell(new Label(2,i+1,ycdd.getYCLXMC(),wcf));
                ws.addCell(new Label(3,i+1,ycdd.getYCR(),wcf));
                ws.addCell(new Label(4,i+1,ycdd.getLXDH(),wcf));
                ws.addCell(new Label(5,i+1,ycdd.getMDD(),wcf));
                ws.addCell(new Label(6,i+1,ycdd.getCP(),wcf));
                ws.addCell(new Label(7,i+1,ycdd.getJSYMC(),wcf));
                ws.addCell(new Label(8,i+1,ycdd.getDDRMC(),wcf));
                ws.addCell(new Label(9,i+1,ycdd.getDDYJMC(),wcf));
                ws.addCell(new Label(10,i+1,ycdd.getDDFK(),wcf));
                ws.addCell(new Label(11,i+1,ycdd.getDDSJ(),wcf));
                ws.addCell(new Label(12,i+1,ycdd.getHCSJ(),wcf));
            }
            wwb.write();
            wwb.close();
        }
        catch(Exception e)
        {
            System.err.println("ExportYcddUtil.export2Excel() error:"+e.getMessage());
            e.printStackTrace();
        }
        
    }
}

posted on 2013-09-16 16:10  收苞米的拖拉机  阅读(319)  评论(0编辑  收藏  举报