我的博客园

.NET,Ajax,DataBase,Javascript
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

Asp.Net读取并显示Excel文件中的内容(OleDb方式)

Posted on 2010-04-03 19:09  ymmt  阅读(768)  评论(0编辑  收藏  举报

第一步,创建Excel文件。
在Excel文件中选择你要在页面中显示的内容,选择菜单“插入”-》“名称”-》“定义”,输入你对当前选择区域的命名。在这里,我命名为myRange1,这在后面将要用到(只有选择的内容才会被显示),保存到Web服务器的根目录中.

第二步,编码。
新建一个ASP.NET应用程序,在默认的WebForm1.aspx中,拖放一个DataGrid控件,它将用来显示Excel中的内容。打开后台编码文件,引用名称空间System.Data.OleDb,因为后面的代码中将用到此名称空间。在Page_Load()事件中插入以下代码:

 

代码
// 创建字符串变量。"Data Source"为.xls文件所在的位置
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("../ExcelData.xls")+";"+
"Extended Properties=Excel 8.0;";

// 创建连接对象
OleDbConnection objConnection = new OleDbConnection(strConnection);

// 创建OleDbCommand对象。myRange1是Excel文件中定义的显示区域名
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM myRange1",objConnection);
// OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn); //访问指定表名中的内容,不必指定显示区域,表名默认为sheet1,sheet2...
// 以下Rows属性,可获得Excel 文件中的所有表,[0][2]为第一张表的表名
/*

DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();
*/
OleDbDataAdapter objAdapter
= new OleDbDataAdapter();
DataSet dsExcel
= new DataSet();

// 打开数据库连接
objConnection.Open();

objAdapter.SelectCommand
= objCmdSelect;
objAdapter.Fill(dsExcel);

// 把数据绑定到DataGrid控件上
DataGrid1.DataSource = dsExcel.Tables[0].DefaultView;
DataGrid1.DataBind();

// 关闭数据库连接
objConnection.Close();

 

hello everyone!