- //创建EXCEL文档类型
- HSSFWorkbook wb = new HSSFWorkbook();
- //创建该EXCEL的第一页名为“订单报表”
- HSSFSheet sheet = wb.createSheet("订单报表");
- //行宽6000
- sheet.setColumnWidth(2, 6000);
- sheet.setColumnWidth(3, 6000);
- sheet.setColumnWidth(4, 6000);
- sheet.setColumnWidth(5, 6000);
- sheet.setColumnWidth(6, 6000);
- //创建单元格样式
- HSSFCellStyle style = wb.createCellStyle();
- style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
- style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
- // HSSFCellStyle style_bg = wb.createCellStyle(); // 样式对象
- // style_bg.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
- // style_bg.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
- // style_bg.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
- // style_bg.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);//设置单元格前景色
- HSSFCellStyle style_right = wb.createCellStyle();
- style_right.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
- style_right.setAlignment(HSSFCellStyle.ALIGN_RIGHT);//水平靠右
- HSSFCellStyle style_left = wb.createCellStyle();
- style_left.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
- style_left.setAlignment(HSSFCellStyle.ALIGN_LEFT);
- //创建第一页的第一行
- HSSFRow row = sheet.createRow((short) 0);
- //设置行高500
- row.setHeight((short)500);
- //合并单元格,参数依次为起始行,结束行,起始列,结束列
- sheet.addMergedRegion(new CellRangeAddress(0, (short) 0, 0, (short) 6));
- //创建第一行的第一个单元格
- HSSFCell ce = row.createCell(0);
- ce.setCellValue("一、订单基本信息"); // 表格的第一行第一列显示的数据
- ce.setCellStyle(style); // 样式,居中
- HSSFRow row2 = sheet.createRow((short) 1);
- sheet.addMergedRegion(new CellRangeAddress(1, (short) 1, 0, (short) 1));
- HSSFCell ce21 = row2.createCell(0);
- ce21.setCellValue("订单号"); // 表格的第二行第一列显示的数据
- ce21.setCellStyle(style); // 样式,居中
- HSSFCell ce22 = row2.createCell(2);
- if(order.getOrderid() != null){
- ce22.setCellValue(order.getOrderid()); // 表格的第二行第二列显示的数据
- }
- ce22.setCellStyle(style); // 样式,居中
- HSSFCell ce23 = row2.createCell(3);
- ce23.setCellValue("生产日期"); // 表格的第二行第三列显示的数据
- ce23.setCellStyle(style); // 样式,居中
- HSSFCell ce24 = row2.createCell(4);
- if(order.getEnddate() != null){
- ce24.setCellValue(order.getEnddate()); // 表格的第二行第四列显示的数据
- }
- ce24.setCellStyle(style); // 样式,居中
- HSSFCell ce25 = row2.createCell(5);
- ce25.setCellValue("订单数量"); // 表格的第二行第五列显示的数据
- ce25.setCellStyle(style); // 样式,居中
- HSSFCell ce26 = row2.createCell(6);
- if(order.getOrdernum() != null){
- ce26.setCellValue(order.getOrdernum()); // 表格的第二行第六列显示的数据
- }
- ce26.setCellStyle(style); // 样式,居中
- HSSFRow row3 = sheet.createRow((short) 2);
- sheet.addMergedRegion(new CellRangeAddress(2, (short) 2, 0, (short) 1));
- sheet.addMergedRegion(new CellRangeAddress(2, (short) 2, 4, (short) 6));
- HSSFCell ce31 = row3.createCell(0);
- ce31.setCellValue("生产机种"); // 表格的第二行第一列显示的数据
- ce31.setCellStyle(style); // 样式,居中
- HSSFCell ce32 = row3.createCell(2);
- if(statementForShow.getMachinename() != null){
- ce32.setCellValue(statementForShow.getMachinename()); // 表格的第二行第二列显示的数据
- }
- ce32.setCellStyle(style); // 样式,居中
- HSSFCell ce33 = row3.createCell(3);
- ce33.setCellValue("软件信息"); // 表格的第三行第三列显示的数据
- ce33.setCellStyle(style); // 样式,居中
- HSSFCell ce34 = row3.createCell(4);
- if(order.getOs_name() != null){
- ce34.setCellValue(order.getOs_name()); // 表格的第三行第四列显示的数据
- }
- ce34.setCellStyle(style); // 样式,居中
java文件生成下载:
- HttpServletResponse response = ServletActionContext.getResponse();
- response.reset();
- response.setContentType("application/x-msdownload");
- //EXCEL名字为“工单报表”
- String pName="工单报表";
- response.setHeader("Content-Disposition","p_w_upload; filename="+new String(pName.getBytes("gb2312"),"ISO-8859-1")+".xls");
- ServletOutputStream outStream=null;
- try{
- outStream = response.getOutputStream();
- wb.write(outStream);
- }catch(Exception e)
- {
- e.printStackTrace();
- }finally{
- outStream.close();
- }