Khi tạo file Excel từ Server, bạn nên dùng nhưng thư viện không phụ thuộc vào chương trình Microsoft Excel. Điều này rất quan trọng, vì bạn sẽ bị hạn chế, không được quyền cài đặt phần mềm lên 1 hosting mà bạn thuê.
Một trong những thư viện không phụ thuộc vào phần mềm Excel là NPOI và EPPlus.
Dùng NPOI, bạn tạo được file Excel 2003 và Excel 2007, nhưng cú pháp rắc rối và ít tài liệu hướng dẫn. Dùng EPPlus, bạn sẽ tạo được file Excel dễ dàng hơn.
Trong bài viết này, mình sẽ hướng dẫn bạn tạo file Excel từ danh sách có sẵn.
Trang chủ: http://epplus.codeplex.com/
Bước 1: Tạo dữ liệu
Chúc các bạn thành công!!!
Một trong những thư viện không phụ thuộc vào phần mềm Excel là NPOI và EPPlus.
Dùng NPOI, bạn tạo được file Excel 2003 và Excel 2007, nhưng cú pháp rắc rối và ít tài liệu hướng dẫn. Dùng EPPlus, bạn sẽ tạo được file Excel dễ dàng hơn.
Trong bài viết này, mình sẽ hướng dẫn bạn tạo file Excel từ danh sách có sẵn.
Trang chủ: http://epplus.codeplex.com/
Tạo file Excel
Cài đặt:Install-Package EPPlus
Bước 1: Tạo dữ liệu
public class Book { public int Id { get; set; } public string Name { get; set; } } public class DataRepository { private IListBước 2: Tạo fileInfo_bookList = new List { new Book { Id = 1, Name = "Dong Chu Liet Quoc" }, new Book { Id = 2, Name = "Su ky Tu Ma Thien" }, new Book { Id = 3, Name = "Viet Nam su luoc" } }; public List GetBookList() { return _bookList.ToList(); } public DataTable GetBookDataTable() { DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); foreach (var book in _bookList) { var dr = dt.NewRow(); dr["ID"] = book.Id; dr["Name"] = book.Name.ToString(); dt.Rows.Add(dr); } return dt; } }
var fileName = "GenerateExcelFromList.xlsx"; if (File.Exists("GenerateExcelFromList.xlsx")) { File.Delete("GenerateExcelFromList.xlsx"); }Bước 3: Tạo file Excel
var dataRepo = new DataRepository(); var bookList = dataRepo.GetBookList(); var fileName = "GenerateExcelFromList.xlsx"; if (File.Exists("GenerateExcelFromList.xlsx")) { File.Delete("GenerateExcelFromList.xlsx"); } var file = new FileInfo(fileName); using (var excelPackage = new ExcelPackage(file)) { var worksheet = excelPackage.Workbook.Worksheets.Add("GenerateExcelFromList"); worksheet.Cells["A1"].LoadFromCollection(bookList); var worksheet2 = excelPackage.Workbook.Worksheets.Add("GenerateExcelFromList2"); worksheet2.Cells["A1"].LoadFromCollection(bookList); excelPackage.Save(); }
Tùy chỉnh
Bạn có thể tùy chỉnh font, màu sắc hoặc tạo thêm nhiều sheet cho file Excel. Ví dụ:private static ExcelWorksheet CreateSheet(ExcelPackage p, string sheetName) { var ws = p.Workbook.Worksheets.Add(sheetName); ws.Name = sheetName; //Setting Sheet's name ws.Cells.Style.Font.Size = 11; //Default font size for whole sheet ws.Cells.Style.Font.Name = "Calibri"; //Default Font name for whole sheet return ws; } static void GenerateExcelFromList2() { var dataRepo = new DataRepository(); var bookList = dataRepo.GetBookList(); var bookDataTable = dataRepo.GetBookDataTable(); var fileName = "GenerateExcelFromList.xlsx"; if (File.Exists("GenerateExcelFromList.xlsx")) { File.Delete("GenerateExcelFromList.xlsx"); } var file = new FileInfo(fileName); using (var excelPackage = new ExcelPackage(file)) { var worksheet = CreateSheet(excelPackage, "GenerateExcelFromList"); worksheet.Cells[1, 1].Value = "ID"; worksheet.Cells[1, 2].Value = "Name"; worksheet.Cells[1, 2].Style.Font.Bold = true; worksheet.Cells["A2"].LoadFromCollection(bookList); var worksheet2 = excelPackage.Workbook.Worksheets.Add("GenerateExcelFromList2"); worksheet2.Cells["A1"].LoadFromDataTable(bookDataTable, true); excelPackage.Save(); } }File mã nguồn (nén rar5): MediaFire
Chúc các bạn thành công!!!
Nhatkyhoctap's blog
Nhận xét
Đăng nhận xét