asp.net导出数据到Excel的几种方法(3/3)

原创 2008年04月02日 16:28:00

继续前篇,第三种方法是利用OELDB数据访问对象操作Excel文件,达到将数据导出到Excel的目的,这种方法可能用的人不太多,缺点是必须有一个存在的Excel文件。优点是服务器不需要安装Excel,且生成的Excel是标准的Excel格式可以当作数据源使用。

准备工作:

1)先用准备一个Excel文件,这个Excel文件可以是空的,或是有一定格式的当做数据模板使用。

2)将操作的目录给ASP.NET用户(ASPNET 或NETWORK SERVICE)写入权限。

以下是示例:

说明一下:如果这个模板文件是个空文件,则需要使用Create Table创建一个工作表,否则只需使用已有的表进操作就可以了。

 

   DataTable dt = new DataTable();
            dt.Columns.Add(
"name");
            dt.Columns.Add(
"age"typeof(int));
            dt.Columns.Add(
"phone");
            dt.Rows.Add(
"老张"40,"99213812");
            dt.Rows.Add(
"小李"28,"a21313");
            dt.Rows.Add(
"小王"22,"2131434");


            
string FileName = Guid.NewGuid().ToString()+".xls";

            
string sNewFullFile = Server.MapPath(FileName);
            
try
            {
                File.Copy(Server.MapPath(
"format.xls"), sNewFullFile);
            }
            
catch (Exception er)
            {
                Response.Write(er.Message);
                
return;
            }



            
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=True;Data Source=" + sNewFullFile + ";Extended Properties=Excel 8.0;";
            System.Data.OleDb.OleDbConnection conn 
= new System.Data.OleDb.OleDbConnection(strConn);
            OleDbCommand cmd 
= null;

            
bool bRet = false;
            
try
            {
                conn.Open();
                
                cmd  
= new OleDbCommand("create table [sheet4]([姓名] Text,[年龄] int,[电话] Text)",conn);
                cmd.ExecuteNonQuery();

                
string strSQL = "INSERT INTO [Sheet4$] ([姓名], [年龄],[电话]) VALUES (?, ?, ?)";

                cmd 
= new OleDbCommand(strSQL, conn);

                
for (int i = 0; i < 3; i++)
                {
                    cmd.Parameters.Add(i.ToString(), OleDbType.VarChar);
                }



                DataView dv 
= dt.DefaultView;
                
foreach (DataRowView row in dv)
                {
                     
                    cmd.Parameters[
0].Value = row["name"].ToString();
                    cmd.Parameters[
1].Value =(int) row["age"];
                    cmd.Parameters[
2].Value = row["phone"].ToString();
                    cmd.ExecuteNonQuery();                     
                }
                bRet 
= true;
               
                 
            }
            
catch (Exception er)
            {
                Response.Write(er.Message);
            }
            
finally
            {
                
if (cmd != null)
                {
                    cmd.Dispose();
                }
                conn.Dispose();
                
            }
            
if(bRet)
            Response.Redirect(FileName);

 

 

 

 

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

asp.net导出数据到Excel的三种方法

asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户...

对.NET中导出数据到EXCEL的几种方法探讨

最近在做一个报表系统的时候,需要把DATASET中的数据导到EXCEL当中,于是在网上找了一遍,发现了好几种方法,本来以为应该差不多,但后来经过一一试用后,发现在性能上真的差别很大,现在就介绍一下,同...

ASP.NET 数据导出到excel文件 浏览器客户端下载的几种方法

ASP.NET 数据导出到excel文件给客户端下载的几种方法 (2007-04-13 10:27:20)     分类:C#/ASP.NET学习笔记  数据导出到excel文件给客户端下...

ASP.NET中应用Excel:(3)访问工作表数据

已经创建了Excel.Application对象,并打开了工作薄,现在可以遍历工作表和单元格来获取数据了。并不是所有的单元格都有数据,大部分都是空的,因此XmlDocument来保存取得的数据是个不错...

Asp.Net表格导出Excel的几种方法

1、Html导出Excel的方法:    1.1、前台代码:         .ExportTable{    border-top:.1pt solid #000000;    border-rig...

对.NET中导出数据到EXCEL的几种方法探讨 C1TrueDBGrid

分类: 日本.NET項目常用 2007-09-10 14:02 1096人阅读 评论(2) 收藏 举报 最近在做一个报表系统的时候,需要把DATASET中的数据导到EXCEL当...

[转]asp.net导出数据到Excel的三种方法

原文出处:asp.net导出数据到Excel的几种方法(1/3) 、asp.net导出数据到Excel的几种方法(2/3)、asp.net导出数据到Excel的几种方法(3/3)  asp.ne...

asp.net导出数据到Excel的三种方法

Asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net导出数据到Excel的几种方法(3/3)
举报原因:
原因补充:

(最多只允许输入30个字)