第一步,创建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();