想把dataset所有表的数据导入一个excel文件里(一个或多个sheet都可以。)
呵呵 一定是asp.net c#(bs)因为form我会写。
5 个解决方案
#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操作一样了
(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
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();
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();
#4
#5
版主给的链接 访问不了.
#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操作一样了
(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
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();
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();
#4
#5
版主给的链接 访问不了.