【javaWeb】Struts 2导出excel文件

 一、功能:将界面table数据,导出为excel文件保存

二、具体实现:

2.1 jsp

 

序号书名作者价格

1 科幻世界 匿名 10
2 语文 驾教育出版社 23.5
3 落花 张三 10.5

注:button: <input type="button" value="导出excel" onclick="exportExcel()">

确定 引入调用的正确 js文件

2.2 js

Html代码 复制代码  收藏代码
  1. <SPAN style="FONT-SIZE: 14px">function exportExcel(){   
  2.     alert("导出");    
  3.     var archiveaccount = document.forms['arcAccount'];   
  4.     archiveaccount.submit();   
  5. }</SPAN>  
function exportExcel(){     alert("导出");      var archiveaccount = document.forms['arcAccount'];     archiveaccount.submit(); }

2.3 action

 

Java代码 复制代码  收藏代码
  1. <SPAN style="FONT-SIZE: 14px">public String exportExcel() throws Exception {   
  2.         List<List<Object>> data = getExportData();    //将表格数据转换为list,此方法省略   
  3.         String fn = new String(("ArchiveAccount"+new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())).getBytes(), "ISO-8859-1")+ ".xls";    //设置导出文件名   
  4.         if(createExcel(fn, data, "统计结果")){   
  5.             return "success";   
  6.         }   
  7.            return "init";   
  8.     }</SPAN>  
public String exportExcel() throws Exception {         List<List<Object>> data = getExportData();    //将表格数据转换为list,此方法省略         String fn = new String(("ArchiveAccount"+new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())).getBytes(), "ISO-8859-1")+ ".xls";    //设置导出文件名         if(createExcel(fn, data, "统计结果")){             return "success";         }            return "init";     }

 

 

Java代码 复制代码  收藏代码
  1. <SPAN style="FONT-SIZE: 14px"/**  
  2.    * 创建新的Excel 工作簿  
  3.    * */  
  4.   public boolean createExcel(String filename, List<List<Object>> data,String sheetName) {   
  5.       HSSFWorkbook workbook = null;   
  6.       HSSFSheet sheet = null;   
  7.       HSSFRow[] rows = null;   
  8.       HSSFCell[][] cells = null;   
  9.       workbook = new HSSFWorkbook();   
  10.       if (sheetName.trim().equals("")) {   
  11.           sheet = workbook.createSheet("表");   
  12.       } else {   
  13.           sheet = workbook.createSheet(sheetName);   
  14.       }   
  15.       try {   
  16.           int row = 0;   
  17.           int col = 0;   
  18.           if (data.size() > 0) {   
  19.               row = data.size();   
  20.               col = data.get(0).size();   
  21.           }   
  22.           rows = new HSSFRow[row];   
  23.           cells = new HSSFCell[row][col];   
  24.           for (int i = 0; i < data.size(); i++) {   
  25.               rows[i] = sheet.createRow((short) i);   
  26.               for (int j = 0; j < data.get(i).size(); j++) {   
  27.                   cells[i][j] = rows[i].createCell((short) j);   
  28.                   cells[i][j].setCellType(HSSFCell.CELL_TYPE_STRING);   
  29.                   if (data.get(i).get(j) != null  
  30.                           && !data.get(i).get(j).toString().trim().equals("")) {   
  31.                       cells[i][j].setCellValue(data.get(i).get(j).toString()   
  32.                               .trim());   
  33.                   } else {   
  34.                       cells[i][j].setCellValue("");   
  35.                   }   
  36.               }   
  37.           }   
  38.         ByteArrayOutputStream baos = new ByteArrayOutputStream();   
  39.           HttpUitls.getResponse().setHeader("Content-disposition","attachment; filename=" +filename);   
  40.           workbook.write(baos);   
  41.           byte[] ba = baos.toByteArray();     
  42.           excelStream = new ByteArrayInputStream(ba);     
  43.           return true;   
  44.       } catch (Exception e) {   
  45.           return false;   
  46.       }   
  47.   }</SPAN>  
   /**      * 创建新的Excel 工作簿      * */     public boolean createExcel(String filename, List<List<Object>> data,String sheetName) {         HSSFWorkbook workbook = null;         HSSFSheet sheet = null;         HSSFRow[] rows = null;         HSSFCell[][] cells = null;         workbook = new HSSFWorkbook();         if (sheetName.trim().equals("")) {             sheet = workbook.createSheet("表");         } else {             sheet = workbook.createSheet(sheetName);         }         try {             int row = 0;             int col = 0;             if (data.size() > 0) {                 row = data.size();                 col = data.get(0).size();             }             rows = new HSSFRow[row];             cells = new HSSFCell[row][col];             for (int i = 0; i < data.size(); i++) {                 rows[i] = sheet.createRow((short) i);                 for (int j = 0; j < data.get(i).size(); j++) {                     cells[i][j] = rows[i].createCell((short) j);                     cells[i][j].setCellType(HSSFCell.CELL_TYPE_STRING);                     if (data.get(i).get(j) != null                             && !data.get(i).get(j).toString().trim().equals("")) {                         cells[i][j].setCellValue(data.get(i).get(j).toString()                                 .trim());                     } else {                         cells[i][j].setCellValue("");                     }                 }             }           ByteArrayOutputStream baos = new ByteArrayOutputStream();             HttpUitls.getResponse().setHeader("Content-disposition","attachment; filename=" +filename);             workbook.write(baos);             byte[] ba = baos.toByteArray();               excelStream = new ByteArrayInputStream(ba);               return true;         } catch (Exception e) {             return false;         }     }

 

你可能感兴趣的:(Excel)