/**
* 作者:刘鹏
* 时间:2013-07-16
* 描述:将入库商品数据导出到EXCEL中
*/
@SuppressWarnings("deprecation")
public String outputStatisticsData(){
//创建response对象
HttpServletResponse response = ServletActionContext.getResponse() ;
//创建一个新的EXCEL
HSSFWorkbook workBook = new HSSFWorkbook();
//创建sheet页
HSSFSheet sheet0 = workBook.createSheet();
//sheet页名称
workBook.setSheetName(0, "仓库商品导出信息 ");
//设置Sheet页为默认
sheet0.setSelected(true);
//设置放大比例
//sheet0.setZoom(6,5);
//创建header页
HSSFHeader header = sheet0.getHeader();
//设置标题居中
header.setCenter("标题");
//让Sheet页自适应页面大小
//PrintSetup ps = sheet0.getPrintSetup();
//ps.setFitHeight((short)1);
//ps.setFitWidth((short)1);
//设置自动换行
sheet0.setAutobreaks(true) ;
//设置列宽
sheet0.setColumnWidth((short)0,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)1,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)2,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)3,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)4,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)5,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)6,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)7,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
sheet0.setColumnWidth((short)8,(short)(35.7*80));//设置列宽(35.7*n,其中n是像素值)
/*******************************以下为第一行数据********************************/
//设置第一行为上报表的表头
HSSFRow row0 = sheet0.createRow((short)0); //取得Excel对象的第一行
row0.setHeightInPoints((short)30.0) ;
HSSFCell cell0 = row0.createCell((short)0) ;//合并单元格 第一行就只有一条数据
cell0.setCellValue("电子商务云平台仓库管理单据记录表") ;
//创建Excel合并单元格对象
sheet0.addMergedRegion(new CellRangeAddress(
0, //firstRow这是从第一行开始
0, //lastRow 这是终结的行号
0, //firstCol这是第一列的号码
8)); //lastCol这是要合并的最后一列
//创建单元格的格式
CellStyle cellStyleHeader = workBook.createCellStyle() ;
//设置单元格的水平居中
cellStyleHeader.setAlignment(XSSFCellStyle.ALIGN_CENTER) ;
//设置单元格的垂直居中
cellStyleHeader.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER) ;
//设置单元格的北京颜色25%的灰色
//cellStyleHeader.setFillBackgroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
cellStyleHeader.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
cellStyleHeader.setFillPattern(CellStyle.SOLID_FOREGROUND);
//创建字体格式
Font fontHeader = workBook.createFont() ;
//设置字体加粗显示
fontHeader.setBoldweight(Font.BOLDWEIGHT_BOLD) ;
//设置字体的字号size
fontHeader.setFontHeightInPoints((short)20) ;
//设置字体的文字类型
fontHeader.setFontName("黑体");
//fontHeader.setItalic(true) ;//设置是否为斜体
//对第一行的标题文字进行加样式
cell0.setCellStyle(cellStyleHeader) ; //第一行加载样式
cellStyleHeader.setFont(fontHeader) ; //单元格加载样式
/**********************以上为第一行数据*********************/
/***********************以下为内容数据***********************/
//设置第2行数据
HSSFRow row2 = sheet0.createRow((short)1) ;
HSSFCell cell2_0 = row2.createCell((short)0);
cell2_0.setCellValue("序号") ;
HSSFCell cell2_1 = row2.createCell((short)1);
cell2_1.setCellValue("商品名称") ;
HSSFCell cell2_2 = row2.createCell((short)2);
cell2_2.setCellValue("商品类别") ;
HSSFCell cell2_3 = row2.createCell((short)3);
cell2_3.setCellValue("商品数量");
HSSFCell cell2_4 = row2.createCell((short)4);
cell2_4.setCellValue("库存量") ;
HSSFCell cell2_5 = row2.createCell((short)5);
cell2_5.setCellValue("操作时间");
HSSFCell cell2_6 = row2.createCell((short)6);
cell2_6.setCellValue("仓库名称");
HSSFCell cell2_7 = row2.createCell((short)7);
cell2_7.setCellValue("供应商名称");
HSSFCell cell2_8 = row2.createCell((short)8);
cell2_8.setCellValue("接收者");
//获取导出数据的数据源
Store store=new Store();
store.setIo_flag("0");
List<Store> list = getiStoreService().selectOutputStatisticsData(store);
//数据填写
for(int i = 0; i < list.size();i++){
HSSFRow tempRow = sheet0.createRow((short)2+i) ;
HSSFCell cell3_0 = tempRow.createCell((short)0);
cell3_0.setCellValue(list.get(i).getIo_id());
HSSFCell cell3_1 = tempRow.createCell((short)1);
cell3_1.setCellValue(list.get(i).getIo_name());
HSSFCell cell3_2 = tempRow.createCell((short)2);
cell3_2.setCellValue(list.get(i).getIo_type());
HSSFCell cell3_3 = tempRow.createCell((short)3);
cell3_3.setCellValue(list.get(i).getIo_amount());
HSSFCell cell3_4 = tempRow.createCell((short)4);
cell3_4.setCellValue(list.get(i).getIo_reserve());
HSSFCell cell3_5 = tempRow.createCell((short)5);
cell3_5.setCellValue(list.get(i).getIo_time());
HSSFCell cell3_6 = tempRow.createCell((short)6);
cell3_6.setCellValue(list.get(i).getIo_s_name());
HSSFCell cell3_7 = tempRow.createCell((short)7);
cell3_7.setCellValue(list.get(i).getIo_su_name());
HSSFCell cell3_8 = tempRow.createCell((short)8);
cell3_8.setCellValue(list.get(i).getIo_person());
}
/********************以上为内容数据*********************/
/*****以下为利用response对象利用输出流输出到客户端******/
//通过Response把数据以Excel格式保存
response.reset();
//设置response流信息的头类型,MIME码
response.setContentType("application/msexcel;charset=UTF-8");
//设置时间
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String str = s.format(date);
try {
response.addHeader("Content-Disposition", "attachment;filename=\""
+new String(("电子商务云平台仓库管理单据记录表"+str+".xls").getBytes("GBK"),
"ISO8859_1") + "\"");
//创建输出流对象
OutputStream out = response.getOutputStream();
//将创建的Excel对象利用二进制流的形式强制输出到客户端去
workBook.write(out);
//强制将数据从内存中保存
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
/*****以上为利用response对象利用输出流输出到客户端******/
return null;
}
POI
最新推荐文章于 2023-08-23 14:08:07 发布