Series C# Hay Ho: EPPlus – Thư Viện Excel “bá đạo” – Phần 2
Có thể bạn quan tâm
Tiếp theo phần 1, thì phần này mình sẽ hướng dẫn các bạn thao tác với các công thức trong Excel, cũng như đọc nội dung từ file Excel.
Thêm formula vào các ô trong Excel
Tương tự như Excel, chúng ta có thể dễ dàng gọi các formula như sau :
// Thực hiện tính theo formula trong excel // Hàm Sum worksheet.Cells[listItems.Count + 3, 3].Value = "Total is :"; worksheet.Cells[listItems.Count + 3, 4].Formula = "SUM(D2:D" + (listItems.Count + 1) + ")"; // Hàm SumIf worksheet.Cells[listItems.Count + 4, 3].Value = "Greater than 20050 :"; worksheet.Cells[listItems.Count + 4, 4].Formula = "SUMIF(D2:D" + (listItems.Count + 1) + ",\">20050\")"; // Tinh theo % worksheet.Cells[listItems.Count + 5, 3].Value = "Percentatge: "; worksheet.Cells[listItems.Count + 5, 4].Style.Numberformat.Format = "0.00%"; // Dòng này có nghĩa là ở column hiện tại lấy với địa chỉ (Row hiện tại - 1)/ (Row hiện tại - 2) trong cùng một colum worksheet.Cells[listItems.Count + 5, 4].FormulaR1C1 = "(R[-1]C/R[-2]C)";Khá là dễ dàng phải không nào 😀
Đọc nội dung từ file Excel
Tiếp sau đây mình sẽ hướng dẫn các bạn cách lấy data từ file excel và đưa lên web theo cách đơn giản nhất. Bước 1. Viết hàm ReadFromExcelFile
private DataTable ReadFromExcelfile(string path, string sheetName) { // Khởi tạo data table DataTable dt = new DataTable(); // Load file excel và các setting ban đầu using (ExcelPackage package = new ExcelPackage(new FileInfo(path))) { if (package.Workbook.Worksheets.Count < 1) { // Log - Không có sheet nào tồn tại trong file excel của bạn return null; } // Lấy Sheet đầu tiện trong file Excel để truy vấn // Truyền vào name của Sheet để lấy ra sheet cần, nếu name = null thì lấy sheet đầu tiên ExcelWorksheet workSheet = package.Workbook.Worksheets.FirstOrDefault(x => x.Name == sheetName) ?? package.Workbook.Worksheets.FirstOrDefault(); // Đọc tất cả các header foreach (var firstRowCell in workSheet.Cells[1, 1, 1, workSheet.Dimension.End.Column]) { dt.Columns.Add(firstRowCell.Text); } // Đọc tất cả data bắt đầu từ row thứ 2 for (var rowNumber = 2; rowNumber <= workSheet.Dimension.End.Row; rowNumber++) { // Lấy 1 row trong excel để truy vấn var row = workSheet.Cells[rowNumber, 1, rowNumber, workSheet.Dimension.End.Column]; // tạo 1 row trong data table var newRow = dt.NewRow(); foreach (var cell in row) { newRow[cell.Start.Column - 1] = cell.Text; } dt.Rows.Add(newRow); } } return dt; }Lưu ý, trong ví dụ trên mình dùng workSheet.Dimension. Nó sẽ đọc tất cả các dòng và các cột đã được bind trong excel nên nếu bạn có dư nhưng dòng trắng không cần thiêt nó cũng sẽ đọc luôn. Nó sẽ lấy tới vị trí từ A1:D20 luôn nhé :D. Nếu các bạn không thích dùng cách này thì có thể pass 1 param vào hàm ReadFromExcelFile như numberOfColumn , chỉ lấy một số cột chứ không lấy toàn bộ nhé.
Bước 2. Thêm hàm ReadFromExcel trong HomeController
[HttpGet] public ActionResult ReadFromExcel() { var data = ReadFromExcelfile(@"D:\ExcelDemo.xlsx", "First Sheet"); return View(data); } @{ Layout = null; } <html> <head> <meta name="viewport" content="width=device-width" /> <title>ReadFromExcel</title> </head> <body> <div> <table border="1" cellpadding="5"> <thead> <tr> @foreach (System.Data.DataColumn col in Model.Columns) { <th>@col.Caption</th> } </tr> </thead> <tbody> @foreach(System.Data.DataRow row in Model.Rows) { <tr> @foreach (var cell in row.ItemArray) { <td>@cell.ToString()</td> } </tr> } </tbody> </table> </div> </body> </html>Để xem kết quả, các bạn vào đường dẫn /Home/ReadFromExcel/ nhé.
Qua 2 phần của bài viết, bạn đã có cái nhìn tổng quát về EPPlus và một số cách sử dụng cơ bản của thư viện này. Nếu có thắc mắc gì, các bạn cứ post vào mục comment nhé.
Discover more from Từ coder đến developer - Tôi đi code dạo
Subscribe to get the latest posts sent to your email.
Type your email…
Subscribe
Rate this:
Loading...Related
Từ khóa » Thư Viện Epplus
-
Series C# Hay Ho: EPPlus – Thư Viện Excel “bá đạo” – Phần 1
-
Sử Dụng Thư Viện EPPlus.dll Và FlexCel.dll - GÓC LẬP TRÌNH
-
Import File Excel Sử Dụng Thư Viện EPPlus (OfficeOpenXml) Trong Asp ...
-
[C#] Hướng Dẫn Xuất Dữ Liệu Datatable Sang Excel Với ... - Code 24h
-
[C#] Hướng Dẫn Xuất Dữ Liệu Datatable Sang ... - Lập Trình VB.NET
-
Thao Tác Với Excel Trong C# | How Kteam
-
Viết Tập Dữ Liệu Lớn Vào Tệp Excel Bằng EPPlus Trong C # - HelpEx
-
Cập Nhật Xuất Dữ Liệu Từ DataTable Sang Tệp Excel Với EPPlus Trong C
-
HƯỚNG DẪN ĐỌC FILE EXCEL BẰNG EPPLUS TRONG ASP NET ...
-
Tạo Báo Cáo PDF Từ Tệp Excel đã Tạo (Thư Viện EPPLUS) - HelpEx
-
How To Properly Export Excel Data To A Listview Using Epplus?
-
[C#] Hướng Dẫn Vẽ Biểu đồ Cột Xuất File Excel Sử Dụng Thư Viện Epplus
-
LUV Revit Tools | Kiến, Thức, Những, Thời, Mình, Cảm, Hỏi, Võ, Chia, Sẻ ...
-
Làm Việc Với Excel Trong -net - @manhng