[C#] Import dữ liệu file Excel (xls, xlsx, csv) vào Dataset hoặc Datatable
Hi! Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách import dữ liệu các loại file Excel gồm 2 loại: Excel 97 - 2003 (xls) và Excel từ 2006 (xlsx) trong lập trình C# . Ngoài ra các bạn cũng có thể import dữ liệu từ file CSV vào cũng ok ...
Hi! Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách import dữ liệu các loại file Excel gồm 2 loại: Excel 97 - 2003 (xls) và Excel từ 2006 (xlsx) trong lập trình C#.
Ngoài ra các bạn cũng có thể import dữ liệu từ file CSV vào cũng ok luôn nhé.
Trên trang lập trình VB.NET, anh Sơn Băng đã có viết bài hướng dẫn import dữ liệu từ Excel và cập nhật lên SQL.
Các bạn có thể tham khảo ở link bên dưới:
Import dữ liệu từ Excel và cập nhật lên SQL
Tuy nhiên, bài viết trên chỉ import được dữ liệu từ file Xls (excel phiên bản 2003 - 2007)
- Dưới đây là giao diện demo import file excel Xls, xlsx vào Gridview:
- Trong bài viết này, mình sử dụng thư viên ExcelDataReader.
Các bạn có thể import thư viện vào từ Nuget nhé bạn.
Các bạn có thể xem hướng dẫn chi tiết sử dụng thư viện tại link bên dưới:
Sử dụng ExcelDataReader
Source code C# import dữ liệu Excel vào Dataset:
using ExcelDataReader; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Import_excel_csv { public partial class Form1 : Form { DataSet ds; public Form1() { InitializeComponent(); } private void btn_import_Click(object sender, EventArgs e) { using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xlsx|Excel Workbook 97-2003|*.xls", ValidateNames = true }) { if (ofd.ShowDialog() == DialogResult.OK) { using (var stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read)) { IExcelDataReader reader; if (ofd.FilterIndex == 2) { reader = ExcelReaderFactory.CreateBinaryReader(stream); } else { reader = ExcelReaderFactory.CreateOpenXmlReader(stream); } ds = reader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); cb_sheet.Items.Clear(); foreach (DataTable dt in ds.Tables) { cb_sheet.Items.Add(dt.TableName); } reader.Close(); } } } } private void cb_sheet_SelectedIndexChanged(object sender, EventArgs e) { dataGridView1.DataSource = ds.Tables[cb_sheet.SelectedIndex]; } } }
HAVE FUN :)
DOWNLOAD SOURCE
Bạn ơi
cb_sheet.Items.Clear(); là gì nhỉ. mình bị lỗi chỗ này