Hướng dẫn read file excel c# - đọc file excel C#

Xin chào, các bạn bài viết hôm nay mình sẽ chia sẽ cho các bạn cách đọc file Excel đang mở trong lập trình C#. đọc file Excel đang mở trong lập trình C#.

Trong các bài viết trước, mình đã có hướng dẫn các bạn cách import dữ liệu từ file Excel vào Winform C#.file Excel vào Winform C#.

Nhưng khi excel đó, các bạn đang mở lên thì các bạn sẽ không import đọc được file và ứng dụng sẽ báo lỗi vì có một process đang xử lý file excel đó.

The process cannot access the file 'C:\Users\nguye\Desktop\data.xlsx' because it is being used by another process.'

Các bạn xem hình ảnh bên dưới:

Vậy làm thế nào, mình có thể đọc được file excel đó, khi file đó vẫn đang được mở.

Rất đơn giản các bạn chỉ cần thêm options: 

FileShare.ReadWrite ở sau đọc code Read file

 using [var stream = File.Open[path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite]]

Khi các bạn thêm thuộc tính nào vào, các bạn sẽ có thể đọc file excel cho dù file excel đó, đang bị kiểm soát bởi một ứng dụng nào đó đang đọc.

Để download source code bài này, các bạn có thể download source ở bài viết trước của mình, và chỉ cần thêm thuộc tính FileShare vào là ok nhé.

Link: //laptrinhvb.net/bai-viet/chuyen-de-csharp/---Csharp----Import-du-lieu-file-Excel-[xls,-xlsx,-csv]-vao-Dataset-hoac-Datatable/dc016480009700de.html

Dưới đây là video mình demo, sử dụng một timer để làm việc với file excel đang mở.

 

Thanks for watching!

THÔNG TIN TÁC GIẢ

NGUYỄN THẢO

Founder at LaptrinhVB.net at LaptrinhVB.net

★★★★★

♥ Tình yêu thương chẳng hề hư mất bao giờ. [Cr 13,4]

=========================================================================

My skills includes .NET[C#, VB.NET], DevExpress, Java, Android, PHP,

Python, Sqlserver, Mysql, Reactjs, Dart, Flutter, API services and lot more... Mysql, Reactjs, Dart, Flutter, API services and lot more...

Phone/Zalo/Telegram/WhatsApp: +84.933.913.122+84.933.913.122

Email: 

Facebook: //fb.com/Lewandowski28031988//fb.com/Lewandowski28031988

Youtube Channel: //www.youtube.com/@thaomeotv

 

Buy me a cup of beer

       

=========================================================================

My skills includes .NET[C#, VB.NET], DevExpress, Java, Android, PHP,

Python, Sqlserver, Mysql, Reactjs, Dart, Flutter, API services and lot more...Thảo Meo - Lượt xem: 12832 22:25:19, 06/11/2018C#   In bài viết

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Dẫn nhập

Trong lập trình phần mềm, tool hay cả website. Việc thao tác với file dữ liệu rất cần thiết. Và thao tác với file Excel cũng chiếm tần suất không nhỏ.Thao tác với file Excel trong C# dùng thư viện EPPlus. EPPlus có một lợi thế là có thể chạy luôn cả ở phía Server.

Ở bài này, Kteam sẽ hướng dẫn tới bạn Thao tác với file Excel trong C# dùng thư viện EPPlus. EPPlus có một lợi thế là có thể chạy luôn cả ở phía Server.

Nội dung

  • Để đọc hiểu bài này tốt nhất bạn cần:
  • Cài đặt sẵn VISUAL STUDIO. C# CƠ BẢN, và LẬP TRÌNH WPF.

Có kiến thức về C# CƠ BẢN, và LẬP TRÌNH WPF.

  • Bạn và Kteam sẽ cùng tìm hiểu những nội dung sau đây
  • Đọc file Excel trong C#

Ghi dữ liệu ra file Excel và định dạng Cell.

Đọc Excel trong C#

Đầu tiên, chúng ta mở Visual Studio và tạo một project mớiWPF APP[.NET Framework] hoặc Windows Forms App nếu bạn không rành WPF. Đặt tên project và chọn đường dẫn lưu solution của bạn.

Chọn WPF APP[.NET Framework] hoặc Windows Forms App nếu bạn không rành WPF. Đặt tên project và chọn đường dẫn lưu solution của bạn.

Tại màn hình ban đầu của project.



Bạn thay cặp thẻ



        

        

        

BằngImport & Export.

Chúng ta tạo giao diện có một DataGrid để hiển thị dữ liệu từ Excel và hai Button Import & Export.MainWindow.xaml


    
        
        
        
    

Code hoàn chỉnh của MainWindow.xaml

Một lưu ý nhỏ, trong sự kiện Click mình đã tạo sẵn một Event Click theo cách nhắc lệnh mà Visual Studio hỗ trợ đó là:Click = 

Gõ Click = New Event Handler sẽ hiện lên > bạn chỉ cần nhấn Enter

Một New Event Handler sẽ hiện lên > bạn chỉ cần nhấn Enter

Sẽ tự tạo một event ở code behind

Bạn nào đã có kiến thức WPF thì có thể bỏ qua. Bạn nào chưa biết có thể xem qua Serial LẬP TRÌNH WPF CƠ BẢN.

public partial class MainWindow : Window
    {
        public MainWindow[]
        {
            InitializeComponent[];
        }

        private void btnImport_Click[object sender, RoutedEventArgs e]
        {

        }

        private void btnExport_Click[object sender, RoutedEventArgs e]
        {

        }
    }

Đầu tiên, chúng ta sẽ thực hiện chức năng Import Excel. Code Behind như sau:EPPlus vào để dùng.

Chúng ta sẽ bắt đầu Import thư viện EPPlus vào để dùng.EPPLus để thao tác với file Excel.

Cần 1 thư viện chính đó là EPPLus để thao tác với file Excel.Solution Explore > Nhấp chuột phải vào References > chọn Manage Nuget Packages

Mở tab Solution Explore > Nhấp chuột phải vào References > chọn Manage Nuget Packages

rBrowse và gõ từ khóa Selenium vào thanh Search. Install Selenium.WebDriverSelenium.Chrome.WebDriver hoặc Selenium.Firefox.WebDriver tùy theo trình duyệt bạn dùng.

Trong tab Nuget mở ra. Chọn Browse và gõ từ khóa Selenium vào thanh Search. Install Selenium.WebDriver và Selenium.Chrome.WebDriver hoặc Selenium.Firefox.WebDriver tùy theo trình duyệt bạn dùng.Debug. Có tên là:

ImportData.xlsx

Chúng ta cần một file excel mẫu để thử Import. Mình tạo sẵn 1 file excel có cấu trúc như sau trong folder Debug. Có tên là:UserInfo để lưu dữ liệu chúng ta đọc được và để đổ dữ liệu lên DataGrid cho thuận tiện.

public class UserInfo
    {
        public string Name { get; set; }
        public DateTime Birthday { get; set; }
    }

Và mình cũng tạo một class gọi là UserInfo để lưu dữ liệu chúng ta đọc được và để đổ dữ liệu lên DataGrid cho thuận tiện.btnImport_Click mình sẽ dán đoạn code có comment chi tiết sau và chạy kết quả. Giải thích chi tiết sẽ nói tới trong video hướng dẫn.

Và trong Event btnImport_Click mình sẽ dán đoạn code có comment chi tiết sau và chạy kết quả. Giải thích chi tiết sẽ nói tới trong video hướng dẫn. dùng tài liệu trên website và video cùng lúc để đạt hiệu quả cao.

private void btnImport_Click[object sender, RoutedEventArgs e]
        {
            // tạo ra danh sách UserInfo rỗng để hứng dữ liệu.
            List userList = new List[];
            try
            {
                // mở file excel
                var package = new ExcelPackage[new FileInfo["ImportData.xlsx"]];

                // lấy ra sheet đầu tiên để thao tác
                ExcelWorksheet workSheet = package.Workbook.Worksheets[1];

                // duyệt tuần tự từ dòng thứ 2 đến dòng cuối cùng của file. lưu ý file excel bắt đầu từ số 1 không phải số 0
                for [int i = workSheet.Dimension.Start.Row + 1; i 

Bài Viết Liên Quan

Chủ Đề