Trang chủ Blog Cách Import dữ liệu từ Excel vào Datagridview

[C#] Cách Import dữ liệu từ Excel vào Datagridview

Bạn đang tìm một Function C# để đổ dữ liệu từ Excel vào Datagridview C#. Bài viết này, mình sẽ chia sẻ với bạn về thư viện để kết nối với Excel từ C#. Từ đó xây dựng Function để đọc dữ liệu trực tiếp từ Sheets Excel.

Ở đây, mình sẽ sử dụng thư viện Microsoft Excel 12.0 Object Library để kết nối với Excel. Nhưng trên Windows 10 chưa có sẵn, bạn cần kiểm tra và cài đặt thư viện sau.

Microsoft Access 2013 Runtime

Bạn có thể tải Microsoft Access Runtime theo địa chỉ này.

https://www.microsoft.com/vi-vn/download/details.aspx?id=39358Code language: JavaScript (javascript)

Trong References của dự án, bạn hãy thêm 2 thư viện sau.

  • Microsoft Office 15.0 Object Library
  • Microsoft Excel 15.0 Object Library
add-references-c-sharp-visual-studio-20200223-1

Import Excel to Datagridview

Tiếp theo, Function dưới đây để đọc tên Sheet Excel và Import dữ liệu từ Sheet được chỉ định vào Datagridview.

private void btnLoad_Click(object sender, EventArgs e)
        {
            string path = "";
            List<string> listSheet = new List<string>();
            //string namefile;
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Excel Files (.xls*)|*.xls*|All Files (*.*)|*.*";
            dlg.Multiselect = false;

            DialogResult dlgResult = dlg.ShowDialog();
            if (dlgResult == DialogResult.OK)
            {
                txtFilePath.Text = dlg.FileName;
                if (txtFilePath.Text.Equals(""))
                {
                    lblMsg.Text = "Please Load File First!!!";
                    return;
                }
                if (!File.Exists(txtFilePath.Text))
                {
                    lblMsg.Text = "Can not Open File!!!";
                    return;
                }
                String filePath = txtFilePath.Text;
                string excelcon;
                if (filePath.Substring(filePath.LastIndexOf('.')).ToLower() == ".xlsx")
                {
                    excelcon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1'";
                }
                else
                {
                    excelcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
                }
                OleDbConnection conexcel = new OleDbConnection(excelcon);

                try
                {
                    conexcel.Open();
                    DataTable dtExcel = conexcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    string sheetName = dtExcel.Rows[0]["Table_Name"].ToString();
                    OleDbCommand cmdexcel1 = new OleDbCommand();
                    cmdexcel1.Connection = conexcel;
                    cmdexcel1.CommandText = "select * from[" + sheetName + "]";
                    DataTable dt = new DataTable();
                    OleDbDataAdapter da = new OleDbDataAdapter();
                    da.SelectCommand = cmdexcel1;
                    da.Fill(dt);
                    conexcel.Close();
                    gridviewImportExcel.DataSource = dt;
                    gridviewImportExcel.Rows.RemoveAt(0);
                }
                catch (Exception ex)
                {
                    conexcel.Close();
                    MessageBox.Show(ex.ToString());
                }
            }
        }
Code language: C# (cs)

Với Function Import dữ liệu Excel vào C# như trên, bạn hãy tùy biến để phù hợp với dự án của bạn.

Chúc bạn vui!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây