无忧脚本 » JSP & Java & J2SE 后台编程讨论版 » 【求助】如何将jsp里的表格导出到excel

2006-3-21 14:23 java007
【求助】如何将jsp里的表格导出到excel

如何将jsp里的表格导出到excel

2006-3-24 12:25 fly8859
我现在的做法是在点击“EXCEL”的时候调用一个SERVLET来实现;
response.setContentType("application/vnd.ms-excel;charset=GBK");
不过这个方法很笨的是需要在里面写一次生成数据表格的逻辑,如果在页面上已经写过了,这时再写就重复了。
我一直没找到好的方法,如果哪位有好的方法或推荐的网址,先谢了。

2006-3-25 14:53 zhoufoxcn
好像有个开源API,前几天别人让我修改的代码里就用到了那项技术,没用过,给你个思路。

2006-7-19 08:51 walsece
简单的可以通过javascript将页面中显示出来的数据直接倒入到excel中,复杂的可以通过jxl来实现,非常好用,可以实现复杂的excel数据倒入。

2006-7-19 09:53 Javr
[url]http://www-128.ibm.com/developerworks/cn/java/l-javaExcel/[/url]

2008-8-28 22:34 cqdjwp
我是通过poi来导出到EXCEL。

2008-12-17 21:13 fenghunwj
这个是直接从页面上把数据存入EXCEL中的做法!
  我以前用过的!不知道适不适合你用

[code]function CellAreaExcel() {
        var t = document.getElementById("TableExcel");
        var rowNum = 0;
        var oXL = new ActiveXObject("Excel.Application"); //创建应该对象
        var oWB = oXL.Workbooks.Add();//新建一个Excel工作簿
        var oSheet = oWB.ActiveSheet;//指定要写入内容的工作表为活动工作表
        var beginCol = 0;
        var rowSpans = 1;  //行合并
        var colSpans = 1;  //列合并
        oXL.visible = true;
        var Lenr = t.rows.length;
           //总列数据
        var colsNum = t.rows(0).cells.length - 2;
           //对于第一行的标题部分进行合并居中,
        var excRange = oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, colsNum));
        excRange.Merge(true);
        excRange.value = "\u6c34\u529f\u80fd\u533a\u6392\u6c61\u54c1\u4fe1\u606f\u6d4f\u89c8";
        excRange.HorizontalAlignment = 3;//'居中
        excRange.Font.Name = "\u9ed1\u4f53";
        for (i = 0; i < Lenr - 1; i++) {
                var Lenc = t.rows(i).cells.length;
                for (j = 1; j < Lenc - 1; j++) {
                        oSheet.Cells(i + 2, j).value = t.rows(i).cells(j).innerText;
                }
        }
         
           //字符大小为9
        oSheet.Range(oSheet.Cells(2, 1), oSheet.Cells(Lenc + 2, colsNum)).Font.Size = 9;
     //居中
        oSheet.Range(oSheet.Cells(2, 1), oSheet.Cells(Lenc + 2, colsNum)).HorizontalAlignment = 3;
     //自动调整列宽
        oSheet.Range(oSheet.Cells(2, 1), oSheet.Cells(Lenc + 2, colsNum)).Columns.AutoFit();
     //自动调整行高
        oSheet.Range(oSheet.Cells(2, 1), oSheet.Cells(Lenc + 2, colsNum)).Rows.AutoFit();
     //划边框
        oSheet.Range(oSheet.Cells(2, 1), oSheet.Cells(Lenc + 2, colsNum)).Borders.LineStyle = 1;
        oXL.close();
}[/code]

2009-7-9 12:26 paxson
POI或JXL

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.