使用 IRONXL 在 C# 中如何將一組對象導出到 Excel Jordi Bardia 發表日期:10月 19, 2025 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 將物件集合匯出到 Excel 檔案是商業應用的基本需求。 無論是產生報表、匯出資料以分享見解,或是建立 Excel 工作表進行備份,開發人員都需要一種可靠的方法來轉換List<T>將物件轉換為專業電子表格。 IronXL提供了一個簡化的解決方案,消除了在 .NET、.NET Core 或 .NET Framework 中建立 Excel 檔案的傳統複雜性。 為什麼將清單匯出到 Excel 檔案會遇到挑戰? 將資料匯出到 Excel 的傳統方法通常涉及 Microsoft Office Interop,這需要在伺服器上安裝 MS Excel,並會帶來部署上的麻煩。 手動逐個細胞進行反射計數既費時又容易出錯。 IronXL 強大的資料匯入功能透過在資料來源和 Excel 列標題之間進行智慧屬性對應來解決這些問題,而無需 MS Office 或複雜的反射程式碼。 此庫可自動處理類型轉換,支援嵌套對象,並能跨不同格式(如 CSV 檔案和 XLSX 檔案)保持資料完整性。 對於不使用 Interop 的 C# Excel 操作開發人員來說,IronXL 是現代 .NET 專案的理想選擇,這些專案需要強大的 Excel 生成和資料導入/匯出功能。 如何將簡單清單資料匯出到 Excel? IronXL 的入門設定非常簡單。首先,透過 NuGet 套件管理器控制台安裝庫: Install-Package IronXL.Excel 在以下程式碼範例中,我們將探討如何使用 Employee 模型匯出資料: using IronXL; using System.Collections.Generic; using System.Data; public class Employee { public int Id { get; set; } public string Name { get; set; } public string Department { get; set; } public decimal Salary { get; set; } public DateTime HireDate { get; set; } } class Program { static void Main(string[] args) { // Create sample data for Excel export var employees = new List<Employee> { new Employee { Id = 1, Name = "Alice Johnson", Department = "Engineering", Salary = 95000, HireDate = new DateTime(2020, 3, 15) }, new Employee { Id = 2, Name = "Bob Smith", Department = "Marketing", Salary = 75000, HireDate = new DateTime(2021, 7, 1) }, new Employee { Id = 3, Name = "Carol Williams", Department = "Engineering", Salary = 105000, HireDate = new DateTime(2019, 11, 20) } }; // Convert the list of employees to a DataTable DataTable dataTable = new DataTable(); dataTable.Columns.Add("Id", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Department", typeof(string)); dataTable.Columns.Add("Salary", typeof(decimal)); dataTable.Columns.Add("HireDate", typeof(DateTime)); foreach (var employee in employees) { dataTable.Rows.Add(employee.Id, employee.Name, employee.Department, employee.Salary, employee.HireDate); } // Export DataTable to Excel spreadsheet var workbook = new WorkBook(); var worksheet = workbook.CreateWorkSheet("Employees"); // Populate the worksheet for (int i = 0; i < dataTable.Columns.Count; i++) { worksheet.SetCellValue(0, i, dataTable.Columns[i].ColumnName); // Add column headers } for (int i = 0; i < dataTable.Rows.Count; i++) { for (int j = 0; j < dataTable.Columns.Count; j++) { worksheet.SetCellValue(i + 1, j, dataTable.Rows[i][j]); // Add data rows } } // Save as XLSX file workbook.SaveAs("EmployeeReport.xlsx"); } } using IronXL; using System.Collections.Generic; using System.Data; public class Employee { public int Id { get; set; } public string Name { get; set; } public string Department { get; set; } public decimal Salary { get; set; } public DateTime HireDate { get; set; } } class Program { static void Main(string[] args) { // Create sample data for Excel export var employees = new List<Employee> { new Employee { Id = 1, Name = "Alice Johnson", Department = "Engineering", Salary = 95000, HireDate = new DateTime(2020, 3, 15) }, new Employee { Id = 2, Name = "Bob Smith", Department = "Marketing", Salary = 75000, HireDate = new DateTime(2021, 7, 1) }, new Employee { Id = 3, Name = "Carol Williams", Department = "Engineering", Salary = 105000, HireDate = new DateTime(2019, 11, 20) } }; // Convert the list of employees to a DataTable DataTable dataTable = new DataTable(); dataTable.Columns.Add("Id", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Department", typeof(string)); dataTable.Columns.Add("Salary", typeof(decimal)); dataTable.Columns.Add("HireDate", typeof(DateTime)); foreach (var employee in employees) { dataTable.Rows.Add(employee.Id, employee.Name, employee.Department, employee.Salary, employee.HireDate); } // Export DataTable to Excel spreadsheet var workbook = new WorkBook(); var worksheet = workbook.CreateWorkSheet("Employees"); // Populate the worksheet for (int i = 0; i < dataTable.Columns.Count; i++) { worksheet.SetCellValue(0, i, dataTable.Columns[i].ColumnName); // Add column headers } for (int i = 0; i < dataTable.Rows.Count; i++) { for (int j = 0; j < dataTable.Columns.Count; j++) { worksheet.SetCellValue(i + 1, j, dataTable.Rows[i][j]); // Add data rows } } // Save as XLSX file workbook.SaveAs("EmployeeReport.xlsx"); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此範例程式碼示範如何將List<Employee>中的資料匯出到 Excel。 List<Employee>使用 IronXL。 它首先將員工清單轉換為資料表,然後手動將列標題和行寫入工作表。 IronXL 可自動處理 int、string 和 DateTime 等資料類型,確保產生的電子表格格式清晰。 最後,Excel 保存功能會產生一個 XLSX 文件,可以將其儲存為EmployeeReport.xlsx ,從而提供了一種簡單且高效的方法,將結構化的 C# 資料轉換為專業的Excel 報告。 如何在 C# 中將物件清單匯出到 Excel:圖 1 如何匯出複雜的業務對象? 實際的 .NET 應用程式通常涉及更複雜的資料結構。 以下是如何使用 C# 物件匯出清單將包含巢狀屬性的產品庫存匯出到 Excel 的方法: using IronXL; using System.Collections.Generic; using System.Data; public class Product { public string SKU { get; set; } public string ProductName { get; set; } public string Category { get; set; } public decimal Price { get; set; } public int StockLevel { get; set; } public bool IsActive { get; set; } public DateTime LastRestocked { get; set; } public decimal CalculatedValue => Price * StockLevel; } class Program { static void Main(string[] args) { // Generate product inventory list for Excel export var products = new List<Product> { new Product { SKU = "TECH-001", ProductName = "Wireless Mouse", Category = "Electronics", Price = 29.99m, StockLevel = 150, IsActive = true, LastRestocked = DateTime.Now.AddDays(-5) }, new Product { SKU = "TECH-002", ProductName = "Mechanical Keyboard", Category = "Electronics", Price = 89.99m, StockLevel = 75, IsActive = true, LastRestocked = DateTime.Now.AddDays(-12) }, new Product { SKU = "OFF-001", ProductName = "Desk Organizer", Category = "Office Supplies", Price = 15.99m, StockLevel = 0, IsActive = false, LastRestocked = DateTime.Now.AddMonths(-1) } }; // Create Excel workbook and import collection data var workbook = WorkBook.Create(); var worksheet = workbook.CreateWorkSheet("Inventory"); // Export generic list to Excel with headers var dataTable = new DataTable(); dataTable.Columns.Add("SKU", typeof(string)); dataTable.Columns.Add("ProductName", typeof(string)); dataTable.Columns.Add("Category", typeof(string)); dataTable.Columns.Add("Price", typeof(decimal)); dataTable.Columns.Add("StockLevel", typeof(int)); dataTable.Columns.Add("IsActive", typeof(bool)); dataTable.Columns.Add("LastRestocked", typeof(DateTime)); dataTable.Columns.Add("CalculatedValue", typeof(decimal)); foreach (var product in products) { dataTable.Rows.Add( product.SKU, product.ProductName, product.Category, product.Price, product.StockLevel, product.IsActive, product.LastRestocked, product.CalculatedValue ); } // With the following code: worksheet["A1"].Value = "SKU"; worksheet["B1"].Value = "ProductName"; worksheet["C1"].Value = "Category"; worksheet["D1"].Value = "Price"; worksheet["E1"].Value = "StockLevel"; worksheet["F1"].Value = "IsActive"; worksheet["G1"].Value = "LastRestocked"; worksheet["H1"].Value = "CalculatedValue"; int row = 2; foreach (DataRow dataRow in dataTable.Rows) { worksheet[$"A{row}"].Value = dataRow["SKU"]; worksheet[$"B{row}"].Value = dataRow["ProductName"]; worksheet[$"C{row}"].Value = dataRow["Category"]; worksheet[$"D{row}"].Value = dataRow["Price"]; worksheet[$"E{row}"].Value = dataRow["StockLevel"]; worksheet[$"F{row}"].Value = dataRow["IsActive"]; worksheet[$"G{row}"].Value = dataRow["LastRestocked"]; worksheet[$"H{row}"].Value = dataRow["CalculatedValue"]; row++; } // Auto-fit columns for optimal display for (int col = 0; col < 8; col++) { worksheet.AutoSizeColumn(col); } // Save as Excel XLSX format workbook.SaveAs("ProductInventory.xlsx"); } } using IronXL; using System.Collections.Generic; using System.Data; public class Product { public string SKU { get; set; } public string ProductName { get; set; } public string Category { get; set; } public decimal Price { get; set; } public int StockLevel { get; set; } public bool IsActive { get; set; } public DateTime LastRestocked { get; set; } public decimal CalculatedValue => Price * StockLevel; } class Program { static void Main(string[] args) { // Generate product inventory list for Excel export var products = new List<Product> { new Product { SKU = "TECH-001", ProductName = "Wireless Mouse", Category = "Electronics", Price = 29.99m, StockLevel = 150, IsActive = true, LastRestocked = DateTime.Now.AddDays(-5) }, new Product { SKU = "TECH-002", ProductName = "Mechanical Keyboard", Category = "Electronics", Price = 89.99m, StockLevel = 75, IsActive = true, LastRestocked = DateTime.Now.AddDays(-12) }, new Product { SKU = "OFF-001", ProductName = "Desk Organizer", Category = "Office Supplies", Price = 15.99m, StockLevel = 0, IsActive = false, LastRestocked = DateTime.Now.AddMonths(-1) } }; // Create Excel workbook and import collection data var workbook = WorkBook.Create(); var worksheet = workbook.CreateWorkSheet("Inventory"); // Export generic list to Excel with headers var dataTable = new DataTable(); dataTable.Columns.Add("SKU", typeof(string)); dataTable.Columns.Add("ProductName", typeof(string)); dataTable.Columns.Add("Category", typeof(string)); dataTable.Columns.Add("Price", typeof(decimal)); dataTable.Columns.Add("StockLevel", typeof(int)); dataTable.Columns.Add("IsActive", typeof(bool)); dataTable.Columns.Add("LastRestocked", typeof(DateTime)); dataTable.Columns.Add("CalculatedValue", typeof(decimal)); foreach (var product in products) { dataTable.Rows.Add( product.SKU, product.ProductName, product.Category, product.Price, product.StockLevel, product.IsActive, product.LastRestocked, product.CalculatedValue ); } // With the following code: worksheet["A1"].Value = "SKU"; worksheet["B1"].Value = "ProductName"; worksheet["C1"].Value = "Category"; worksheet["D1"].Value = "Price"; worksheet["E1"].Value = "StockLevel"; worksheet["F1"].Value = "IsActive"; worksheet["G1"].Value = "LastRestocked"; worksheet["H1"].Value = "CalculatedValue"; int row = 2; foreach (DataRow dataRow in dataTable.Rows) { worksheet[$"A{row}"].Value = dataRow["SKU"]; worksheet[$"B{row}"].Value = dataRow["ProductName"]; worksheet[$"C{row}"].Value = dataRow["Category"]; worksheet[$"D{row}"].Value = dataRow["Price"]; worksheet[$"E{row}"].Value = dataRow["StockLevel"]; worksheet[$"F{row}"].Value = dataRow["IsActive"]; worksheet[$"G{row}"].Value = dataRow["LastRestocked"]; worksheet[$"H{row}"].Value = dataRow["CalculatedValue"]; row++; } // Auto-fit columns for optimal display for (int col = 0; col < 8; col++) { worksheet.AutoSizeColumn(col); } // Save as Excel XLSX format workbook.SaveAs("ProductInventory.xlsx"); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此程式碼示範如何使用 IronXL 在 Excel 中產生動態產品庫存報表。 它建立一個包含 SKU、價格、庫存水準和補貨日期等詳細資訊的產品物件列表,然後為每個項目計算一個衍生的 CalculatedValue。 資料被轉換為資料表,寫入帶有標題的 Excel 工作表,並使用自動調整列寬的方式進行格式化以提高可讀性。 IronXL 可以無縫處理小數、布林值和日期等資料類型,確保專業的電子表格輸出。 產生的ProductInventory.xlsx文件提供了一個清晰、數據驅動的庫存匯出文件,非常適合用於業務報告或分析。 如何在 C# 中將物件清單匯出到 Excel:圖 2 - 複雜業務物件的範例輸出 如何新增專業格式? 利用IronXL 全面的樣式功能,將基本匯出檔案轉換為精美的報表: // After importing data, apply professional formatting var headerRange = worksheet["A1:H1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.Color = "#FFFFFF"; // Format currency columns for Excel export var priceColumn = worksheet["D2:D100"]; priceColumn.Style.NumberFormat = "$#,##0.00"; // Apply conditional formatting to highlight business metrics for (int row = 2; row <= products.Count + 1; row++) { var stockCell = worksheet[$"E{row}"]; if (stockCell.IntValue < 10) { stockCell.Style.BackgroundColor = "#FF6B6B"; } } // Export formatted list to Excel file workbook.SaveAs("FormattedInventory.xlsx"); // After importing data, apply professional formatting var headerRange = worksheet["A1:H1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.Color = "#FFFFFF"; // Format currency columns for Excel export var priceColumn = worksheet["D2:D100"]; priceColumn.Style.NumberFormat = "$#,##0.00"; // Apply conditional formatting to highlight business metrics for (int row = 2; row <= products.Count + 1; row++) { var stockCell = worksheet[$"E{row}"]; if (stockCell.IntValue < 10) { stockCell.Style.BackgroundColor = "#FF6B6B"; } } // Export formatted list to Excel file workbook.SaveAs("FormattedInventory.xlsx"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 這些樣式選項可以將原始資料匯出轉換為可供高階主管閱讀的報表。 將集合匯出到 Excel 時,使用帶有背景顏色的粗體標題可以建立視覺層次結構。 數位格式化功能可確保貨幣數值以專業的方式顯示。 條件格式突顯關鍵業務指標,例如低庫存水平,使匯出的 Excel 電子表格能夠立即用於庫存管理。 了解更多進階儲存格格式設定和邊框樣式,以進一步增強您的匯出功能。 如何在 C# 中將物件清單匯出到 Excel:圖 3 - 格式化工作表 立即開始將清單匯出到 Excel IronXL 將複雜的 Excel 產生任務轉換為簡單、易於維護的程式碼。 其智慧的 ImportData 方法無需依賴 Microsoft Office,即可提供滿足企業要求的專業結果。 該庫的綜合功能集可以處理從基本清單匯出到具有樣式和格式的複雜資料轉換的一切操作。 !{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110-- 準備好簡化您的 C# Excel 匯出流程了嗎? 立即下載 IronXL,它可根據您的需求進行擴展。 請造訪我們的完整文檔,以獲取更多教學和範例。 常見問題解答 IronXL 的主要功能是什麼? IronXL 為 .NET 環境中匯出物件集合(例如 List)至 Excel 檔案提供了簡化的解決方案,而不需要傳統方法的複雜性。 IronXL.Excel 如何簡化資料匯出至 Excel 的過程? IronXL 透過提供 ImportData 方法簡化了這個過程,讓開發人員可以輕鬆地將 C# 清單和複雜的物件轉換成專業的 Excel 試算表,而不需要 Office Interop。 IronXL 可以與 .NET Core 搭配使用嗎? 是的,IronXL 與 .NET Core 以及 .NET 和 .NET Framework 相容,因此適用於各種開發環境。 使用 IronXL 時是否需要 Office Interop? 不,IronXL.Excel 不需要 Office Interop,這可以簡化流程,並減少資料匯出至 Excel 時的依賴性。 使用 IronXL 可以匯出哪些類型的 C# 清單? IronXL.Excel 可將一般清單和複雜物件匯出至 Excel,為處理各種資料結構的開發人員提供彈性的選擇。 為什麼匯出資料至 Excel 對商業應用程式很重要? 將資料匯出到 Excel 對於產生報告、分享洞察力和建立備份是非常重要的,這些都是有效的業務運作和決策的基礎。 IronXL 支援建立專業的試算表嗎? 是的,IronXL 旨在將 C# 列表轉換為專業品質的 Excel 試算表,適合商業報告和資料分析。 與傳統 Excel 檔案建立方法相比,IronXL.Excel 有何優點? IronXL.Excel 消除了製作 Excel 檔案所涉及的傳統複雜性和依賴性,為開發人員提供更有效率且可靠的方法。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 12月 19, 2025 如何使用 C# Interop 與 IronXL 在 Excel 中建立資料透視表 在無需 Office 依賴的情況下在 C# 中構建 Excel 樞紐分析表。IronXL 對無需 Excel Interop 的樞紐型報告創建提供了強大的數據操作功能。 閱讀更多 發表日期 12月 18, 2025 使用 IronXL 將 C# DataGridView 匯出到 Excel,並帶有列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多 發表日期 12月 18, 2025 如何在 C# 中使用 IronXL 創建 Excel 生成報告 使用 IronXL 在 C# 中創建 Excel 報告生成。學習構建擁有格式化公式和數據庫集成的專業報告。 閱讀更多 如何使用 IronXL 在 C# 中將數據保存為 CSV如何使用 C# CSV 函式庫讀寫...
發表日期 12月 19, 2025 如何使用 C# Interop 與 IronXL 在 Excel 中建立資料透視表 在無需 Office 依賴的情況下在 C# 中構建 Excel 樞紐分析表。IronXL 對無需 Excel Interop 的樞紐型報告創建提供了強大的數據操作功能。 閱讀更多
發表日期 12月 18, 2025 使用 IronXL 將 C# DataGridView 匯出到 Excel,並帶有列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多
發表日期 12月 18, 2025 如何在 C# 中使用 IronXL 創建 Excel 生成報告 使用 IronXL 在 C# 中創建 Excel 報告生成。學習構建擁有格式化公式和數據庫集成的專業報告。 閱讀更多