Đỉnh NGUYỄN

life's a journey not a destination

Read Data From an Excel File (.xls, .xlsx) in ASP.NET

Leave a comment


Kết nối với MS Excel workbook dùng OLEDB.NET data provider, đọc dữ liệu rồi sau đó hiển thị dữ liệu lên GridView. Nào chúng ta hãy bắt đầu

Bước 1. Tạo mới website dùng ASP.NET Website template, ngôn ngữ C#

 

 

 

 

 

 

 

Bước 2. Tạo 2 excel sheets và thêm vào Website, một file được tạo dùng Office 2003 (.xls), file kia dùng Office 2007 (.xlsx).

Thêm 4 cột:

Bước 3. Cấu hình chuỗi kết nối đến Excel

<connectionStrings>
        <!-- For Office 2003 -->
        <add name="xls" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; DataSource=Sample1.xls; Extended Properties=Excel 8.0"/>
        <!-- For Office 2007 (Compatible with Office 2003 -->
        <add name="xlsx" connectionString="Provider=Microsoft.ACE.OLEDB.12.0; DataSource=Sample1.xlsx; Extended Properties=Excel 12.0"/>
</connectionStrings>

Chuỗi kết nối đến Excel 2007 (.xlsx) chứa Microsoft.ACE.OLEDB.12.0 provider. Đây là driver OLE DB mới và cũng tương thích với MS Excel 2003

Bước 4. Thêm GridView vào trang Default.aspx để hiển thị dữ liệu

Bước 5. Nào, tạo kết nối đến Excel và đọc dữ liệu. Nhưng trước tiên phải thêm thư viện .NET: System.Data.OleDb;

protected void Page_Load(object sender, EventArgs e)
    {
        string connString = ConfigurationManager.ConnectionStrings["xls"].ConnectionString;
        // Create the connection object
        OleDbConnection oledbConn = new OleDbConnection(connString);
        try
        {
            // Open connection
            oledbConn.Open();
 
            // Create OleDbCommand object and select data from worksheet Sheet1
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);
 
            // Create new OleDbDataAdapter
            OleDbDataAdapter oleda = new OleDbDataAdapter();
 
            oleda.SelectCommand = cmd;
 
            // Create a DataSet which will hold the data extracted from the worksheet.
            DataSet ds = new DataSet();
 
            // Fill the DataSet from the data extracted from the worksheet.
            oleda.Fill(ds, "Employees");
 
            // Bind the data to the GridView
            GridView1.DataSource = ds.Tables[0].DefaultView;
            GridView1.DataBind();
        }
        catch(Exception ex)
        {
        }
        finally
        {
            // Close connection
            oledbConn.Close();
        } 
    }

Okay!!

Advertisements

Author: dinhnn

Senior software developer, a technical leader. You can be reached at via email to dinhnguyenngoc@gmail.com, via my blog at dinhnguyenngoc.wordpress.com, and on Twitter @dinhnguyenngoc.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s