NEWS

[C#] Hướng dẫn xuất dữ liệu từ DataGridview ra file Excel

[C#] Hướng dẫn xuất dữ liệu từ DataGridview ra file Excel
Đăng bởi: Thảo Meo - Lượt xem: 7089 10:21:50, 27/07/2022C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ tiếp tục hướng dẫn các bạn cách xuất dữ liệu từ DataGridview ra file Excel trên Winform C#.

[C#] Export data from DataGridview to Excel

Dưới đây là giao diện demo ứng dụng:

data_gridview_to_excel

Trong bài viết, mình sử dụng thư viện:  Microsoft.Office.Interop.Excel, các bạn có thể tải về từ nuget

PM> Install-Package Microsoft.Office.Interop.Excel -Version 15.0.4795.1001

Full source code C#:

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;

namespace ExportToExcel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            LoadGridData();
        }

        private void LoadGridData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("EmpNo.",typeof(int));
            dt.Columns.Add("Emp.Name",typeof(string));
            dt.Columns.Add("Hiredate",typeof(DateTime));
            dt.Columns.Add("Department",typeof(int));
            dt.Columns.Add("Salary",typeof(double));

            DataRow dr = dt.NewRow();
            dr["EmpNo."] = 1;
            dr["Emp.Name"] = "Nguyễn Thảo";
            dr["Hiredate"] = DateTime.Now;
            dr["Department"] = 20;
            dr["Salary"] = 15000;

            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["EmpNo."] = 2;
            dr["Emp.Name"] = "Trịnh Quốc Khang";
            dr["Hiredate"] = DateTime.Now.AddMinutes(1);
            dr["Department"] = 30;
            dr["Salary"] = 17000;

            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["EmpNo."] = 3;
            dr["Emp.Name"] = "Nguyễn Đình Tuyên";
            dr["Hiredate"] = DateTime.Now.AddMinutes(1);
            dr["Department"] = 30;
            dr["Salary"] = 17000;

            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["EmpNo."] = 4;
            dr["Emp.Name"] = "Hoàng Thị Thảo";
            dr["Hiredate"] = DateTime.Now.AddMinutes(1);
            dr["Department"] = 30;
            dr["Salary"] = 17000;

            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["EmpNo."] = 4;
            dr["Emp.Name"] = "Cái Trí Minh";
            dr["Hiredate"] = DateTime.Now.AddMinutes(1);
            dr["Department"] = 30;
            dr["Salary"] = 17000;

            dt.Rows.Add(dr);

            dataGridView1.DataSource = dt;
        }

        private void btn_Cancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btn_Export_Click(object sender, EventArgs e)
        {
            if (dataGridView1.Rows.Count > 0)
            {
                Microsoft.Office.Interop.Excel.ApplicationClass XcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
                XcelApp.Application.Workbooks.Add(Type.Missing); 
                 
                for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
                {
                    XcelApp.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
                }

                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        XcelApp.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
                    }
                }
                XcelApp.Columns.AutoFit();
                XcelApp.Visible = true;
            }
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn xuất dữ liệu từ DataGridview ra file Excel
Đăng bởi: Thảo Meo - Lượt xem: 7089 10:21:50, 27/07/2022C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.