C#使用Spire.XLS for .NET將List數(shù)據(jù)導(dǎo)出Excel的操作指南
引言
在現(xiàn)代數(shù)據(jù)驅(qū)動的應(yīng)用開發(fā)中,將程序內(nèi)存中的數(shù)據(jù)以結(jié)構(gòu)化的形式呈現(xiàn)給用戶是一個(gè)普遍的需求。其中,將C# List集合中的數(shù)據(jù)導(dǎo)出到Excel文件,因其良好的可讀性、易分享性以及強(qiáng)大的數(shù)據(jù)分析能力,成為了開發(fā)者們經(jīng)常需要實(shí)現(xiàn)的功能。
無論是生成統(tǒng)計(jì)報(bào)表、導(dǎo)出用戶數(shù)據(jù)、進(jìn)行數(shù)據(jù)遷移,還是為BI工具提供數(shù)據(jù)源,高效且格式友好的Excel導(dǎo)出功能都至關(guān)重要。本文將介紹如何使用 Spire.XLS for .NET,通過清晰直觀的方式,將 List<T> 數(shù)據(jù)寫入Excel文件。
C#數(shù)據(jù)導(dǎo)出Excel的典型場景
在實(shí)際項(xiàng)目中,常見需求包括:
- 導(dǎo)出訂單數(shù)據(jù)供財(cái)務(wù)核對
- 導(dǎo)出客戶信息供銷售分析
- 導(dǎo)出統(tǒng)計(jì)結(jié)果供管理層查看
Excel作為數(shù)據(jù)展示與處理的通用工具,其格式控制能力和易操作性,使其成為最常見的數(shù)據(jù)輸出形式之一。
環(huán)境準(zhǔn)備
在 Visual Studio 中通過 NuGet 安裝 Spire.XLS:
- 右鍵項(xiàng)目
- 選擇“管理NuGet程序包”
- 搜索
Spire.XLS - 安裝
安裝完成后即可在代碼中引用:
using Spire.Xls;
示例數(shù)據(jù)模型
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime ManufactureDate { get; set; }
public bool IsAvailable { get; set; }
}
核心實(shí)現(xiàn):將 List 數(shù)據(jù)寫入 Excel
using Spire.Xls;
using System;
using System.Collections.Generic;
public class ExcelExporter
{
public static void ExportProductsToExcel(List<Product> products, string filePath)
{
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "產(chǎn)品列表";
int row = 1;
// 寫入表頭
sheet.Range[row, 1].Value2 = "ID";
sheet.Range[row, 2].Value2 = "Name";
sheet.Range[row, 3].Value2 = "Price";
sheet.Range[row, 4].Value2 = "ManufactureDate";
sheet.Range[row, 5].Value2 = "IsAvailable";
row++;
// 寫入數(shù)據(jù)
foreach (var product in products)
{
sheet.Range[row, 1].Value2 = product.ID;
sheet.Range[row, 2].Value2 = product.Name;
sheet.Range[row, 3].Value2 = (double)product.Price;
sheet.Range[row, 4].Value2 = product.ManufactureDate;
sheet.Range[row, 5].Value2 = product.IsAvailable;
row++;
}
// 自動調(diào)整列寬
sheet.AllocatedRange.AutoFitColumns();
// 設(shè)置標(biāo)題樣式
var headerRange = sheet.Range[1, 1, 1, 5];
headerRange.Style.Font.IsBold = true;
headerRange.Style.HorizontalAlignment = HorizontalAlignType.Center;
workbook.SaveToFile(filePath, ExcelVersion.Version2016);
workbook.Dispose();
}
public static void Main(string[] args)
{
List<Product> productList = new List<Product>
{
new Product { ID = 1, Name = "筆記本電腦", Price = 8999.00M, ManufactureDate = new DateTime(2023, 1, 15), IsAvailable = true },
new Product { ID = 2, Name = "無線鼠標(biāo)", Price = 129.50M, ManufactureDate = new DateTime(2023, 3, 10), IsAvailable = true },
new Product { ID = 3, Name = "機(jī)械鍵盤", Price = 599.00M, ManufactureDate = new DateTime(2022, 11, 20), IsAvailable = false },
new Product { ID = 4, Name = "顯示器", Price = 1999.99M, ManufactureDate = new DateTime(2023, 2, 5), IsAvailable = true },
new Product { ID = 5, Name = "SSD硬盤", Price = 650.00M, ManufactureDate = new DateTime(2023, 4, 1), IsAvailable = true }
};
string outputPath = "ProductsExport.xlsx";
ExportProductsToExcel(productList, outputPath);
}
}
導(dǎo)出結(jié)果演示:

格式控制與擴(kuò)展
在實(shí)際項(xiàng)目中,往往需要對單元格格式進(jìn)行控制。例如:
設(shè)置日期格式:
sheet.Range[row, 4].Style.NumberFormat = "yyyy-mm-dd";
設(shè)置貨幣格式:
sheet.Range[row, 3].Style.NumberFormat = "¥#,##0.00";
通過單元格對象可以精確控制:
- 字體
- 對齊方式
- 數(shù)字格式
- 背景顏色
- 邊框
實(shí)踐建議
- 處理完畢后調(diào)用
Dispose()釋放資源 - 建議使用
try-catch進(jìn)行異常處理 - 大數(shù)據(jù)量導(dǎo)出時(shí)可考慮分批處理
- 注意數(shù)值類型轉(zhuǎn)換(如 decimal 轉(zhuǎn) double)
總結(jié)
通過遍歷 List<T> 并使用 sheet.Range[row, column].Value2 寫入數(shù)據(jù),可以實(shí)現(xiàn)清晰、可控且易維護(hù)的Excel導(dǎo)出邏輯。
這種方式結(jié)構(gòu)直觀,便于擴(kuò)展格式控制,適用于大多數(shù)常見業(yè)務(wù)場景。結(jié)合 Spire.XLS 提供的豐富功能,可以進(jìn)一步實(shí)現(xiàn)圖表生成、公式計(jì)算、數(shù)據(jù)驗(yàn)證等高級需求,從而滿足更復(fù)雜的報(bào)表開發(fā)場景。
以上就是C#使用Spire.XLS for .NET將List數(shù)據(jù)導(dǎo)出Excel的操作指南的詳細(xì)內(nèi)容,更多關(guān)于C#將List數(shù)據(jù)導(dǎo)出Excel的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
聊聊C# 中HashTable與Dictionary的區(qū)別說明
這篇文章主要介紹了聊聊C# 中HashTable與Dictionary的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
C#實(shí)現(xiàn)DataSet內(nèi)數(shù)據(jù)轉(zhuǎn)化為Excel和Word文件的通用類完整實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)DataSet內(nèi)數(shù)據(jù)轉(zhuǎn)化為Excel和Word文件的通用類,涉及C#中DataSet控件的使用及Excel和Word文件的相關(guān)操作技巧,需要的朋友可以參考下2016-06-06
C# 鍵盤Enter鍵取代Tab鍵實(shí)現(xiàn)代碼
這篇文章主要介紹了C# 鍵盤Enter鍵取代Tab鍵實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-11-11
帶著問題讀CLR via C#(筆記一)CLR的執(zhí)行模型
CLR (Common Language Runtime) 是一個(gè)可以由多種編程語言使用的“運(yùn)行時(shí)”。2013-04-04
WPF模擬實(shí)現(xiàn)Gitee泡泡菜單的示例代碼
這篇文章主要介紹了如何利用WPF模擬實(shí)現(xiàn)Gitee泡泡菜單,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-08-08
C# HttpClient 如何使用 Consul 發(fā)現(xiàn)服務(wù)
這篇文章主要介紹了C# HttpClient 如何使用 Consul 發(fā)現(xiàn)服務(wù),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-02-02

