使用 IronXL 將 C# 中的 DataGridView 匯出到 Excel
使用 IronXL 將 DataGridView 資料匯出為 Excel,C# 消除了對 Microsoft Office 的依賴,並提供了容器友好的部署。 建立 WorkBook,遍歷 DataGridView 儲存格,並以具有完整格式支援的 XLSX 格式儲存。
將 Windows Forms 中的資料匯出到 Excel 是商業應用程式中的常見需求。 無論是產生報告、創建資料備份,還是與利益相關者共享信息,開發人員都需要一種可靠的方法將 GridView 資料匯出為 Excel 格式。 傳統上使用 Microsoft Office Interop 的方法雖能達成此目的,但其部署複雜度與依賴性要求,往往會使應用程式分發變得繁瑣。
本教學示範了一個實用的 C# 範例,使用IronXL (一個 .NET 函式庫,無需安裝 Microsoft Office)將 DataGridView 資料匯出到 Excel。 您將探索如何實作一套簡潔、高效的匯出解決方案,使其能在包括雲端平台與容器在內的各種環境中運作。 無論是部署至 Azure 還是於 Docker 容器中執行應用程式,IronXL 皆能提供 DevOps 團隊所需的部署彈性。
IronXL 主頁展示了無需 Microsoft Office 或 Excel Interop 即可讀取 Excel 檔案的 C# 程式碼範例,並具有語法高亮顯示和 NuGet 下載統計資料。
為什麼匯出到 Excel 至關重要?
DataGridView 控制項是 Windows 窗體應用程式的基礎,用於顯示使用者每天與之互動的表格資料。 將此資料匯出至 Excel,可讓使用者運用 Excel 強大的分析工具、製作簡報,並與無法存取該應用程式的同事分享資料。 這項 C# Excel 匯出功能對於商業報表與資料分析工作流程至關重要。
使用Microsoft.Office.Interop.Excel 的傳統匯出方法需要在執行該應用程式的每台電腦上安裝 Excel。 這會帶來部署方面的挑戰,尤其是在伺服器環境中或向沒有 Office 授權的使用者分發應用程式時。 此外,如果處理不當,互通方法可能會出現記憶體洩漏和 COM 物件清理問題。 當部署至 AWS Lambda 或其他無法安裝 Office 的無伺服器平台時,這些挑戰將變得尤為嚴峻。
現代 .NET 應用程式需要更靈活的解決方案。 IronXL 透過提供一個無需依賴 Microsoft Office 即可產生 Excel 檔案的獨立程式庫,來解決這些挑戰。 此方法可確保開發、測試及生產環境間的功能一致性,同時支援部署至容器及雲端平台。
IronXL 與 Interop 如何比較?
下表概述了 IronXL 與 Microsoft Office Interop 在 Excel 匯出情境下的主要差異:
| 特點 | IronXL | Microsoft Interop |
|---|---|---|
| 需安裝辦公室軟體 | 無 | 是 |
| Linux / Docker 支援 | 是 | 無 |
| COM 物件清理 | 無需 | 手動翻譯,易出錯 |
| 記憶體洩漏風險 | 低的 | 若無其他要求,則優先級為高 |
| 雲端/無伺服器部署 | 支援 | 不支援 |
| 匯出格式(XLSX、CSV、JSON、XML) | 所有支援的 | 限額 |
如何在 C# 專案中安裝 IronXL?
請在 Visual Studio 中開啟"套件管理員主控台"並執行以下指令,或使用 .NET CLI:
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
終端機輸出顯示 IronXL.Excel NuGet 套件及其相依性已成功安裝至 C# 專案中
如需詳細的安裝選項,請參閱 IronXL NuGet 安裝指南,或直接在 NuGet.org 上搜尋該套件。 安裝完成後,將 using IronXL; 新增至您的 C# 專案檔案中,即可存取該庫的 Excel 匯出功能。 部署至生產環境時,請套用您的授權金鑰以啟用所有功能。 您可申請免費試用授權,在購買前評估 IronXL 的功能。
基本的 DataGridView 匯出結果會是什麼樣子?
以下程式碼建立了一個範例 Windows 窗體應用程序,其中包含填滿的數據,然後使用 IronXL 頂級語句將其匯出到 Excel:
using IronXL;
using System.Data;
using System.Windows.Forms;
// Create a DataTable with sample product data
var dt = new DataTable();
dt.Columns.Add("Product ID", typeof(int));
dt.Columns.Add("Product Name", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("Stock", typeof(int));
dt.Rows.Add(1001, "Laptop Pro", "Electronics", 1299.99m, 15);
dt.Rows.Add(1002, "Wireless Mouse", "Accessories", 29.99m, 50);
dt.Rows.Add(1003, "USB-C Cable", "Accessories", 19.99m, 100);
dt.Rows.Add(1004, "Monitor 27\"", "Electronics", 399.99m, 8);
dt.Rows.Add(1005, "Keyboard Mechanical", "Accessories", 89.99m, 25);
// Bind to DataGridView
var dataGridView1 = new DataGridView();
dataGridView1.DataSource = dt;
// Create new Excel workbook
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;
// Export column headers
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
worksheet.SetCellValue(0, colIndex, dataGridView1.Columns[colIndex].HeaderText);
}
// Export data rows
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
if (!dataGridView1.Rows[rowIndex].IsNewRow)
{
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
var cellValue = dataGridView1.Rows[rowIndex].Cells[colIndex].Value;
if (cellValue is decimal or double or int)
worksheet.SetCellValue(rowIndex + 1, colIndex, Convert.ToDouble(cellValue));
else
worksheet.SetCellValue(rowIndex + 1, colIndex, cellValue?.ToString() ?? string.Empty);
}
}
}
// Save the Excel file
workbook.SaveAs("DataGridViewExport.xlsx");
Console.WriteLine("Export completed successfully!");
using IronXL;
using System.Data;
using System.Windows.Forms;
// Create a DataTable with sample product data
var dt = new DataTable();
dt.Columns.Add("Product ID", typeof(int));
dt.Columns.Add("Product Name", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("Stock", typeof(int));
dt.Rows.Add(1001, "Laptop Pro", "Electronics", 1299.99m, 15);
dt.Rows.Add(1002, "Wireless Mouse", "Accessories", 29.99m, 50);
dt.Rows.Add(1003, "USB-C Cable", "Accessories", 19.99m, 100);
dt.Rows.Add(1004, "Monitor 27\"", "Electronics", 399.99m, 8);
dt.Rows.Add(1005, "Keyboard Mechanical", "Accessories", 89.99m, 25);
// Bind to DataGridView
var dataGridView1 = new DataGridView();
dataGridView1.DataSource = dt;
// Create new Excel workbook
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;
// Export column headers
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
worksheet.SetCellValue(0, colIndex, dataGridView1.Columns[colIndex].HeaderText);
}
// Export data rows
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
if (!dataGridView1.Rows[rowIndex].IsNewRow)
{
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
var cellValue = dataGridView1.Rows[rowIndex].Cells[colIndex].Value;
if (cellValue is decimal or double or int)
worksheet.SetCellValue(rowIndex + 1, colIndex, Convert.ToDouble(cellValue));
else
worksheet.SetCellValue(rowIndex + 1, colIndex, cellValue?.ToString() ?? string.Empty);
}
}
}
// Save the Excel file
workbook.SaveAs("DataGridViewExport.xlsx");
Console.WriteLine("Export completed successfully!");
Imports IronXL
Imports System.Data
Imports System.Windows.Forms
' Create a DataTable with sample product data
Dim dt As New DataTable()
dt.Columns.Add("Product ID", GetType(Integer))
dt.Columns.Add("Product Name", GetType(String))
dt.Columns.Add("Category", GetType(String))
dt.Columns.Add("Price", GetType(Decimal))
dt.Columns.Add("Stock", GetType(Integer))
dt.Rows.Add(1001, "Laptop Pro", "Electronics", 1299.99D, 15)
dt.Rows.Add(1002, "Wireless Mouse", "Accessories", 29.99D, 50)
dt.Rows.Add(1003, "USB-C Cable", "Accessories", 19.99D, 100)
dt.Rows.Add(1004, "Monitor 27""", "Electronics", 399.99D, 8)
dt.Rows.Add(1005, "Keyboard Mechanical", "Accessories", 89.99D, 25)
' Bind to DataGridView
Dim dataGridView1 As New DataGridView()
dataGridView1.DataSource = dt
' Create new Excel workbook
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
' Export column headers
For colIndex As Integer = 0 To dataGridView1.Columns.Count - 1
worksheet.SetCellValue(0, colIndex, dataGridView1.Columns(colIndex).HeaderText)
Next
' Export data rows
For rowIndex As Integer = 0 To dataGridView1.Rows.Count - 1
If Not dataGridView1.Rows(rowIndex).IsNewRow Then
For colIndex As Integer = 0 To dataGridView1.Columns.Count - 1
Dim cellValue = dataGridView1.Rows(rowIndex).Cells(colIndex).Value
If TypeOf cellValue Is Decimal OrElse TypeOf cellValue Is Double OrElse TypeOf cellValue Is Integer Then
worksheet.SetCellValue(rowIndex + 1, colIndex, Convert.ToDouble(cellValue))
Else
worksheet.SetCellValue(rowIndex + 1, colIndex, If(cellValue?.ToString(), String.Empty))
End If
Next
End If
Next
' Save the Excel file
workbook.SaveAs("DataGridViewExport.xlsx")
Console.WriteLine("Export completed successfully!")
此程式碼演示了核心導出功能。 DataTable 設定使用範例產品資料填入網格,作為 DataGridView 控制項的通用資料來源。 處理大型資料集時,建議使用 IronXL 的 DataSet 匯入與匯出功能以提升效能。
匯出循環遍歷 DataGridView,使用 SetCellValue 和行和列索引將標題和資料放入 Excel 儲存格中。 IronXL 文件涵蓋了適用於更複雜情境的額外儲存格寫入選項。 IsNewRow 檢查會跳過可編輯的 DataGridViews 底部的空白行,從而確保 Excel 輸出乾淨,不會出現意外的空白行。
Windows Forms 應用程式顯示一個 DataGridView,其中填充了產品數據,包括產品 ID、名稱、類別、價格和庫存列,下方有一個"匯出到 Excel"按鈕。
! Microsoft Excel 電子表格,顯示匯出的產品數據,包含產品 ID、產品名稱、類別、價格和庫存水準等列,涵蓋電子產品和電腦配件。
如果您在基於 Web 的 ASP.NET MVC 應用程式中實現此功能,請透過使用 Content-Disposition HTTP 標頭將檔案作為可下載的回應傳回來擴充此方法。 對於 ASP.NET WebForms 開發人員,在匯出控制項時可能需要重寫 VerifyRenderingInServerForm 以確保正確呈現。 請造訪 IronXL 功能頁面,查看完整支援情境清單。
如何為 Excel 匯出檔案添加 Professional 格式?
專業Excel匯出檔案通常需要進行格式設定以提高可讀性。 IronXL 提供多種樣式設定功能,包括字型自訂、背景顏色、邊框及對齊方式。 以下範例新增了標題格式與交錯的行色:
using IronXL;
using System.Data;
using System.Windows.Forms;
// Assume dataGridView1 is already populated with data
var dataGridView1 = new DataGridView();
// (populate dataGridView1 with data as shown in the previous example)
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;
// Set column headers with formatting
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
var headerCell = worksheet.GetCellAt(0, colIndex);
headerCell.Value = dataGridView1.Columns[colIndex].HeaderText;
headerCell.Style.Font.Bold = true;
headerCell.Style.BackgroundColor = "#4472C4";
headerCell.Style.Font.Color = "#FFFFFF";
headerCell.Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center;
}
// Export data with alternating row colors
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
if (!dataGridView1.Rows[rowIndex].IsNewRow)
{
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
var cellValue = dataGridView1.Rows[rowIndex].Cells[colIndex].Value;
var excelCell = worksheet.GetCellAt(rowIndex + 1, colIndex);
if (cellValue != null)
excelCell.Value = cellValue.ToString();
// Apply alternating row background
if (rowIndex % 2 == 0)
excelCell.Style.BackgroundColor = "#F2F2F2";
}
}
}
// Auto-fit columns
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
worksheet.AutoSizeColumn(colIndex);
}
workbook.SaveAs("FormattedExport.xlsx");
Console.WriteLine("Formatted export completed successfully!");
using IronXL;
using System.Data;
using System.Windows.Forms;
// Assume dataGridView1 is already populated with data
var dataGridView1 = new DataGridView();
// (populate dataGridView1 with data as shown in the previous example)
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;
// Set column headers with formatting
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
var headerCell = worksheet.GetCellAt(0, colIndex);
headerCell.Value = dataGridView1.Columns[colIndex].HeaderText;
headerCell.Style.Font.Bold = true;
headerCell.Style.BackgroundColor = "#4472C4";
headerCell.Style.Font.Color = "#FFFFFF";
headerCell.Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center;
}
// Export data with alternating row colors
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
if (!dataGridView1.Rows[rowIndex].IsNewRow)
{
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
var cellValue = dataGridView1.Rows[rowIndex].Cells[colIndex].Value;
var excelCell = worksheet.GetCellAt(rowIndex + 1, colIndex);
if (cellValue != null)
excelCell.Value = cellValue.ToString();
// Apply alternating row background
if (rowIndex % 2 == 0)
excelCell.Style.BackgroundColor = "#F2F2F2";
}
}
}
// Auto-fit columns
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
worksheet.AutoSizeColumn(colIndex);
}
workbook.SaveAs("FormattedExport.xlsx");
Console.WriteLine("Formatted export completed successfully!");
Imports IronXL
Imports System.Data
Imports System.Windows.Forms
' Assume dataGridView1 is already populated with data
Dim dataGridView1 As New DataGridView()
' (populate dataGridView1 with data as shown in the previous example)
Dim workbook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet = workbook.DefaultWorkSheet
' Set column headers with formatting
For colIndex As Integer = 0 To dataGridView1.Columns.Count - 1
Dim headerCell = worksheet.GetCellAt(0, colIndex)
headerCell.Value = dataGridView1.Columns(colIndex).HeaderText
headerCell.Style.Font.Bold = True
headerCell.Style.BackgroundColor = "#4472C4"
headerCell.Style.Font.Color = "#FFFFFF"
headerCell.Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center
Next
' Export data with alternating row colors
For rowIndex As Integer = 0 To dataGridView1.Rows.Count - 1
If Not dataGridView1.Rows(rowIndex).IsNewRow Then
For colIndex As Integer = 0 To dataGridView1.Columns.Count - 1
Dim cellValue = dataGridView1.Rows(rowIndex).Cells(colIndex).Value
Dim excelCell = worksheet.GetCellAt(rowIndex + 1, colIndex)
If cellValue IsNot Nothing Then
excelCell.Value = cellValue.ToString()
End If
' Apply alternating row background
If rowIndex Mod 2 = 0 Then
excelCell.Style.BackgroundColor = "#F2F2F2"
End If
Next
End If
Next
' Auto-fit columns
For colIndex As Integer = 0 To dataGridView1.Columns.Count - 1
worksheet.AutoSizeColumn(colIndex)
Next
workbook.SaveAs("FormattedExport.xlsx")
Console.WriteLine("Formatted export completed successfully!")
此增強版對匯出的 Excel 檔案套用了 Professional 格式。標題採用藍色背景搭配白色字體並加粗,與資料列形成清晰的視覺區隔。 此程式碼透過模運算實現交錯的行色彩,從而提升大型資料集的可讀性。 您可以參考 IronXL 儲存格格式設定指南進一步自訂外觀,或運用合併儲存格功能來橫跨標題欄位。
AutoSizeColumn 方法會調整列寬以適應內容,從而消除匯出後手動調整的麻煩。 這些格式設定選項可以將基本資料匯出轉換為使用者可以立即分享的簡報文件。 請參閱《如何使用 IronXL 寫入 Excel 檔案》以了解更多格式設定與資料寫入模式。
如何匯出為多種格式並加入公式?
IronXL 不僅限於基本的 Excel 匯出功能,更提供公式支援、多工作表處理以及多種輸出格式等進階功能。 以下範例展示了這些功能:
using IronXL;
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;
// (populate worksheet with DataGridView data as shown above)
int dataRowCount = 5; // Replace with actual dataGridView1.Rows.Count
// Add a SUM formula to calculate the total price column
worksheet.SetCellValue(dataRowCount + 2, 3, $"=SUM(D2:D{dataRowCount + 1})");
// Create a summary worksheet
var summarySheet = workbook.CreateWorkSheet("Summary");
summarySheet.SetCellValue(0, 0, "Total Products");
summarySheet.SetCellValue(0, 1, dataRowCount);
// Save in multiple formats
workbook.SaveAs("export.xlsx");
workbook.SaveAsCsv("export.csv");
workbook.SaveAsJson("export.json");
workbook.SaveAsXml("export.xml");
Console.WriteLine("Multi-format export completed!");
using IronXL;
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;
// (populate worksheet with DataGridView data as shown above)
int dataRowCount = 5; // Replace with actual dataGridView1.Rows.Count
// Add a SUM formula to calculate the total price column
worksheet.SetCellValue(dataRowCount + 2, 3, $"=SUM(D2:D{dataRowCount + 1})");
// Create a summary worksheet
var summarySheet = workbook.CreateWorkSheet("Summary");
summarySheet.SetCellValue(0, 0, "Total Products");
summarySheet.SetCellValue(0, 1, dataRowCount);
// Save in multiple formats
workbook.SaveAs("export.xlsx");
workbook.SaveAsCsv("export.csv");
workbook.SaveAsJson("export.json");
workbook.SaveAsXml("export.xml");
Console.WriteLine("Multi-format export completed!");
Imports IronXL
Dim workbook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet = workbook.DefaultWorkSheet
' (populate worksheet with DataGridView data as shown above)
Dim dataRowCount As Integer = 5 ' Replace with actual dataGridView1.Rows.Count
' Add a SUM formula to calculate the total price column
worksheet.SetCellValue(dataRowCount + 2, 3, $"=SUM(D2:D{dataRowCount + 1})")
' Create a summary worksheet
Dim summarySheet = workbook.CreateWorkSheet("Summary")
summarySheet.SetCellValue(0, 0, "Total Products")
summarySheet.SetCellValue(0, 1, dataRowCount)
' Save in multiple formats
workbook.SaveAs("export.xlsx")
workbook.SaveAsCsv("export.csv")
workbook.SaveAsJson("export.json")
workbook.SaveAsXml("export.xml")
Console.WriteLine("Multi-format export completed!")
IronXL 支援 Excel 公式,讓您能直接在匯出的檔案中加入計算功能。 上面的範例新增了一個公式,用於自動計算列總計。 建立多個工作表有助於組織複雜的匯出內容,例如將詳細資料與匯總資訊分開。 請參閱 IronXL 建立 Excel 檔案的操作指南,以了解更多工作表管理模式。
其格式靈活性對於整合情境尤為重要。 雖然 XLSX 是 Excel 檔案的標準格式,但 CSV 匯出能與各類資料庫系統及舊版應用程式廣泛相容。 JSON 和 XML 格式有助於與網路服務及 API 進行資料交換。您也可以開啟現有的工作簿,將匯出的資料追加至現有的試算表中,而非每次都建立新檔案。
各種匯出格式有何差異?
! Excel 電子表格顯示產品庫存,包含產品 ID、名稱、類別、價格和庫存列,求和公式結果為 1839.95,顯示在儲存格 D9 中。
! Excel 電子表格顯示了一個"匯總"工作表,其中 A1 和 B1 單元格中顯示"產品總數:5",演示了將 DataGridView 資料匯出到 Excel 並產生多個工作表的結果。
! Excel 電子表格顯示產品庫存數據,列包括產品 ID、產品名稱、類別、價格和庫存數量,單元格 D9 中顯示總和為 1839.95。
! JSON 文件,以程式碼編輯器介面顯示產品數據,包含產品 ID、名稱、類別、價格和庫存欄位。
! XML 檔案顯示匯出的 DataGridView 數據,其中包含產品信息,包括 ID、名稱、類別、價格和庫存水平,並按 Sheet 元素進行組織。
IronXL 如何簡化您的 C# 開發工作流程?
IronXL 的主要優點在於無需依賴 Microsoft Office。 無論部署在開發人員工作站、客戶機器或 Docker 容器中,您的應用程式都能穩定運作。 這種獨立性簡化了部署,並減少了與 Office 版本和安裝相關的支援問題。 微軟的Open XML SDK是另一個無需 Office 的替代方案,但與 IronXL 的高級 API 相比,它需要編寫更多的樣板程式碼。 有關跨平台 .NET 10 開發指南, Microsoft .NET 文件涵蓋了平台目標、部署模型和 Windows Forms 的具體內容。
該程式庫的 API 設計以簡潔性為優先原則。 與 Interop 基於 COM 的方法需要謹慎地處理物件不同,IronXL 使用標準的 .NET 模式,這對 C# 開發人員來說感覺很自然。 跨平台支援意味著為 Windows Forms 建置的匯出功能可以在執行於 Linux 伺服器上的 ASP.NET Core 應用程式中重複使用。 如需全面了解可用功能,請造訪IronXL 功能頁面。
您也可以從 Excel 匯入數據,以便在匯出之前預先填入 DataGridView,從而建立往返工作流程,使用者可以載入 Excel 數據,在網格中編輯數據,然後將結果匯出回 Excel。 讀取Excel檔案指南詳細介紹了導入部分。
處理敏感資料時,IronXL 支援工作簿級和工作表級密碼保護。 IronXL 文件涵蓋了在分發之前必須保護匯出檔案的安全選項。
! Excel 庫的功能概述,顯示六個主要類別:建立、儲存和匯出、編輯工作簿、處理資料、保護工作簿和編輯版面選項。
生產用途有哪些授權選項?
IronXL 在生產環境中部署需要有效的許可證金鑰。 您可以先申請免費試用許可證,解鎖所有功能進行評估。 請查看IronXL 授權頁面,以了解從單一開發者授權到無限企業部署的各種授權等級的完整詳細資訊。
在使用 IronXL 的任何功能之前,請先在您的應用程式中套用許可證金鑰:
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronXL
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
這一行程式碼會在應用程式進程的整個生命週期內啟動該程式庫。 對於 Web 應用程式和服務,請在啟動時設定許可證密鑰,以便所有請求都能享受到完整的功能集,而不會出現浮水印。
為什麼您應該選擇 IronXL 來進行 C# 中的 Excel 匯出?
使用 IronXL 將 DataGridView 資料匯出到 Excel 變得非常簡單。 該程式庫消除了傳統的互通複雜性,同時提供了專業的格式化功能和多種匯出格式。 它採用容器友善架構,依賴項極少,並支援跨平台,使其成為現代 DevOps 工作流程的理想選擇。
IronXL 主頁是探索完整庫的起點。 無論是建置微服務、部署到 Kubernetes 集群,還是運行無伺服器函數,IronXL 都能無縫整合到 CI/CD 管道中。 匯出 Excel 操作指南提供了不同匯出場景的更多模式,而開啟工作簿指南則涵蓋了讀取和修改現有文件。
首先申請免費試用許可證,體驗全部功能。 IronXL 教學和程式碼範例可協助您快速實現可用於生產環境的解決方案。 我們提供靈活的授權選項,滿足您的部署需求,從個人開發者授權到無限企業部署,應有盡有。 對於任何入門問題, IronXL 文件中心提供 API 參考、程式碼範例和故障排除指南。
常見問題解答
使用IronXL將DataGridView匯出到Excel的好處是什麼?
IronXL通過消除Microsoft Office Interop的需求來簡化將DataGridView內容匯出到Excel的過程,減少了部署的複雜性並去除依賴要求。
IronXL如何改進應用程式分發?
IronXL通過不需要Microsoft Office Interop來減少應用程式分發的複雜性,因為Office Interop通常會附帶額外的依賴性,這會使部署變得複雜。
IronXL可以在VB.NET中匯出DataGridView資料嗎?
是的,IronXL提供了一個實用的解決方案,用於在VB.NET中將DataGridView資料匯出到Excel,使其更容易在商業應用中管理資料。
將DataGridView匯出到Excel的常見用例是什麼?
常見的用例包括生成報告,創建資料備份,並在商業環境中與利益相關者分享信息。
IronXL需要系統上安裝Microsoft Excel嗎?
不,IronXL不需要安裝Microsoft Excel,因為它獨立於Excel運行,簡化了部署過程。


