NEWS

[C#] Import dữ liệu file Excel (xls, xlsx, csv) vào Dataset hoặc Datatable

[C#] Import dữ liệu file Excel (xls, xlsx, csv) vào Dataset hoặc Datatable
Đăng bởi: Thảo Meo - Lượt xem: 33076 10:34:55, 07/05/2018C#   In bài viết

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:

 

import excel

 

- 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.

 

import excel

 

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

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Import dữ liệu file Excel (xls, xlsx, csv) vào Dataset hoặc Datatable
Đăng bởi: Thảo Meo - Lượt xem: 33076 10:34:55, 07/05/2018C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.