如题
任务是将数据从db中取出,作为对象传至jsp页面,页面中有生成execl按钮,点击后将页面展示的格式生成execl。
因为类似的分应用很多,所以想统一做一个,实现方法不限,如果有现成的代码更好。
给个连接也有分了,谢谢诸位!

解决方案 »

  1.   

    试试看从网页中把表格直接生成Excel,虽然不是直接从sql到excel,不过反而更加方便而且人性化。。网上倒是找到了不少的资料,发现一段javascript的功能实现代码,很不错:
    var elTable = document.getElementById("tb"); 
    var oRangeRef = document.body.createTextRange(); 
    oRangeRef.moveToElementText( elTable ); 
    oRangeRef.execCommand( "Copy" );var appExcel = new ActiveXObject( "Excel.Application" ); 
    appExcel.Visible = true; 
    appExcel.Workbooks.Add().Worksheets.Item(1).Paste(); 
    appExcel = null;实现功能就是把id为tb的表格内的数据都生成为excel,我试试了可行,但是放到服务器来运行就是script error的提示,然后网上到处求问,也找了百度空间的几位高手朋友问了下,可是还是不得其法。。不过还是很感谢他们的热心帮助没办法,我只能用别的方法来实现了,其实满喜欢上面的这个javascript的功能的,比较人性化。。可惜我黔驴技穷,无法用上它,哎!~既然我帮客户用jsp写的程序,那么我就还是用jsp来实现这个功能吧。。于是找到了这么一个方法:
    原文出自:http://www.jsp.mlc.edu.tw/viewitem.jsp?itemid=0000000065
    ***************************************************************************************************
    一、将网页资料以excel报表以线上浏览方式呈现 
    xls651.jsp原始码如下
    <%@ page contentType="application/msexcel" %>
    <!-- 以上这行设定本网页为excel格式的网页 -->
    <%
        response.setHeader("Content-disposition","inline; filename=test1.xls");
        //以上这行设定传送到前端浏览器时的档名为test1.xls
        //就是靠这一行,让前端浏览器以为接收到一个excel档 
    %>
    <html>
    <head>
    <title>Excel档案呈现方式</title>
    </head>
    <body>
       <table border="1" width="100%">
         <tr>
           <td>姓名</td><td>身份证字号</td><td>生日</td>
         </tr>
         <tr>
           <td>李玟</td><td>N111111111</td><td>1900/11/12</td>
         </tr>
         <tr>
           <td>梁静如</td><td>N222222222</td><td>1923/10/1</td>
         </tr>
         <tr>
           <td>张惠妹</td><td>N333333333</td><td>1934/12/18</td>
         </tr>
       </table>
    </body>
    </html>二、将网页资料以excel报表以下载的方式呈现
    这个jsp档和上一个差不多,只有差别在这一行:
    线上浏览的方式: response.setHeader("Content-disposition","inline; filename=test1.xls"); 
    下载的方式: response.setHeader("Content-disposition","attachment; filename=test2.xls"); 
    附注: 1.以上纯以静态网页的方式呈现excel档,配合资料库,你便能以动态的报表方式做出excel报表了
    2.完全不用安装任何元件,或只能受限於win平台,一个简单的方式解决你的报表需求 
    3.聪明的你,应该能举一反三,知道如何将网页资料以word的doc格式展现了吧!
    (是不是只要把contentType改成"application/msword"以及filename的副档名改成.doc就可以了!)
      

  2.   

    怎么将查询的结果在页面上以表格的形式显示出来,并导出成excel格式 :
    private void InitAddData() 

    string TjHtml = string.Empty; 
    string All; DataTable theDataTable = (new EmptrainthingSystem()).GetEmptrainthingDataSetByTJForJC(); TjHtml += "<TABLE id=\"Table2\" cellSpacing=\"0\" borderColorDark=\"#ffffff\" cellPadding=\"4\" width=\"100%\" borderColorLight=\"#000000\" border=\"1\">"; 
    //输出表头 
    TjHtml += " <TR>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\" rowspan=\"2\">111</TD>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\" colspan=\"2\">222</TD>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\" colspan=\"2\">333</TD>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\" rowspan=\"2\">444</TD>"; 
    TjHtml += " </TR>"; 
    TjHtml += " <TR>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\">a</TD>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\">b</TD>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\">c</TD>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\">d</TD>"; 
    TjHtml += " </TR>"; 
    //输出表内容 
    for(int j=0;j<theDataTable.Rows.Count;j++) 

    // All = 0; 
    TjHtml += "<TR>"; 
    TjHtml += " <TD align=\"center\" bgColor=\"#f8f8ff\">" + theDataTable.Rows[j]["pxnd"].ToString() + "&nbsp;</TD>"; 
    TjHtml += " <TD align=\"center\">" + theDataTable.Rows[j]["pxbc"].ToString() + "&nbsp;</TD>"; 
    TjHtml += " <TD align=\"center\">" + theDataTable.Rows[j]["pxrs"].ToString() + "&nbsp;</TD>"; 
    TjHtml += " <TD align=\"center\">" + theDataTable.Rows[j]["pxbc"].ToString() + "&nbsp;</TD>"; 
    TjHtml += " <TD align=\"center\">" + theDataTable.Rows[j]["pxrs"].ToString() + "&nbsp;</TD>"; 
    All = Convert.ToString(t
      

  3.   

    public string Export(System.Data.DataTable dt) 

    Excel.Application excel=new Excel.Application(); 
    Excel.Workbooks workbooks = excel.Workbooks; 
    Excel._Workbook workbook1=excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); 
    Sheets sheets = workbook1.Worksheets; 
    _Worksheet worksheet = (_Worksheet) sheets.get_Item(1); int rowIndex=1; 
    int colIndex=0; //循环读取生成新表格 
    excel.Application.Workbooks.Add(true); //生成EXCEL的格式设定 
    excel.Cells.Font.Bold = false; 
    excel.Cells.FillLeft(); 
    excel.Cells.Font.Size = "9"; //引用函数GetData中所取出的数据,得到数据源 
    System.Data.DataTable table =dt; //将所得到的表的列名,赋值给单元格 
    excel.Cells[1,1] ="A"; 
    excel.Cells[1,2] ="B"; 
    excel.Cells[1,3] ="C"; 
    excel.Cells[1,4] ="D"; 
    //同样方法处理数据 foreach(DataRow row in table.Rows) 

    rowIndex++; 
    colIndex=0; 
    //处理各列的数据 
    foreach(DataColumn col in table.Columns) 

    colIndex++; 
    excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); 


    //不可见,即后台处理 
    excel.Visible=true; 
    //友好界面提示 Excel.XlSaveAsAccessMode lhx=Excel.XlSaveAsAccessMode.xlShared; 
    object Nothing=System.Reflection.Missing.Value; 
    string FileNameString =System.DateTime.Now.ToString("yyyyMMddhhmmss"); 
    string url=Server.MapPath("..")+"\\ZLJDZFile" + "\\"+FileNameString+".xls"; 
    excel.ActiveWorkb
      

  4.   

    上面的是以表格的形式显示出来,下面的是导出成excel格式 
    应该可以了
      

  5.   

    我的资源里面有现成得项目里面有导出到excel必须得jar包希望楼主参考
      

  6.   

    http://download.csdn.net/user/lihan6415151528
    楼主如果还有什么不清楚得  加我Q问我 1楼写了Q
      

  7.   

    最简单的方法:
    <%@ page language="java" contentType="application/vnd.ms-excel; pageEncoding=gb2312"%>
    注意contentType="application/vnd.ms-excel;
    其他什么地方都不用改,只是把刚才的jsp页面复制一份再起个名,当点击按钮时到这个页面。
    试试看。
      

  8.   

    终于上来了,试了一下大家的,结帐。又在网上找了个东西,大家看看吧!!!!!!!!!以下为引用!!!!!!!!!!何为 extremeTable,又一个开源taglib
          extremeTable,开源的jsp 自定义标签,以表格的形式显示数据,当前最新版本为 1.0.1-M1.
    它是一个类似display tag,valueList 等开源产品.
    homepage: http://extremecomponents.org/
    download: http://sourceforge.net/projects/extremecomp/开源产品作者:
    Jeff Johnston ,现居住美国,圣路易斯.
                    六年web应用软件开发经验,eXtremeComponents最初的创建者. 负责设计及大部分的编码。其它还包括Paul Horn ,eXtremeTree的技术设计, 以及大部分的编码;
    Dave Goodin,Brad Parks等.主要特色
    1、导出EXCEL以及pdf无需再另写jsp(这个基本与valuelist作比较,因为以前用valueList的时候每写一个table都要再写一个excel.jsp)
    2、扩展性比较强,基本上想怎样改就怎样改,对jar影响比较少。
    3、另外据官方声称有以下四点Fast ( 本人曾小测一次,三千纪录情况下,效率基本与valuelist持平) 
    Efficient 
    Easy ( 得确很容易使用与理解加扩展) 
    Reliable