B/S架构的OA系统
现在用户有一个需求就是“凡是有表格列表的地方都需要有导出Excel的功能”
我需要写一个接口  让编写各个模块的同事调用  从而达到所有列表信息均可以导出Excel的效果想请教一下各位采用什么方法好一些呢?
1、通过客户端用JS抓取页面的方式导出不可用,因为好多列表页面均存在其他控件,用次方法会将这些控件一并抓取到Excel中
2、如果通过服务器端导出,我原来想的是,定义接口,同事传给我4个参数,分别为:
   (1)、sql语句           ------执行查询语句
   (2)、需要显示的中文列名------excel中显示
   (3)、每列的数据类型()--------读取结果集时使用
  但该方法很快便被我pass了,因为就目前来看,这些列表信息中不完全都是使用一条sql读出的结果,比如第一、二、三列 是使用一条sql,但第四列却是使用的另外一句sql。这样的话  上述接口就不能满足我的要求了,并且传递sql语句也是不安全的做法(考虑过加密,但有时解密结果会有偏差)PS:没有使用其他框架  采取的jsp+javabean模式  采取的jdbc
因为各同事的模块差不多均已编写完毕,所以想请教一下大家,我该如何设计该通用接口,让同事改动最小的代码实现该功能呢?
谢谢大家~~

解决方案 »

  1.   

    PS:目前是想在服务端采取POI导出
      

  2.   

    不用这么麻烦response的时候,定义content-type为csv格式然后直接输出csv文本(不要加html文本)
    例如:
          aaa,bbb,123
         ccc,ddd,456
      

  3.   

    POI这么用的一个框架放着不用真是太可惜了
    用POI写一个EXCEL导出的功能也不要多少代码
    试试吧
      

  4.   

    看我的一个文章吧,我弄了一个通用的表格导出为Excel的Java类,注意不是那种伪装的xls,而是真真正正的xls哦。使用了jxl。限制,不能有嵌套的表格
    http://www.java2000.net/p1977
      

  5.   

    3楼说的是这中方法吗?这样生成的excel没有文字的部分没有边框
     response.setHeader("Content-disposition","inline; filename=test1.xls");<%@ page contentType="application/msexcel;charset=utf-8" %>
      

  6.   

    to  4楼
    poi导出的代码是没有多少  可是我找不到题目中通用的思路,同样感谢
      

  7.   

    你弄个导出excel的标签参照extreme component导出标签
      

  8.   


    是的,是这个。
    这个最大的好处就是,用户不安装office也没有关系。