Code C# đọc file Excel

Đọc file Excel trong C# (Read Excel File in C#) được sử dụng rất phổ biến trong các ứng dụng phần mềm hiện nay.

Việc đọc và lấy dữ liệu từ file Excel trong C# của các phần mềm hiện nay mang lại rất nhiều hữu ích.Bởi vì việc nhập tay thủ công từng dòng dữ liệu rất mất thời gian và tốn công sức.

Ví dụ khi bạn cần nhập một danh sách nhân sự khoảng 10000 công nhân viên thì cần rất nhiều thời gian, có khi phải mất 1 tuần mới nhập xong.Tuy nhiên nếu bạn đã có sẵn 1 file excel của danh 10000 công nhân viên đó thì bạn có thể import file excel trong C# chỉ mất khoảng 5 đến 10 giây.Do việc đọc và lấy dữ liệu từ file excel trong C# có hiệu quả như vậy cho nên chúng tôi sẽ hướng dẫn các bạn viết code C# đọc file Excel.

Giả sử yêu cầu bài toán của phần mềm là đọc dữ liệu từ file excel sau đó hiển thị dữ liệu lên DataGridview.

Bây giờ chúng ta sẽ xây dựng chương trình C# đọc dữ liệu từ file excel như sau:

 

Các bước xây dựng chương trình C# đọc file excel như sau:

Bước 1: Tạo file Excel :

Tạo file excel tên : Read-Excel-CSharp-Tem.xlsx

 

Bước 2: Tạo project đọc file excel trong windows form.

-Mở phần mềm IDE Visual studio và tạo dự án C# project Window Form như sau:

 

-Thêm các Controls (Label, Textbox, Button, DataGridView và openFileDialog1) vào Form:

 

Giải thích:

+ Label: File Name

+ Textbox: txt_FileName là để hiển thị đường dẫn của file excel

+ Button: Choose Excel File… là để chọn file excel

+ DataGridView : dt_List_Employees là để hiển thị dữ liệu từ file excel.

+ openFileDialog1: là để chọn nơi lưu trữ file excel.

-Thêm thư viện : Microsoft.Office.Interop.Excel

 Để làm việc với file excel bạn cần thêm thư viện Microsoft.Office.Interop.Excel vào dự án project.

 Có 2 cách thêm thư viện Microsoft.Office.Interop.Excel

 + Cách 1: Nhấp chuột phải vào References sau đó chọn Add Reference.Sau đó hộp thoại xuất hiện và Click vào Assemblies, Extensions, sau đó tích chọn Microsoft.Office.Interop.Excel.

 

+ Cách 2:  Nhấp chuột phải vào References sau đó chọn Add Reference.Sau đó hộp thoại xuất hiện và Click vào nút Browse, ổ C, Microsoft Office, Office12, sau đó mở EXCEL.EXE.

 

- Viết Code C# đọc file excel:

+ Add thêm thư viện vào source code

using System.IO;
using ExcelApp = Microsoft.Office.Interop.Excel;

+ Viết code cho sự kiện click của nut button Choose Excel File để đọc file excel và hiển thị dữ liệu lên DataGridView.

Source code đọc file excel trong C# như sau:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using ExcelApp = Microsoft.Office.Interop.Excel;

namespace ReadExcelFile_CSharp
{
    public partial class Frm_ReadExcel : Form
    {
        public Frm_ReadExcel()
        {
            InitializeComponent();
        }

        private void btn_Choose_ExcelFile_Click(object sender, EventArgs e)
        {
            string filePath = string.Empty;
            string fileExt = string.Empty;
            OpenFileDialog file = new OpenFileDialog(); //open dialog to choose file  
            if (file.ShowDialog() == System.Windows.Forms.DialogResult.OK) //if there is a file choosen by the user  
            {
                filePath = file.FileName; //get the path of the file 
                txt_FileName.Text = Path.GetFullPath(filePath);
                fileExt = Path.GetExtension(filePath); //get the file extension  
                if (fileExt.CompareTo(".xls") == 0 || fileExt.CompareTo(".xlsx") == 0)
                {
                    try
                    {
                        ExcelApp.Application excelApp = new ExcelApp.Application();
                        if (excelApp == null)
                        {
                            Console.WriteLine("Excel is not installed!!");
                            return;
                        }
                        ExcelApp.Workbook excelBook = excelApp.Workbooks.Open(txt_FileName.Text);
                        ExcelApp._Worksheet excelSheet = excelBook.Sheets[1];
                        ExcelApp.Range excelRange = excelSheet.UsedRange;
                        int rows = excelRange.Rows.Count;
                        int cols = excelRange.Columns.Count;
                        dt_List_Employees.RowCount = rows;
                        dt_List_Employees.ColumnCount = cols;

                        for (int i = 1; i <= rows; i++)
                        {
                            // read new line
                            for (int j = 1; j <= cols; j++)
                            {
                                //write to cell
                                if (excelRange.Cells[i, j] != null && excelRange.Cells[i, j].Value2 != null)
                                    dt_List_Employees.Rows[i - 1].Cells[j - 1].Value = excelRange.Cells[i, j].Value2.ToString();

                            }
                        }
                        //after reading, relaase the excel project
                        excelApp.Quit();
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString());
                    }
                }
                else
                {
                    MessageBox.Show("Please choose .xls or .xlsx file only.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); //custom messageBox to show error  
                }
            }
        }
    }
}

 

Bước 3: Chạy chương trình đọc file excel và xem kết quả.