`

Excel報表的導出實現

阅读更多
java 代码
  1. package Excel;   
  2. import java.io.*;   
  3. import java.lang.*;   
  4. import org.apache.poi.hssf.util.*;   
  5. import org.apache.poi.hssf.usermodel.*;   
  6. import org.apache.poi.poifs.filesystem.POIFSFileSystem;   
  7. import java.util.Enumeration;   
  8. import java.util.Vector;   
  9. public class Test   
  10. {   
  11.     HSSFSheet sheet;   
  12.     public Test() {}           
  13. public void write(String filename,String[][] conent,String path)   
  14. {   
  15.     try  
  16.         {   
  17.             POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(path + "\\Test.xls"));   
  18.             HSSFWorkbook wb = new HSSFWorkbook(fs);   
  19.             sheet = wb.getSheetAt(0);   
  20.             HSSFRow row;   
  21.             HSSFCell cell;   
  22.             FileOutputStream fileOut = new FileOutputStream(path+"\\"+filename+".xls");  
  23.             BufferedOutputStream bf=new BufferedOutputStream(fileOut);  
  24.             row = sheet.getRow(2);  
  25.               
  26.             cell = row.getCell((short)0);  
  27.             HSSFCellStyle style1 = cell.getCellStyle();  
  28.               
  29.             cell = row.getCell((short)1);  
  30.             HSSFCellStyle style2 = cell.getCellStyle();  
  31.               
  32.             cell = row.getCell((short)2);  
  33.             HSSFCellStyle style3 = cell.getCellStyle();  
  34.               
  35.             cell = row.getCell((short)3);  
  36.             HSSFCellStyle style4 = cell.getCellStyle();    
  37.      
  38.     int i=0;  
  39.     while(i<conent.length)  
  40.     {                     
  41.           
  42.               
  43.             row = sheet.createRow((short)(2+i));  
  44.               
  45.             
  46.             cell = row.createCell((short)0);  
  47.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  48.             cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  49.             cell.setCellStyle(style1);  
  50.             cell.setCellValue(i+1);  
  51.       
  52.             cell = row.createCell((short)1);  
  53.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  54.             cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  55.             cell.setCellStyle(style2);  
  56.             cell.setCellValue(conent[i][0]);  
  57.               
  58.             cell = row.createCell((short)2);  
  59.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  60.             cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  61.             cell.setCellStyle(style3);  
  62.             cell.setCellValue(conent[i][1]);  
  63.               
  64.             cell = row.createCell((short)3);  
  65.             cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  66.             cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  67.             cell.setCellStyle(style4);  
  68.             cell.setCellValue(conent[i][2]);              
  69.             i++;  
  70.         }         
  71.                 wb.write(bf);  
  72.  
  73.     fileOut.close();  
  74.     bf.close();  
  75.     
  76.   }  
  77.     catch(Exception e)  
  78.         {  
  79.             System.out.println (">>>>>>>");   
  80.         }     
  81.    }   
  82.   
  83.     public HSSFRow  getRow(int irow)   
  84.     {   
  85.         HSSFRow row = sheet.getRow(irow);   
  86.   
  87.         if(row==null)   
  88.         {   
  89.             row = sheet.createRow((short)irow);//====>>   
  90.         }   
  91.         return row;   
  92.     }   
  93.        
  94.     public HSSFCell getCell(HSSFRow row, int icol)   
  95.     {   
  96.         HSSFCell cell = row.getCell((short)icol);   
  97.         if (cell == null)   
  98.         {   
  99.             cell = row.createCell((short)icol);   
  100.         }   
  101.         return cell;   
  102.     }   
  103.        
  104. }  

2、下載頁面
java 代码
  1. <%@ page contentType="application/x-msdownload;charset=Big5" %>   
  2. <%@ page import="java.io.*,java.util.*" %>   
  3. <html>   
  4. <head>   
  5. <title>下載頁面</title>   
  6. <meta http-equiv="Content-Type" content="application/x-msdownload;charset=big5">   
  7. </head>   
  8. <script LANGUAGE="JavaScript">    
  9. </script>   
  10. <body>   
  11. <jsp:useBean id="test_excel" class="Excel.Test" scope="page" />   
  12.     <%         
  13.         Vector vector = (Vector)session.getAttribute("test_vector");   
  14.         int size = vector.size();   
  15.         String[][] value = new String[size][16];   
  16.         for(int i = 0;i<vector.size();i++)   
  17.             value[i] = (String[])vector.get(i);   
  18.         String user_id = (String) session.getAttribute("se_userid");   
  19.         String RPath=request.getRealPath("")+"\\excel";    
  20.         String name=user_id + "_"+"test_count";   
  21.         test_excel.write(name,value,RPath);        
  22. ///////////////////////////////////////////////////////////////////   
  23.         String fname = name + ".xls";   
  24.         fname = new String(fname.getBytes("ISO-8859-1"));   
  25.         String path = "/excel/"+fname;   
  26.          int blockSize = 65000;   
  27.          File file = new File(application.getRealPath(path));   
  28.          if(file.exists())   
  29.          {   
  30.              FileInputStream fileIn = new FileInputStream(file);   
  31.              long fileLen = file.length();   
  32.              int readBytes = 0;   
  33.              int totalRead = 0;   
  34.              byte b[] = new byte[blockSize];   
  35.              response.reset();   
  36.              response.setContentType("application/x-msdownload");   
  37.              response.setContentLength((int)fileLen);   
  38.   
  39.              response.setHeader("Content-Disposition","attachment;filename=\""+fname+"\"");   
  40.              OutputStream out2=response.getOutputStream();   
  41.              try  
  42.              {   
  43.                  while((long)totalRead < fileLen)    
  44.                  {   
  45.                      readBytes = fileIn.read(b, 0, blockSize);   
  46.                      totalRead += readBytes;   
  47.                      out2.write(b, 0, readBytes);   
  48.                  }   
  49.                  out2.close();   
  50.              }   
  51.              catch(Exception e)   
  52.              {   
  53.              }   
  54.              finally  
  55.              {   
  56.                  out2.close();   
  57.                  fileIn.close();   
  58.                  file.delete();    
  59.              }   
  60.         }   
  61.         vector.clear();   
  62.         session.setAttribute("test_vector",vector);   
  63.         %>   
  64. </body>   
  65. </html>   
3、測試下載頁面
java 代码
  1. <%@ page import="java.util.*"%>   
  2. <%@ page contentType="text/html;charset=big5"%>   
  3. <html>   
  4. <head>   
  5. <title>測試頁面</title>   
  6. </head>   
  7. <body>   
  8.     <%   
  9.      Vector  vector = new Vector();   
  10.         String temp[] = new String[10];   
  11.         int j=0;   
  12.     while(j<100)   
  13.     {   
  14.         for(int i=0;i<10;i++)   
  15.         {      
  16.             temp[i]="test ";   
  17.         }   
  18.         j++;   
  19.         vector.add(temp);   
  20.     }   
  21.   
  22.         session.setAttribute("test_vector",vector);   
  23.   %>   
  24.     <a href="test_download.jsp">生成報表</a>    
  25. </body>   
  26. </html>  
分享到:
评论
1 楼 jeans 2006-12-26  
while(i<conent.length)

相关推荐

    Excel报表导出,复杂Excel模板导出(带单元格合并),jxls2

    总结起来,这个项目通过`jxls2`库提供了一种高效、灵活的Excel报表导出解决方案,支持单元格合并和复杂的模板设计,能够满足多样化的需求,对于提升企业级应用的数据处理能力有着显著的作用。开发者只需花费较少的...

    使用Aspose.Cells for java完成复杂Excel报表导出

    这篇博客“使用Aspose.Cells for Java完成复杂Excel报表导出”显然会深入探讨如何利用这个库来创建复杂的电子表格报告,而无需依赖Microsoft Excel本身。Aspose.Cells提供了丰富的API,能够帮助程序员实现对Excel...

    excel 报表导出 模块框架 jar

    个人写的excel模板导出jar, 采用的是在excel中配置${\...写的比较粗糙,因为公司的报表导出大概在20个左右,每个特征比较明显.不雷同。所以上传请大家指正。 如果有写的更好的 也希望大家能发我参考参考。 用的jxl 非poi

    水晶报表导出excel表格

    水晶报表导出Excel表格 水晶报表是一种流行的报表生成工具,它可以将报表导出到多种格式,包括Excel表格。在本文中,我们将介绍如何使用水晶报表将报表导出到Excel表格。 首先,在Visual Studio中创建一个新的...

    如何实现Excel报表导出

    如何实现Excel报表导出,里面实现了数据的上下合并,剃头的上下合并,这个东西作为学习用,用 web开发可以参考我的博客思想 : http://blog.csdn.net/billwindows/archive/2008/07/24/2703342.aspx

    通过报表导出EXCEL

    通过报表导出有格式的EXCEL文件!方便EXCEL格式调整!

    excel导出实现代码

    以下是对"Excel导出实现代码"这一主题的详细解释。 一、Apache POI简介 Apache POI是Java领域中的一个流行库,它允许开发者通过编程方式创建、修改和读取Microsoft Office格式的文件。对于Excel文件,POI提供了HSSF...

    POI报表导出excel

    在这个“POI报表导出excel”的案例中,我们将深入探讨如何使用POI 3.6版本来实现报表的导出,包括设置Excel样式、合并单元格以及处理多表头的合并。 首先,我们需要了解Apache POI的核心组件:HSSFWorkbook(用于...

    水晶报表如何完美导出一个Excel表格

    或者,可以通过编程方式(如VBA)在导出后自动化处理Excel文件,以实现宏和公式的应用。 9. **批次导出**:如果需要导出大量报表,可以编写脚本或使用水晶报表的API进行批量操作,提高效率。 10. **错误处理和调试...

    帆软报表导出各种格式(excel/word/pdf等)

    在本主题中,我们将探讨如何使用帆软报表导出各种格式,包括Excel、Word和PDF等,以便满足不同场景下的需求。 首先,我们要知道帆软报表的导出功能依赖于两个核心的Java类库:fr-server-6.5.jar和fr-third-6.5.jar...

    EXCEL报表,组合报表,复杂报表,报表导出功能齐全。

    标题提到的"EXCEL报表,组合报表,复杂报表,报表导出功能齐全",这显然是一款能够处理多种类型报表的软件,它不仅支持基本的Excel报表格式,还具备创建组合报表和处理复杂报表的能力,并且具有全面的报表导出功能。...

    VB.net 将水晶报表导出成pdf,word,excel等制定文件

    这个程序实例重点展示了如何利用Crystal Reports的API将报表导出为PDF、Word和Excel等常见文件格式。以下是关于这个主题的详细知识讲解: 1. **水晶报表简介** - 水晶报表是SAP公司的一款产品,专门用于设计和生成...

    Visual C++源代码 173 如何把水晶报表导出到Excel文件

    Visual C++源代码 173 如何把水晶报表导出到Excel文件Visual C++源代码 173 如何把水晶报表导出到Excel文件Visual C++源代码 173 如何把水晶报表导出到Excel文件Visual C++源代码 173 如何把水晶报表导出到Excel文件...

    easyPoi模板导出Excel报表(xls 和xlsx 都支持)

    同时,它还有良好的扩展性,可以结合Spring等框架,实现更复杂的报表导出逻辑。 总的来说,EasyPoi通过模板方式导出Excel报表,大大简化了开发工作,提高了工作效率。开发者只需要关注数据的处理,而无需关心Excel...

    多个润乾报表,导出到一个excel中的不同sheet页中

    通过上述知识点的运用,我们可以构建一个程序或脚本,根据用户的需求将多个润乾报表导出到一个Excel文件的不同sheet页中,从而提高数据管理和分析的效率。同时,这也是数据分析和报告自动化的一个典型应用场景。

    个性化定制excel报表数据导出工具

    《个性化定制Excel报表数据导出工具深度解析》 在当今信息化时代,数据处理与分析已经成为企业日常运营不可或缺的一部分。Excel作为广泛使用的电子表格工具,其强大的数据管理与分析功能深受用户喜爱。然而,随着...

    java操作Excel\Web应用导出Excel报表的简单实现 .htm

    java操作Excel\Web应用导出Excel报表的简单实现 .htm

    不打开EXCEL导出EXCEL报表

    不打开EXCEL导出EXCEL报表

    ajax实现excel报表导出

    利用ajax实现excel报表导出【解决乱码问题】,供大家参考,具体内容如下 背景 项目中遇到一个场景,要导出一个excel报表。由于需要token验证,所以不能用a标签;由于页面复杂,所以不能使用表单提交。初步考虑前端...

    代码实现 EXCEL 导出报表

    本文将深入探讨如何通过代码实现在Python中导出EXCEL报表,主要涉及的关键库包括pandas和openpyxl。 首先,我们需要了解pandas库。Pandas是Python中一个强大的数据处理库,它提供了DataFrame对象,可以方便地进行...

Global site tag (gtag.js) - Google Analytics