Dataset里有个多个表。
想把dataset所有表的数据导入一个excel文件里(一个或多个sheet都可以。)
呵呵 一定是asp.net c#(bs)因为form我会写。

解决方案 »

  1.   

    在DCOM组件服务中给MICROSOFT.EXCEL组件赋予ASP.NET的操作权限,具体步骤:(1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口(2)展开计算机-〉我的电脑-〉DCOM配置,找到Microsoft Excel应用程序节点,单击右键-〉属性(3)点击"标识"标签,选择"交互式用户"(4)选中“安全”选项,在下面三个项目都选择“自定义”,并单击编辑按钮(5)在启动权限对话框中点击添加按钮,添加相应的用户(注意:如果是WIN2000,XP,则添加“ASPNET”用户,如果是WIN2003,则添加“NETWORK Service”用户),并赋予本地的所有权限 ,访问权限和配置权限和前面一样添加ASPNET用户。
    上面设置好后,就可全用 Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
    其它的跟winform操作一样了
      

  2.   

    2种方法都写到例子中了,看后面的方法http://dotnet.aspx.cc/file/Export-Gridview-To-Excel-With-Multi-Sheet.aspx
      

  3.   

    孟兄我把代码改成这样。dataset 添加数据表
    DataSet myds = new DataSet();
        DataTable dt = new DataTable();
        DataTable dt1 = new DataTable();
        myds.Tables.Add(dt);
        myds.Tables.Add(dt1);
    过程省略。
    //遍历dataset里的datatable
            for (int i = 0; i < myds.Tables.Count; i++)
            { 
                Response.Write("<Worksheet ss:Name='Sheet" + (i + 1) + "'>");
                Response.Write("<Table x:FullColumns='1' x:FullRows='1'>");            //输出标题
                Response.Write("\r\n<Row ss:AutoFitHeight='1'>");
                for (int j = 0; j < myds.Tables[i].Columns.Count; j++)
                {
                    Response.Write("<Cell ss:StyleID='Header'><Data ss:Type='String'>" + myds.Tables[i].Columns[j].ColumnName + "</Data></Cell>");
                }
                Response.Write("\r\n</Row>");            for (int j = 0; j < myds.Tables[i].Rows.Count; j++)
                {
                    Response.Write("<Row>");
                    for (int c = 0; c < 6; c++)
                    {
                        //对于数字,采用Number数字类型
                        if (c > 1)
                        {
                            Response.Write("<Cell ss:StyleID='border'><Data ss:Type='Number'>" + myds.Tables[i].Rows[j][c].ToString() + "</Data></Cell>");
                        }
                        else
                        {
                            Response.Write("<Cell ss:StyleID='border'><Data ss:Type='String'>" + myds.Tables[i].Rows[j][c].ToString() + "</Data></Cell>");
                        }
                    }
                    Response.Write("</Row>");
                }
                Response.Write("</Table>");
                Response.Write("</Worksheet>");
                Response.Flush();
            }
            Response.Write("</Workbook>");
            Response.End();