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=39358
Code 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
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!