EPPlus là 1 thư viện .NET miễn phí để đọc và ghi dữ liệu ra file Excel rất hay.
Bạn có thể xuất dữ liệu ra file Excel từ đơn giản như dạng bảng hoặc phức tạp hơn với các định dạng, chèn hình ảnh khối, biểu đồ, hàm, VBA
Download thư viện miễn phí tại đây: http://epplus.codeplex.com/
Hướng dẫn export DataTable ra Excel file:
Bước 1: Tải thư viện EPPlus tại đây
Bước 2: Giải nén và add file EPPlus.dll vào project
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using OfficeOpenXml; using OfficeOpenXml.Table; namespace WindowsFormsApplication1 { public partial class ExportTableToExcel : Form { public ExportTableToExcel() { InitializeComponent(); } public void fnExportTableToExcel(DataTable dt) { //Hiện hộp thoại chọn đường dẫn lưu file Excel using (SaveFileDialog saveDialog = new SaveFileDialog()) { saveDialog.Filter = "Excel (Phiên bản 2007 trở lên (.xlsx)|*.xlsx"; if (saveDialog.ShowDialog() != DialogResult.Cancel) { string exportFilePath = saveDialog.FileName; var newFile = new FileInfo(exportFilePath); using (var package = new ExcelPackage(newFile)) { //Tạo 1 Sheet mới với tên Sheet là NewSheet1 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("NewSheet1"); //Load dữ liệu từ DataTable dt vào WorkSheet vừa tạo, bắt đầu từ ô A1, với kiểu Table không có định dạng worksheet.Cells["A1"].LoadFromDataTable(dt, true, TableStyles.None); //Lưu file Excel package.Save(); } } } } private void btnExport_Click(object sender, EventArgs e) { //Tạo bảng dữ liệu mẫu DataTable dt = new DataTable(); dt.Columns.Add("colMaNhanVien", typeof(String)); dt.Columns.Add("colTenNhanVien", typeof(String)); dt.Columns.Add("colNamSinh", typeof(String)); dt.AcceptChanges(); //Thêm 2 dòng dữ liệu mẫu vào bảng DataRow row1 = dt.NewRow(); row1["colMaNhanVien"] = "NV01"; row1["colTenNhanVien"] = "Nguyen Duc Anh"; row1["colNamSinh"] = "1986"; dt.Rows.Add(row1); dt.AcceptChanges(); DataRow row2 = dt.NewRow(); row2["colMaNhanVien"] = "NV02"; row2["colTenNhanVien"] = "Nguyen Anh Quan"; row2["colNamSinh"] = "1988"; dt.Rows.Add(row2); dt.AcceptChanges(); //Gọi hàm fnExportTableToExcel để export dữ liệu ra file DanhSachNhanVien.xlsx //Tham số truyền vào là DataTable dt fnExportTableToExcel(dt); } } }
Khi click vào button Export, chọn đường dẫn lưu file và gõ tên file (Giả sử là DanhSachNhanVien.xlsx), bạn sẻ có file Excel với nội dung như sau:
Thật đơn giản phải không nào? Trong bài viết sau mình sẽ viết thêm cách xuất ra file Excel bằng C# với định dạng phức tạp (hóa đơn bán hàng) để các bạn tìm hiểu thêm.
Hoặc có thể xem bài viết hay này: http://zeeshanumardotnet.blogspot.com/2011/06/creating-reports-in-excel-2007-using.html