使用C#導出Excel數(shù)據(jù)并保存多種格式的完整示例
引言
在現(xiàn)代企業(yè)信息化管理中,Excel 已經(jīng)成為最常用的數(shù)據(jù)存儲和分析工具。從員工信息表、銷售數(shù)據(jù)報表到財務分析表,幾乎所有部門都離不開 Excel。然而,在實際業(yè)務中,我們往往需要將系統(tǒng)中的數(shù)據(jù)動態(tài)生成 Excel 文件,而不是手動錄入。手動操作不僅效率低,而且容易出錯,對于需要批量生成報表、進行定期統(tǒng)計或?qū)ν獍l(fā)布數(shù)據(jù)的場景尤其不適用。
為了解決這一問題,C# 開發(fā)者可以借助 Free Spire.XLS for .NET,通過代碼快速創(chuàng)建 Excel 文件、填充數(shù)據(jù)、應用樣式,并將文件導出為多種格式,包括 XLSX、CSV、PDF,甚至直接保存到內(nèi)存流以便網(wǎng)絡傳輸。本文將通過一個完整示例,詳細演示如何在 C# 中實現(xiàn) Excel 數(shù)據(jù)導出,讓你的報表生成工作既高效又專業(yè)。
1. 安裝 Spire.XLS
在開始編碼前,需要通過 NuGet 安裝 Spire.XLS:
Install-Package FreeSpire.XLS
安裝完成后,即可在 C# 項目中引用命名空間:
using Spire.Xls; using System.Data; using System.IO;
2. 創(chuàng)建工作簿和填充數(shù)據(jù)
下面示例演示如何創(chuàng)建一個 Excel 文件,并將員工信息填充到工作表中:
// 創(chuàng)建工作簿
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
// 創(chuàng)建 DataTable 并添加列
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// 添加示例數(shù)據(jù)
table.Rows.Add("E101", "John Miller", "Finance", "2020-02-15", "7500");
table.Rows.Add("E102", "Sarah Brown", "HR", "2019-07-10", "6800");
table.Rows.Add("E103", "Michael Davis", "IT", "2021-01-22", "8200");
table.Rows.Add("E104", "Laura Wilson", "Marketing", "2018-11-18", "7100");
table.Rows.Add("E105", "Daniel Lee", "Sales", "2022-06-12", "6900");
// 將 DataTable 插入工作表,從第一行第一列開始,并保留列名
sheet.InsertDataTable(table, true, 1, 1);
// 應用內(nèi)置樣式
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading2; // 標題行
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent2; // 數(shù)據(jù)行
}
// 自動調(diào)整列寬和行高
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();說明:
InsertDataTable可以直接將DataTable內(nèi)容寫入工作表,同時支持保留列名。- 內(nèi)置樣式(
BuiltInStyles)可以快速美化表格,例如標題行加粗、數(shù)據(jù)行配色。 AutoFitColumns和AutoFitRows可自動調(diào)整列寬和行高,使表格美觀。
3. 保存為不同格式
Spire.XLS 支持多種保存格式,常見的包括:
- XLS/XLSX:傳統(tǒng) Excel 文件
- CSV:逗號分隔文本文件
- PDF:用于打印或發(fā)布
- HTML / SVG:網(wǎng)頁或矢量圖格式
- XLSB/XLSM:二進制或帶宏 Excel 文件
- MemoryStream:將文件寫入內(nèi)存流,用于網(wǎng)絡傳輸或其他二次處理
示例代碼:
// 保存為 Excel 2016 格式
workbook.SaveToFile("EmployeeData.xlsx", FileFormat.Version2016);
// 保存為 CSV
workbook.SaveToFile("EmployeeData.csv", FileFormat.CSV);
// 保存為 PDF
workbook.SaveToFile("EmployeeData.pdf", FileFormat.PDF);
// 保存到 MemoryStream
using (MemoryStream ms = new MemoryStream())
{
workbook.SaveToStream(ms, FileFormat.Version2016);
// 這里可以將 ms 寫入數(shù)據(jù)庫、發(fā)送 HTTP 響應等
}說明:
FileFormat枚舉支持多達 25 種格式,例如Xlsb2007、ODS、HTML、Markdown等。- MemoryStream 保存方式適合 Web 應用場景,可以直接將文件返回給客戶端而不寫入磁盤。
4. 效果展示
生成的 Excel 文件:

表頭加粗,數(shù)據(jù)行有配色,并且列寬自適應。
5. 擴展說明
- 為什么要使用代碼導出?對于批量生成報表或動態(tài)數(shù)據(jù),手動操作效率低且易出錯,使用代碼生成可以自動化、可復用。
MemoryStream 場景
- Web API 返回文件下載
- 將 Excel 存入數(shù)據(jù)庫或云存儲
- 在內(nèi)存中生成并進一步處理,例如加密或壓縮
- 多格式支持Spire.XLS 的
FileFormat枚舉幾乎覆蓋了主流的 Excel、PDF、網(wǎng)頁、模板等格式,可以滿足多種業(yè)務需求。
6. 總結
本文演示了如何使用 Spire.XLS for .NET:
- 在 C# 中創(chuàng)建 Excel 文件并填充數(shù)據(jù)
- 應用內(nèi)置樣式和自動調(diào)整行列
- 將文件保存為多種格式(XLSX、CSV、PDF、HTML 等)
- 使用 MemoryStream 保存用于網(wǎng)絡傳輸或二次處理
通過掌握 Workbook、Worksheet、InsertDataTable 和 SaveToFile/SaveToStream,你可以輕松實現(xiàn) Excel 數(shù)據(jù)導出和格式轉(zhuǎn)換,提升企業(yè)應用開發(fā)效率。
以上就是使用C#導出Excel數(shù)據(jù)并保存多種格式的完整示例的詳細內(nèi)容,更多關于C#導出Excel數(shù)據(jù)并保存格式的資料請關注腳本之家其它相關文章!
相關文章
C#利用ASP.NET?Core開發(fā)學生管理系統(tǒng)詳解
隨著技術的進步,跨平臺開發(fā)已經(jīng)成為了標配,在此大背景下,ASP.NET?Core也應運而生。本文主要利用ASP.NET?Core開發(fā)一個學生管理系統(tǒng),感興趣的可以學習一下2022-01-01
Winform界面中實現(xiàn)菜單列表的動態(tài)個性化配置管理方法
下面小編就為大家分享一篇Winform界面中實現(xiàn)菜單列表的動態(tài)個性化配置管理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11
C#調(diào)用FFmpeg操作音視頻的實現(xiàn)示例
本文主要介紹了C#調(diào)用FFmpeg操作音視頻的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
c# winform取消右上角關閉按鈕的實現(xiàn)方法
本文是對c#中winform取消右上角關閉按鈕的實現(xiàn)方法進行了詳細的介紹,需要的朋友可以過來參考下。希望對大家有所幫助2013-10-10

