JAVA EXCEL出力代码抽藏

报表数据导出到excel,用jxl工具 

Java代码 
  1. //导出到excel  
  2.     private boolean exportExcelOfJxl(List list, List<String> listHeader, String reportName) {  
  3.         WritableWorkbook wwb = null;  
  4.         boolean flag = true;  
  5.         Date now = new Date();  
  6.         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");  
  7.         try {  
  8.             //用Workbook类的工厂方法创建工作薄(Workbook)对象  
  9.             wwb = Workbook.createWorkbook(new File("d:/" + reportName + f.format(now) + ".xls"));  
  10.         } catch (IOException e) {  
  11.             e.printStackTrace();  
  12.             return flag = false;  
  13.         }  
  14.         if (wwb != null) {  
  15.             //创建一个可写入的工作表  
  16.             //Workbook的createSheet方法两个参数,1名称,2位置  
  17.             WritableSheet ws = wwb.createSheet(reportName, 0);  
  18.             //下面开始添加单元格  
  19.              //导出excel  
  20.             for (int n = 0; n < listHeader.size(); n++) {  
  21.                 Label labelC = new Label(n, 0, listHeader.get(n));  
  22.                 try {  
  23.                     ws.addCell(labelC);  
  24.                 } catch (RowsExceededException e) {  
  25.                     e.printStackTrace();  
  26.                     return flag = false;  
  27.                 } catch (WriteException e) {  
  28.                     e.printStackTrace();  
  29.                     return flag = false;  
  30.                 }  
  31.             }  
  32.   
  33.             for (int i = 1; i < list.size(); i++) {  
  34.                 for (int j = 0; j < listHeader.size(); j++) {  
  35.                     //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行  
  36.                     Object[] objs = (Object[]) list.get(i);  
  37.                     Label labelC;  
  38.                     if (objs[j] == null) {  
  39.                         labelC = new Label(j, i, "");  
  40.                     } else {  
  41.                         labelC = new Label(j, i, objs[j] + "");  
  42.                     }  
  43.                     try {  
  44.                         //将生成的单元格添加到工作表中  
  45.                         ws.addCell(labelC);  
  46.                     } catch (RowsExceededException e) {  
  47.                         e.printStackTrace();  
  48.                         return flag = false;  
  49.                     } catch (WriteException e) {  
  50.                         e.printStackTrace();  
  51.                         return flag = false;  
  52.                     }  
  53.                 }  
  54.             }  
  55.             try {  
  56.                 //从内存中写入文件中  
  57.                 wwb.write();  
  58.                 wwb.close();  
  59.                 return flag;  
  60.             } catch (IOException e) {  
  61.                 e.printStackTrace();  
  62.                 return flag = false;  
  63.             } catch (WriteException e) {  
  64.                 e.printStackTrace();  
  65.                 return flag = false;  
  66.             }  
  67.         }  
  68.         return flag;  
  69.     }  


报表数据导出到excel,用POI工具 


Java代码 
  1. private boolean exportExcelOfPOI(List list, List<String> listHeader, String reportName) {  
  2.         boolean flag = true;  
  3.         Date now = new Date();  
  4.         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");  
  5.         // 创建新的Excel 工作簿  
  6.         HSSFWorkbook workbook = new HSSFWorkbook();  
  7.         //建一工作表  
  8.         HSSFSheet   sheet   =   workbook.createSheet();  
  9.         workbook.setSheetName(0,reportName,HSSFWorkbook.ENCODING_UTF_16   );   
  10. //        HSSFSheet sheet = workbook.createSheet("报表");  
  11.           
  12.         //1、创建字体,设置其为红色、粗体:  
  13.         HSSFFont font = workbook.createFont();  
  14.         font.setColor(HSSFFont.COLOR_RED);  
  15.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  16.         //2、创建格式  
  17.         HSSFCellStyle cellStyle= workbook.createCellStyle();  
  18.         cellStyle.setFont(font);  
  19.   
  20.         // 生成excel表头  
  21.         for (int n = 0; n < listHeader.size(); n++) {  
  22.             HSSFRow row = sheet.createRow((short0);  
  23.             HSSFCell cell = row.createCell((short) n);  
  24.             // 定义单元格为字符集  
  25.             cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  26.             // 定义单元格为字符串类型  
  27.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
  28.             //应用样式  
  29.             cell.setCellStyle(cellStyle);  
  30.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
  31.             // 单元格内容  
  32.             cell.setCellValue(listHeader.get(n));  
  33.         }  
  34.         for (int i = 1; i < list.size(); i++) {  
  35.             for (int j = 0; j < listHeader.size() - 1; j++) {  
  36.                 Object[] objs = (Object[]) list.get(i);  
  37.                 //再第二行开始  
  38.                 HSSFRow row = sheet.createRow((short) i);  
  39.                 //再第0列开始  
  40.                 HSSFCell cell = row.createCell((short) j);  
  41.                 // 定义单元格为字符集  
  42.                 cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  43.                 cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
  44.                 // 单元格内容  
  45.                 if (objs[j] == null) {  
  46.                     cell.setCellValue("");  
  47.                 } else {  
  48.                     cell.setCellValue(objs[j] + "");  
  49.                 }  
  50.             }  
  51.         }  
  52.         try {  
  53.             // 新建一输出文件流  
  54.             FileOutputStream fOut = new FileOutputStream("d:/" + reportName + f.format(now) + ".xls");  
  55.             // 把相应的Excel 工作簿存盘  
  56.             workbook.write(fOut);  
  57.             fOut.flush();  
  58.             // 操作结束,关闭文件  
  59.             fOut.close();  
  60.             return flag;  
  61.         } catch (Exception e) {  
  62.             return flag = false;  
  63.         }  
  64.     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值