Export dữ liệu từ DataTable ra file Excel với EPPlus

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

add-epplus-dll

Bước 3: Tạo form trong Project với đoạn code và giao diện như sau:
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);


        }
    }
}

form-test-epplusKhi 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:

danh-sach-nhan-vien

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

 

Bài viết liên quan

Theo dõi
Thông báo của
guest

0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x