Chuyển đến nội dung chính

Import Excel to Dataset C#

 

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:

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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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];
        }
    }
}

Nguồn: http://code24h.com/huong-dan-import-du-lieu-vao-database-tu-tap-tin-excel-trong-c-d23960.htm 



Nhận xét

Bài đăng phổ biến từ blog này

CODE CHUYỂN FONT WINDOWS - 1252 SANG UTF 8 TRONG C#

Vấn đề là tôi code một ứng dụng gửi mail trên nền C# , body mail được người dùng tự soạn thảo ở Microsoft Word và lưu lại ở file html. Khi lưu lại html từ Word, font sẽ mặc định ở thẻ: <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> dẫn đến khi gửi đi, các chữ có dấu tiếng Việt sẽ bị mã hóa thành dấu "?". Sau khi tìm các phương án để chuyển mã không thành mà tôi thì muốn khi soạn thảo body mail người dùng dễ dàng chỉnh sửa nhất và code trong C# cũng đơn giản nhất (không phải kiểm tra các dòng để lấy font, màu, màu nền ...), cuối cùng tôi đã tìm thấy đoạn code này: Việc đầu tiên là tôi đọc file html theo từng byte ra một mảng bằng hàm: public static byte[] ReadFile(string filePath)           {               byte[] buffer;            FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);        ...

Chuyển font chữ từ Vntime sang Unicode trong Excel (convert font Vntime to Unicode in Excel)

CHUYỂN FONT TRONG EXCEL Nếu bạn nào phải làm việc nhiều với Office hiển nhiên các bạn biết rằng Office có rất nhiều version, từ Office 97 cho đến hiện tại là Office 2016 beta. Cùng với sự phát triển của Office là việc nâng cấp các bộ gõ tiếng Việt, kinh điển nhất là Vietkey  và Unikey. Cách gõ điển hình nhất trong các loại văn bản là font TCVN3 và Unicode. Đã bao giờ bạn phải làm cái việc chuyển qua lại giữa 2 kiểu font này chưa? Và bạn có từng gặp khó khăn khi chuyển font cho một file Excel khoảng vài ngàn record chưa? Nếu bạn đã từng gặp tình huống trên thì bài viết này sẽ giúp bạn giải quyết vấn đề này. 1. Tổng hợp các phương pháp - Sử dụng phần mềm Uconvert (phiên bản mới nhất UOffice 2.0) - Sử dụng phần mềm tự viết trên C# - Sử dụng bộ gõ Unikey. 2. Phương pháp tối ưu nhất Là dùng bộ gõ Unikey. Bài viết demo file Excel hơn 224.000 record. Cách làm như sau: Bước 1: Bạn mở file Excel gốc của bạn và lưu ở dạng Unicode Text như hình dưới (ở đây tôi lưu v...

LỖI KHÔNG CHO KÉO CÔNG THỨC TỪ DÒNG TRÊN XUỐNG DÒNG DƯỚI TRONG EXCEL

Đôi khi làm việc trong Excel, bạn không kéo được công thức từ dòng trên xuống dòng dưới (khi đặt con trỏ vào dòng chứa công thức, con trỏ không biến thành dấu cộng màu đen để kéo). Khi đó các bạn có thể vào phần Option của Excel --> chọn Advanced --> Tích chọn vào lựa chọn như hình dưới.