Bảng tính MS Excel được sử dụng rộng rãi để lưu giữ dữ liệu có kích thước nhỏ, vừa hoặc lớn. Trong nhiều trường hợp khác nhau, bảng tính hoạt động như một cơ sở dữ liệu để lưu trữ dữ liệu ứng dụng. Trong những trường hợp như vậy, bạn có thể cần đọc dữ liệu được lưu trữ trong tệp Excel từ bên trong các ứng dụng web hoặc máy tính để bàn của bạn. Đối với những trường hợp như vậy, bài viết này trình bày cách chuyển đổi dữ liệu Excel sang DataTables trong C#.

API chuyển đổi C# Excel sang DataTable

Aspose.Cells for .NET là một thư viện lớp cho phép bạn triển khai các tính năng tự động hóa Excel trong các ứng dụng .NET. Ngoài ra, API cho phép bạn xuất dữ liệu từ trang tính Excel sang ADO.NET DataTable trong vòng một vài bước. Bạn có thể tải xuống API hoặc cài đặt nó qua NuGet.

PM> Install-Package Aspose.Cells

Chuyển đổi Excel sang DataTable trong C#

Có thể có hai trường hợp có thể xảy ra khi xuất dữ liệu từ trang tính Excel sang DataTables: dữ liệu có thể được nhập mạnh hoặc nhập không mạnh. Trong cả hai trường hợp, bạn có thể thực hiện chuyển đổi Excel sang DataTable cho phù hợp. Chúng ta hãy xem cách đối phó với một trong các tình huống nêu trên.

Chuyển đổi dữ liệu Excel được đánh máy mạnh thành DataTable trong C#

Dữ liệu được đánh mạnh có nghĩa là các giá trị trong một cột thuộc về một kiểu dữ liệu cụ thể. Đối với những trường hợp như vậy, bạn có thể xuất dữ liệu Excel sang DataTable trong C# bằng cách sử dụng các bước sau.

Mẫu mã sau đây cho thấy cách xuất Excel sang DataTable.

// Tạo một dòng tệp có chứa tệp Excel sẽ được mở
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Khởi tạo một đối tượng Workbook
//Mở tệp Excel thông qua luồng tệp
Workbook workbook = new Workbook(fstream);

// Truy cập trang tính đầu tiên trong tệp Excel
Worksheet worksheet = workbook.Worksheets[0];

// Xuất nội dung của 2 hàng và 2 cột bắt đầu từ ô thứ nhất sang DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

// Liên kết DataTable với DataGrid
dataGridView1.DataSource = dataTable;

// Đóng luồng tệp để giải phóng tất cả tài nguyên
fstream.Close();

Chuyển đổi dữ liệu Excel được nhập không mạnh thành DataTable trong C#

Bây giờ, chúng ta hãy xem xét trường hợp khác khi các giá trị trong trang tính không được nhập mạnh. Nó có nghĩa là chúng không thuộc về một kiểu dữ liệu cụ thể. Sau đây là các bước để xuất dữ liệu Excel sang DataTable trong trường hợp này.

Mẫu mã sau đây cho thấy cách xuất dữ liệu không được đánh mạnh từ Excel sang DataTable trong C#.

// Tạo một dòng tệp có chứa tệp Excel sẽ được mở
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Khởi tạo một đối tượng Workbook
//Mở tệp Excel thông qua luồng tệp
Workbook workbook = new Workbook(fstream);

// Truy cập trang tính đầu tiên trong tệp Excel
Worksheet worksheet = workbook.Worksheets[0];

// Xuất nội dung của 2 hàng và 2 cột bắt đầu từ ô thứ nhất sang DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

// Liên kết DataTable với DataGrid
dataGridView1.DataSource = dataTable;

// Đóng luồng tệp để giải phóng tất cả tài nguyên
fstream.Close();

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử API mà không có giới hạn đánh giá.

Sự kết luận

Trong bài này, bạn đã học cách xuất hoặc chuyển đổi dữ liệu Excel sang ADO.NET DataTables bằng C#. Hướng dẫn từng bước và các mẫu mã đã chỉ ra cách xử lý dữ liệu được gõ mạnh và không được gõ mạnh trong trang tính. Bạn có thể khám phá thêm về C# Excel API bằng cách sử dụng tài liệu.

Xem thêm