老兄我给你的建议:
1、不要在服务器端生成Excel报表。这种方法贻害无穷。因为我以前做项目的时候也曾经在服务器端用Excel组件生成报表。但是因为用户的操作或数据量大的问题结果服务器里滞留了很多的Excel组件,结果使系统变得很慢。而且如果报表修改异常麻烦,是个可怕的工作。
2、我建议的做法使:用Excel做成报表,然后保存成.jsp 格式(其实我们观察文件格式可以发现其实它是XML格式的,这很说明问题,因为这样在客户端用户的浏览器就可以调用Excel解释这个.jsp文件了。这也说明Excel对XML是兼容的)。然后再在这个jsp里面加上一段代码:<%@page contentType="application/vnd.ms-excel;charset=GBK" %>
3、这么做的好处:
  首先,不用在服务器端调用该死的Excel组件,不用占用大量内存,避免托跨你的服务器。
  其次,修改报表很方便,虽然你保存成了.jsp文件,你还是可以用Excel打开这个文件,
      修改之。而且这个.jsp文件你可以把它当做一个.xml文件用jsp语法控制之。很爽。
  其实吧,这些方法和iText做java报表的思想都是一样的。首先用可视化编辑器(Excel,iText)做一个XML文件,而这个文件可以被Excel或 Adobe Reader解析。

解决方案 »

  1.   

    在服务器上生成Excel并不需要用Excel的组件,POI就是纯Java的项目可以用来读些Excel文件的,同样可以在UNIX下运行。也可以这样处理,显示给用的是HTML报表,然后在报表旁加一个下载Excel报表的连接,然后提供下载Excel文件的链接给用户http://www.javayou.com
      

  2.   

    我是用POI在服务器硬盘生成一个excel文件,然后将路径记录到数据库中,最后通过jspsmartupload在IE里显示出来<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />mySmartUpload.initialize(pageContext);
    mySmartUpload.downloadFile(strExcelPath+"\\"+strReportName+".xls","application/vnd.ms-excel",strReportName);//vnd.ms-excel我的报表是客户自己定义的,可以删除,删除的时候将excel文件一起删除,并且每个报表只生成一个excel文件
      

  3.   

    liusoft(凤梨罐头) ( ) :
      我觉得根本没必要那么做。我们用中间格式XML的进行报表处理不是更好更高效吗?难道非要用那些复杂的东西去一个Cell一个Cell的去读写Excel?
      

  4.   

    真不明白你们难道非用那个java的POI。难道你们在得到客户休要更改报表的时候,要去修改很代码而且好多繁琐的格式设定。你们不觉得很麻烦吗?
      

  5.   

    可以试试JavaCellREport  http://www.javatoolsoft.com/cn
    一个java版的类似于Excel的报表..