目前开发中遇到一个问题!想把页面中的表单输出到Excel打印!
但是表单中存在合并行和合并列的情况,现在的目标是把表单按原来的格式先输出到Excel.
然后打印出来!
在这个过程中,目标是打印出完整且格式正确的表单!!
望高手倾力襄助!!!
如果不输出到Excel,请问还有没有更好的输出方法!只要输出的格式是正确的就行!
(列数不会超过A4大小)...

解决方案 »

  1.   

    iText可以输出到pdf
    如果表单简单,采用部分打印css控制直接打印web 页面
      

  2.   

    主要是改变Web页面流的格式即可,实例代码如下:<%@ page contentType="text/html;charset=gb2312"%>
    <%
    String str=request.getParameter("submit");
    if(str==null){
     str="";
    }
    if (str.equals("yes")){
     response.setHeader("Content-disposition","inline; filename=test.xls");
     response.setContentType("application/msexcel;charset=GB2312");
    }
    %>
    <html>
    <head>
    <title>html2doc</title>
    </head>
    <body>
    <p>测试html to doc
    <table border="1" width="300">
    <tr><td bgcolor="red" widht="100">测试</td><td>你好</td></tr>
    <tr><td bgcolor="blue">333</td><td>444</td></tr>
    </table>
    <%
    if (!str.equals("yes")){
    %>
    <p>将当前的页面保存为WORD吗?
    <form method="get" name="form">
    <input type ="submit" value ="yes" name="submit">
    </form>
    <%
    }
    %>
    </body>
    </html>这个例子是输出excel格式的,如果要输出word格式则修改msexcel为msword,同时文件扩展名xls修改为doc即可,其他类型文件类似修改。
      

  3.   

    如果可以用JS的话,这个也不错
    <HTML> 
    <HEAD> 
    <title>WEB页面导出为EXCEL文档的方法 
    </title> 
    </HEAD> 
    <body> 
    <BR> 
    <table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" bgcolor = "#61FF13"> 
    <TR style="text-align : center;"> 
    <TD>单元格A</TD> 
    <TD>单元格A</TD> 
    <TD>单元格A</TD> 
    <TD>单元格A</TD> 
    </TR> 
    <TR> 
    <TD colSpan=4 style="text-align : center;"><font color="BLUE" face="Verdana">单元格合并行A</FONT></TD> 
    </TR> 
    </TABLE> 
    <BR> 
    <table id = "PrintB" width="100%" border="1" cellspacing="0" cellpadding="0"> 
    <TR style="text-align : center;"> 
    <TD>单元格B</TD> 
    <TD>单元格B</TD> 
    <TD>单元格B</TD> 
    <TD>单元格B</TD> 
    </TR> 
    <TR> 
    <TD colSpan=4 style="text-align : center;">单元格合并行B</TD> 
    </TR> 
    </TABLE> 
    <br><br><br> 
    <input type="button" onclick="javascript:AllAreaWord();" value="导出页面指定区域内容到Word"> 
    <input type="button" onclick="javascript:AllAreaExcel();" value="导出页面指定区域内容到Excel"> 
    <input type="button" onclick="javascript:CellAreaExcel();" value="导出表单单元格内容到Excel"> 
    <SCRIPT LANGUAGE="javascript"> 
    //指定页面区域内容导入Excel 
    function AllAreaExcel() 

    var oXL = new ActiveXObject("Excel.Application"); 
    var oWB = oXL.Workbooks.Add(); 
    var oSheet = oWB.ActiveSheet; 
    var sel=document.body.createTextRange(); 
    sel.moveToElementText(PrintB); 
    sel.select(); 
    sel.execCommand("Copy"); 
    oSheet.Paste(); 
    oXL.Visible = true; 

    //指定页面区域“单元格”内容导入Excel 
    function CellAreaExcel() 

    var oXL = new ActiveXObject("Excel.Application"); 
    var oWB = oXL.Workbooks.Add(); 
    var oSheet = oWB.ActiveSheet; 
    var Lenr = PrintA.rows.length; 
    for (i=0;i<Lenr;i++) 

    var Lenc = PrintA.rows(i).cells.length; 
    for (j=0;j<Lenc;j++) 

    oSheet.Cells(i+1,j+1).value = PrintA.rows(i).cells(j).innerText; 


    oXL.Visible = true; 
    } //指定页面区域内容导入Word 
    function AllAreaWord() 

    var oWD = new ActiveXObject("Word.Application"); 
    var oDC = oWD.Documents.Add("",0,1); 
    var oRange =oDC.Range(0,1); 
    var sel = document.body.createTextRange(); 
    sel.moveToElementText(PrintA); 
    sel.select(); 
    sel.execCommand("Copy"); 
    oRange.Paste(); 
    oWD.Application.Visible = true; 
    //window.close(); 

    </SCRIPT> 
    </body></html>