- [DATABASE] Hướng dẫn thêm và cập nhật Extended Property Column trong Table Sqlserver
- [DEVEXPRESS] Hướng dẫn sử dụng Vertical Gridview để hiển thị thông tin sản phẩm
- [C#] Hướng dẫn sử dụng Json Schema để Validate chuỗi string có phải json
- [C#] Hướng dẫn sử dụng công cụ Clean Code trên Visual Studio
- [C#] Hướng dẫn Drag and Drop File vào RichTextBox
- [C#] Hướng dẫn tạo hiệu ứng Karaoke Text Effect Winform
- [C#] Sử dụng thư viện ZedGraph vẽ biểu đồ Line, Bar, Pie trên Winform
- [DATABASE] Hướng dẫn sort sắp xếp địa chỉ IP trên sqlserver sử dụng hàm PARSENAME
- [C#] Theo dõi sử kiện process Start hay Stop trên Winform
- [ASP.NET] Chia sẻ source code chụp hình sử dụng camera trên website
- [C#] Chạy ứng dụng trên Virtual Desktop (màn hình ảo) Winform
- [C#] Mã hóa và giải mã Data Protection API trên winform
- [C#] Hướng dẫn tạo Gradient Background trên Winform
- [DATABASE] Hướng dẫn convert Epoch to DateTime trong sqlserver
- [DATABASE] Hướng dẫn sử dụng STRING_AGG và CONCAT_WS trong sqlserver 2017
- [C#] Hướng dẫn Copy With All Property in Class Object
- [DEVEXPRESS] Hướng dẫn load Json DataSource vào GridView
- [C#] Hướng dẫn tạo chữ ký trên winform Signature Pad
- [DEVEXPRESS] Format code T-SQL highlight in RichEditControl
- [C#] Hướng dẫn upload file, hình ảnh từ Winform lên server API ASP.NET Core
[C#] Export dataset to multi work sheet Excel in Csharp
Hi! xin chào các bạn. Hôm nay, mình sẽ hướng dẫn các bạn export dữ liệu từ dataset ra một file excel bao gồm nhiều work sheet bằng C#.
[C#] Export dataset to multi work sheet excel using Close XML in Csharp
Mình ví dụ:
Nếu các bạn có một database gồm nhiều table, bây giờ các bạn muốn xuất các table trong database đó ra file dữ liệu Excel. Mỗi một table là một Sheet.
Mình chia sẽ các bạn sử dụng thư viện Close XML để làm việc đó một cách đơn giản.
Giao diện demo ứng dụng:
Đầu tiên, các bạn cần cài đặt thư viện Close XML từ Nuget vào project của mình.
Các từ giao diện dòng lệnh cài đặt Nuget các bạn gõ lệnh sau:
PM> Install-Package ClosedXML
Lưu ý: các bạn phải chạy Net Framework 4.5.2
Theo ví dụ của mình:
Sẽ xuất dữ liệu ra file excel gồm 3 bảng: Customers, Employee, Catagories.
Mình sử dụng database mẫu Nowthwind, các bạn có thể download database mẫu từ google nhé.
Source code C#:
using System;
using System.Windows.Forms;
using System.IO;
using System.Data;
using System.Reflection;
using ClosedXML.Excel;
using System.Data.SqlClient;
namespace Export_DataTable_Excel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
string constr = "Data Source=.;Initial Catalog=NORTHWND;Integrated Security=True";
string query = "SELECT TOP 10 CustomerId,ContactName,City,Country FROM Customers GO SELECT TOP 5 EmployeeID,(FirstName + + LastName) EmployeeName,City,Country FROM Employees GO SELECT CategoryName, Description FROM dbo.Categories";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(ds);
ds.Tables[0].TableName = "Customers";
ds.Tables[1].TableName = "Employees";
ds.Tables[2].TableName = "Categories";
}
}
}
XLWorkbook wb = new XLWorkbook();
for (int i = 0; i < ds.Tables.Count; i++)
{
wb.Worksheets.Add(ds.Tables[i], ds.Tables[i].TableName);
}
string filePath = "";
if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
filePath = folderBrowserDialog1.SelectedPath;
}
wb.SaveAs(filePath + "DataGridViewExport.xlsx");
}
}
}
HAVE FUN :)