jsp中有一个表格从ms sever 2000数据库中调用数据
现在想有一个按钮 点一下 自动打开Excel 数据自动导入其中页面中的表格加了css代码的 页面中显示了颜色 边框什么的
但是导入的只是表格中的纯数据 其它什么都没有  
请问怎么实现!!!!!!! 

解决方案 »

  1.   

    <% response.setContentType("application/vnd.ms-excel;charset=GBK"); %>
    <% response.setHeader("Content-disposition","attachment;filename=产能登记表.xls");%>
    <%@ page language="java" contentType="text/html;charset=gbk"%>
    <%@ include file="/conn/conn.jsp" %>
    <%@ include file="../../inputSelect/excel/excel.jsp" %><%
    String type=myprog.getParam("type");//表格字段名称, 宽度, 对齐String tbTitle[] =new String[]{  
      "序号",
      "内部订单编号", 
      "产品型号",
      "加工序号", 
      "工序名称", 
      "白班产量",
      "夜班产量",
      "设备名称",
       "生产日期", 
      "不合格品数", 
      "报废数量",
      "退回数量",
      "备注"   
      };String sSql = myprog.getSession( "qry_sql" );String tbData[][] = db.selectA( sSql );
    for(int i=0;i<tbData.length;i++)
    {
    String sql="select bad_to_del,bad_to_back from T_ZJ_Check_Detail where order_id='"+tbData[i][1]+"' and pro_id  ='"+tbData[i][2]+"'";
    String zj_num[][]=db.selectA(sql);
    if(db.iRows>0)
    {
    tbData[i][10]=zj_num[0][0];
    tbData[i][11]=zj_num[0][1]; }
    }
    for( int i=0; i<db.iRows; i++ ) {
    tbData[i][0] = "" + (i+1);
    }excel ex = new excel();
    //ex.addHead( "类型:" + in_type + "  本月流水帐" + myprog.getSession("in_store_date") );
    ex.setData(tbData);
    ex.setTitle(tbTitle);
    String html=ex.getHtml();out.print(html);
    %>
      

  2.   

    <%!
    class excel
    { String head[]=new String[100];
    String data[][]=null;
    String title[]=null;
    String foot[]=new String[100];
    int i=0;
    int j=0;
    //添加表头
    public void addHead(String content)
    {
    head[i]=content;
    i=i+1;
    }
    //添加数据
    public void setData(String tbData[][])
    {
    data=tbData;
    }
    //追加数据
    public void appendData(String tbData[][])
    {
    int a=data.length;
    data=jbs.array.StrArray.addAll(data,tbData,a-1);
    }
    //添加标题
    public void setTitle(String tbTitle[] )
    {
    title=tbTitle;
    }
    //添加注脚
    public void addFoot(String content)
    {
    foot[j]=content;
    j=j+1;
    }
    //获取HTML
    public String getHtml()
    {

    String html="<html>"+"</br>"+"<meta http-equiv='Content-Type' content='text/html;charset=GBK'>"+"</br>"+"<head>"+"</br>"+"<title></title>"+"</br>"+"</head>"+"</br>"+"<body>"+"</br>";
    head=jbs.array.StrArray.delNull(head);
    foot=jbs.array.StrArray.delNull(foot);
    title=jbs.array.StrArray.delNull(title);
    data=jbs.array.StrArray.delNull(data);

    for(int i=0;i<head.length;i++)
    {
    if(!head[i].equals(""))
    {
    html=html+"<table><tr><td>"+head[i]+"</td></tr></table>";
    }
    }
    html=html+"<table border='1' width='100%'>";
    try
    {
    if(title.length>0)
    {
    html=html+"<tr>";
    for(int i=0;i<title.length;i++)
    {
    html=html+"<td>"+title[i]+"</td>";
    }
    html=html+"</tr>";
    }
    }
    catch(Exception e)
    {
    }
    try
    {
    if(data.length>0)
    {
    for(int i=0;i<data.length;i++)
    {
    html="<tr>"+html;
    for(int j=0;j<data[i].length;j++)
    {
    html=html+"<td>"+data[i][j]+"</td>";
    }
    html=html+"</tr>";
    }
    }
    }
    catch(Exception e1)
    {
    }
    html=html+"</body></table>";
    for(int i=0;i<foot.length;i++)
    {
    if(!foot[i].equals(""))
    {
    html=html+foot[i];
    }
    }

    return html;
    }
    }
    %>
      

  3.   

    我们做的时候一般是在Servlet里面写到Excel里面的因为你显示的数据也是从数据库里面拿到的,当点击按钮的时候,我们可以再查询一次数据,拿到List,然后在Action里面用POI写到Excel里面,,用流写到浏览器里面就可以了..
    不直接拿Jsp表格里的数据
      

  4.   


    function exportexcel(tableid) {    var curTbl = document.getElementById(tableid);
        var oXL = new ActiveXObject("Excel.Application");
        var oWB = oXL.Workbooks.Add();
        var oSheet = oWB.ActiveSheet;
        var sel = document.body.createTextRange();
        sel.moveToElementText(curTbl);
        sel.select();
        sel.execCommand("Copy");
        oSheet.Paste();
        oXL.Visible = true;}还得设置一下浏览器,你自己搜搜吧