@RequestMapping("cusAreasExcelExport")
public void cusAreasExcelExport(HttpServletRequest request,HttpServletResponse response) throws IOException{
logger.info("客戶月結訂單導出");
String ids=request.getParameter("gdIds");
String[] gdIds = ids.substring(0, ids.length()-1).split(",");
HSSFWorkbook workBook = new HSSFWorkbook();
HSSFSheet sheet = workBook.createSheet("客戶月結統計表");
String fileName = new String("客戶月結統計表".getBytes(),"iso-8859-1")+".xls";
int rownum = 0;
String[] headers = {"下單日期","單號","訂單狀態","結款狀態","客戶","電話","運費","加急費用","特殊費用","總計"};
HSSFRow headRow = sheet.createRow(rownum++);
HSSFCellStyle cellStyle = workBook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
sheet.addMergedRegion(new CellRangeAddress(0,0,0,headers.length-1));
HSSFCell headCell=headRow.createCell(0);
headCell.setCellValue("客戶月結統計表");
headCell.setCellStyle(cellStyle);
HSSFRow row = sheet.createRow(rownum++);
for(int i = 0;i < headers.length;i++){
HSSFCell cell = row.createCell(i);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
BigDecimal freightTotal = new BigDecimal("0.00");
BigDecimal jiajiTotal = new BigDecimal("0.00");
BigDecimal teshuTotal = new BigDecimal("0.00");
BigDecimal allTotal = new BigDecimal("0.00");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for(String gdId:gdIds){
N25175Goods gd = gdService.selectByPrimaryKey(Integer.parseInt(gdId));
HSSFRow row1 = sheet.createRow(rownum++);
//下單日期
row1.createCell(0).setCellValue(format.format(gd.getGdCtime()));
//單號
row1.createCell(1).setCellValue(gd.getGdNo());
//訂單狀態
if(gd.getGdState()== ConstantUtil.GD_STATE_DAIJIEDAN_0){
row1.createCell(2).setCellValue("待接單");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_YIJIEDAN_1){
row1.createCell(2).setCellValue("已接單");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_YILANJIAN_2){
row1.createCell(2).setCellValue("已攬件");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_DAIFACHE_3){
row1.createCell(2).setCellValue("待發車");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_YIFACHE_4){
row1.createCell(2).setCellValue("已發車");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_YIDAOHUO_5){
row1.createCell(2).setCellValue("已到貨");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_DAIPAISONG_6){
row1.createCell(2).setCellValue("待派送");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_PAISONGZHONG_7){
row1.createCell(2).setCellValue("派送中");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_YIQIANSHOU_8){
row1.createCell(2).setCellValue("已簽收");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_TUIJIAN_9){
row1.createCell(2).setCellValue("退件");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_YIQUXIAO_10){
row1.createCell(2).setCellValue("已取消");
}else if(gd.getGdState() == ConstantUtil.GD_STATE_ZITI_11){
row1.createCell(2).setCellValue("自提");
}
//結款狀態
if(gd.getGdPaymethod() == ConstantUtil.GD_PAYMETHOD_YUEJIEWEIJIE_2){
row1.createCell(3).setCellValue("月結未結");
}else if(gd.getGdPaymethod()==ConstantUtil.GD_PAYMETHOD_YUEJIEYIJIE_3){
row1.createCell(3).setCellValue("月結已結");
}
//客戶姓名
row1.createCell(4).setCellValue(gd.getCusName1());
//客戶電話
row1.createCell(5).setCellValue(gd.getCusPhone1());
//運費
row1.createCell(6).setCellValue(gd.getGdFreight().doubleValue());
freightTotal=freightTotal.add(gd.getGdFreight()==null?zero:gd.getGdFreight());
//加急費用
row1.createCell(7).setCellValue(gd.getGdJiaji().doubleValue());
jiajiTotal = jiajiTotal.add(gd.getGdJiaji()==null?zero:gd.getGdJiaji());
//特殊費用
row1.createCell(8).setCellValue(gd.getGdTeshu().doubleValue());
teshuTotal = teshuTotal.add(gd.getGdTeshu()==null?zero:gd.getGdTeshu());
//總計
row1.createCell(9).setCellValue(gd.getGdTotal().doubleValue());
allTotal=allTotal.add(gd.getGdTotal()==null?zero:gd.getGdTotal());
}
//統計行
HSSFRow row2 = sheet.createRow(++rownum);
row2.createCell(0).setCellValue("總計:");
//運費總和
row2.createCell(6).setCellValue(freightTotal.doubleValue());
//加急費用
row2.createCell(7).setCellValue(jiajiTotal.doubleValue());
//特殊費用
row2.createCell(8).setCellValue(teshuTotal.doubleValue());
//總計
row2.createCell(9).setCellValue(allTotal.doubleValue());
//寬度爲1.5倍
for(int i = 0;i < headers.length; i++){
sheet.autoSizeColumn(i);
sheet.setColumnWidth(i, sheet.getColumnWidth(i)*15/10);
}
response.setContentType("application/octent-stream");
response.setHeader("Content-disposition","attachement;filename="+fileName);
response.flushBuffer();
workBook.write(response.getOutputStream());
}
java poi excel 導出
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.