跳過到頁腳內容
使用 IRONXL

如何在 C# 中將 Excel 轉換為 DataGridView

IronXL 庫功能

在 C# 中使用 IronXL 庫,您可以輕鬆地讀取和轉換 Microsoft Excel 文檔為 CSV 文件。 IronXL 是一個獨立的 .NET 軟件庫,可以讀取各種電子表格格式,而無需安裝 Microsoft Excel 或依賴於 Microsoft Office Interop Excel。

IronXL 是 C# 的領先 Excel 電子表格庫之一,與 .NET Core 和 .NET Framework 均兼容。 它支持各種 .NET 框架,包括 Web 應用、Windows 窗體應用和控制台應用。 使用 IronXL 讀取 Excel 文件既快速又簡單。 它支持多種 Excel 文件格式,包括 XLSX、XLS、CSV、TSV、XLST、XLSM 等。 您可以導入、編輯、導出數據表格、導出數據集,並執行許多其他操作。 還可以用不同的擴展名導出和保存文件。

通過 IronXL 直觀的 C# API,您可以在 .NET 環境中輕鬆地讀取、修改和創建 Excel 電子表格文件。 它提供對 .NET Core、.NET Framework、Xamarin、移動設備、Linux、macOS 和 Azure 的全面支持。

IronXL 可以像 Microsoft Excel 一樣執行計算,並支持多種列數據格式,如文本、整數、公式、日期、貨幣和百分比。

欲了解更多信息,請點擊IronXL 網站

在 Visual Studio 中創建新專案

在使用 IronXL 框架之前,必須在 Visual Studio 中創建一個 .NET 項目。 任何版本的 Visual Studio 都可行; 然而,建議使用最新版本。 您可以根據需要創建各種項目模板或類似 Windows 窗體的應用程序。 本教程將使用 Windows 窗體應用來簡化事務。

如何在 C# 中將 Excel 轉換為 Datagridview,圖1:在 Visual Studio 中創建新項目

在 Visual Studio 中創建新項目

選擇您的項目模板後,提供項目的名稱和位置。

如何在 C# 中將 Excel 轉換為 Datagridview,圖2:配置項目

配置項目

接下來,選擇以下結構。 此項目將使用 .NET Framework 4.7。

如何在 C# 中將 Excel 轉換為 Datagridview,圖3:.NET Framework 選擇

.NET 框架選擇

生成項目文件後,您可以在設計器視圖中打開 Form1.cs 文件以插入程序代碼、設計界面並構建/運行程序。 然後,您將需要下載解決方案所需的 IronXL 庫。 您可以使用以下命令在包管理器中下載包:

Install-Package IronXL.Excel

如何在 C# 中將 Excel 轉換為 Datagridview,圖4:在包管理器控制台中安裝 IronXL 包

在包管理器控制台中安裝 IronXL 包

或者,您可以使用 NuGet 包管理器搜索並下載 "IronXL" 包。 NuGet 包管理器提供了一種方便的方式來管理項目中的依賴項。

如何在 C# 中將 Excel 轉換為 Datagridview,圖5:在 NuGet 包管理器 UI 中搜索並安裝 IronXL 包

在 NuGet 包管理器 UI 中搜索並安裝 IronXL 包

對於此表單,在表單上放置一個 DataGridView 控件,以將所需的 Excel 文件加載到 DataGridView 控件中。

從 Excel 文件加載數據

IronXL 是一個強大的 Excel 庫,使您只需幾行代碼即可讀取 Excel 文件。 下面是一個示例代碼片段,展示如何將 Excel 數據導入到 DataGridView

using System;
using System.Windows.Forms;
using IronXL;

namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string importFilePath = string.Empty;

            openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
            DialogResult result = openFileDialog1.ShowDialog();

            // Check if the user selected a file
            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            // Proceed if the file path is not empty
            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                WorkBook excelDoc = WorkBook.Load(importFilePath);

                // Convert the first sheet to a DataTable
                var dataTable = excelDoc.WorkSheets[0].ToDataTable();

                // Set the DataSource of dataGridView1 to the DataTable
                dataGridView1.DataSource = dataTable;
            }
        }
    }
}
using System;
using System.Windows.Forms;
using IronXL;

namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string importFilePath = string.Empty;

            openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
            DialogResult result = openFileDialog1.ShowDialog();

            // Check if the user selected a file
            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            // Proceed if the file path is not empty
            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                WorkBook excelDoc = WorkBook.Load(importFilePath);

                // Convert the first sheet to a DataTable
                var dataTable = excelDoc.WorkSheets[0].ToDataTable();

                // Set the DataSource of dataGridView1 to the DataTable
                dataGridView1.DataSource = dataTable;
            }
        }
    }
}
Imports System
Imports System.Windows.Forms
Imports IronXL

Namespace DataTableWindowsForm
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
			Dim importFilePath As String = String.Empty

			openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
			Dim result As DialogResult = openFileDialog1.ShowDialog()

			' Check if the user selected a file
			If result = System.Windows.Forms.DialogResult.OK Then
				importFilePath = openFileDialog1.FileName
			End If

			' Proceed if the file path is not empty
			If Not String.IsNullOrEmpty(importFilePath) Then
				' Load the Excel document
				Dim excelDoc As WorkBook = WorkBook.Load(importFilePath)

				' Convert the first sheet to a DataTable
				Dim dataTable = excelDoc.WorkSheets(0).ToDataTable()

				' Set the DataSource of dataGridView1 to the DataTable
				dataGridView1.DataSource = dataTable
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

上述代碼從 Excel 導入數據。 為了提供更多背景信息,假設我們正在設計一個帶有 DataGridView 控件和按鈕的 Windows 窗體應用程序。 該按鈕將打開一個對話框以從特定位址瀏覽 Excel 文件。 添加了自定義代碼以篩選並僅顯示具有特定擴展名的有限數量文件。

如何在 C# 中將 Excel 轉換為 Datagridview,圖6:打開對話框以選擇 Excel 文件

打開對話框以選擇 Excel 文件

然後,使用 Load 方法從 Excel 文件中加載數據。此方法允許從各種來源(如文件名、字節或流)中加載數據。 如果 Excel 文件受密碼保護,您還可以作為參數傳遞密碼。

一旦 Excel 詳細信息加載到 IronXL 對象中,ToDataTable 方法將被用來將 Excel 表單數據轉換為 DataTable。 Excel 文件中的每張表都會被轉換為一個獨立的表。

然後,從數據集中加載所需的表到 DataGridView。 要做到這一點,將 DataGridViewDataSource 屬性設置為從 IronXL 創建的新 DataTable 對象。 這一步允許將 Excel 文件中的數據填充到 DataGridView

如何在 C# 中將 Excel 轉換為 Datagridview,圖7:顯示 Excel 文件中的數據

顯示 Excel 文件中的數據

此外,您可能需要配置 DataGridView 以便根據具體需求正確顯示標題和第一行數據。

有關使用 IronXL 的更多教程,請點擊此操作指南

結論

IronXL 是一個非常受歡迎的 Excel 工具,不依賴於外部庫。 它是一個獨立的解決方案,不需要安裝 Microsoft Excel。 它與多種平台兼容。

使用 IronXL,您可以通過編程方式完成與 Microsoft Excel 文檔相關的廣泛操作。 您可以執行如排序字符串或數字,裁剪和添加數據,查找和替換值,合併和取消合併單元格,保存文件等任務。 它還允許您驗證電子表格數據和定義單元格數據類型。 此外,IronXL 支持讀取和寫入 CSV 文件

IronXL 可供不同的許可選項購買。 客戶還可以選擇支付年度會費以獲取更新和產品支持。 收取額外費用後,IronXL 提供不限量的重新分發權利。 要獲得更詳細的定價信息,您可以訪問許可頁面

常見問題解答

如何在C#中不用Interop顯示Excel數據在DataGridView中?

您可以使用IronXL讀取Excel數據,通過將Excel頁面轉換為DataTable並設置為DataGridView的DataSource來顯示數據。

使用IronXL進行C#中的Excel操作有什麼好處?

IronXL提供了一個獨立的Excel操作解決方案,不需要Microsoft Excel或Office Interop。它支持多個平台和格式,使其對於不同的C#應用具有通用性。

如何在Visual Studio項目中安裝IronXL以處理Excel?

在套件管理器控制台中運行Install-Package IronXL.Excel或使用Visual Studio中的NuGet套件管理器UI安裝IronXL。

IronXL是否支持讀取和寫入不同的Excel文件格式?

是的,IronXL支持包括XLSX、XLS、CSV和TSV在內的多種Excel文件格式的讀取和寫入。

IronXL可以用於跨平台應用嗎?

是的,IronXL兼容.NET Core、.NET Framework、Xamarin和其他平台,適合用於跨平台應用程序。

使用IronXL將Excel數據轉換為DataTable的過程是什麼?

使用IronXL將Excel數據轉換為DataTable的過程是將Excel文件讀入WorkBook對象,訪問所需的工作表,並使用IronXL的各種方法來提取數據到DataTable中。

IronXL是C#中Excel數據操作的價格效益解決方案嗎?

IronXL提供靈活的許可選項,包括年度會員資格和再分發權,使其成為C#中Excel數據操作的價格效益解決方案。

IronXL可以對Excel文件執行什麼操作?

IronXL可以執行多種操作,例如讀取、寫入、排序、修剪和合並儲存格,以及處理計算和格式設置,類似於Microsoft Excel。

IronXL如何處理用戶界面的Excel數據?

IronXL可以從多種來源加載Excel數據並將其轉換為DataTable,從而實現與用戶界面(如Windows Forms應用中的DataGridView)的順利整合。

在哪能找到更多關於使用IronXL進行Excel操作的資源?

更多關於使用IronXL的教程和資源可以在IronXL網站找到,其中包括實操指南和詳細的文檔。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。