`
liujinlong
  • 浏览: 25994 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jxl导出excel

 
阅读更多
response.setCharacterEncoding("UTF-8");
PrintWriter out=response.getWriter();

String id=request.getParameter("id");

String pathUrl = "stockoutcome.xls";
response.setContentType("application/x-msdownload;charset=utf-8");
response.setCharacterEncoding("utf-8");
String path=request.getSession().getServletContext().getRealPath("/");
/**
* 去掉会报错的
* 使用了PrintWriter out = response.getWriter();
* 再次使用了ServletOutputStream out = response.getOutputStream();
* 可以在前面写一个response.reset(); 就没事了
*/
response.reset();

File f=new File(path+pathUrl);
f.createNewFile();
//创建一个exlise
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream(f));
jxl.write.WritableSheet ws = wwb.createSheet( "好便宜库存管理系统 ",2);
//设置单元格的宽度
ws.setColumnView(0, 15);
ws.setColumnView(1, 18);
ws.setColumnView(2, 15);
ws.setColumnView(3, 15);
ws.setColumnView(4, 15);
ws.setColumnView(5, 15);
ws.setColumnView(6, 15);

try {
IVipService vipService=(IVipService)BeanFactory.findBean("vip","vipService");
StockOutcome stockOutcome=vipService.getAllObjLazy(StockOutcome.class, id);

//设置字体样式
jxl.write.WritableFont wfc1 = new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC1 = new jxl.write.WritableCellFormat(wfc1);
wcfFC1.setBackground(jxl.format.Colour.GRAY_25);
wcfFC1.setAlignment(Alignment.CENTRE);

jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
//设置背景颜色
wcfFC.setBackground(jxl.format.Colour.GRAY_25);
//水平居中
wcfFC.setAlignment(Alignment.CENTRE);

jxl.write.Label tLabel=new jxl.write.Label(0,1,"产品出库单",wcfFC1);
ws.addCell(tLabel);
//合并单元格
ws.mergeCells(0,1,6,2);

tLabel=new jxl.write.Label(0,4,"产品编号",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(1,4,stockOutcome.getSn());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(2,4,"单据类型",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(3,4,"产品出库单");
ws.addCell(tLabel);
tLabel=new jxl.write.Label(4,4,"仓库",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(5,4,stockOutcome.getDepct().getName());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(0,5,"客户名称",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(1,5,stockOutcome.getClient().getName());
ws.addCell(tLabel);

//格式化日期
DateFormat dtf = new DateFormat("yyyy-MM-dd");   
WritableCellFormat wcfDt = new WritableCellFormat(dtf);
wcfDt.setAlignment(Alignment.LEFT );

tLabel=new jxl.write.Label(2,5,"订购日期",wcfFC);
ws.addCell(tLabel);
jxl.write.DateTime dateTime=new jxl.write.DateTime(3,5,stockOutcome.getVdate(),wcfDt);
ws.addCell(dateTime);
List<StockOutcomeItem> list=vipService.loadAllT(SQLANDHQLClass.loadStockOutcomeItem(id));
int i=1;
for (StockOutcomeItem stockOutcomeItem : list) {
tLabel=new jxl.write.Label(0,7,"序号",wcfFC);
ws.addCell(tLabel);
jxl.write.Number num=new jxl.write.Number(0,7+i,i);
ws.addCell(num);
tLabel=new jxl.write.Label(1,7,"产品货号",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(1,7+i,stockOutcomeItem.getProduct().getProductNo());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(2,7,"产品名称",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(2,7+i,stockOutcomeItem.getProduct().getProductName());
ws.addCell(tLabel);

// //设置数字格式
// jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");   
// jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);   

tLabel=new jxl.write.Label(3,7,"销售价格",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(3,7+i,stockOutcomeItem.getPrice().toString());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(4,7,"数量",wcfFC);
ws.addCell(tLabel);
num=new jxl.write.Number(4,7+i,stockOutcomeItem.getNum());
ws.addCell(num);
tLabel=new jxl.write.Label(5,7,"合计",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(5,7+i,stockOutcomeItem.getAmount().toString());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(6,7,"备注",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(6,7+i,stockOutcomeItem.getRemark());
ws.addCell(tLabel);
if(i==list.size()-1){
tLabel=new jxl.write.Label(4,9+i,"单据金额",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(5,9+i,stockOutcome.getAmount().toString());
ws.addCell(tLabel);
}
i++;
}
} catch (Exception e) {
e.printStackTrace();
out.println("系统繁忙,请稍后再试...");
return null;
}finally{
wwb.write();
wwb.close();
}
//将创建好多excel下载下来
SmartUpload sm=new SmartUpload();//利用jspsmart进行下载
sm.initialize(getServlet().getServletConfig() ,request ,response);
try {
sm.setContentDisposition(null);
sm.downloadFile(path+pathUrl);
} catch (Exception e) {
e.printStackTrace();
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics