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();
}
}
}