跳過到頁腳內容
使用 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 Forms 的應用程式。 本教學將使用 Windows 窗體應用程式來簡化操作。

如何在 C# 中將 Excel 轉換為 DataGridView,圖 1:在 Visual Studio 中建立一個新項目

在 Visual Studio 中建立一個新項目

選擇項目模板後,請提供項目名稱和地點。

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

配置專案

接下來,選擇以下結構。 本專案將使用 .NET Framework 4.7。

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

.NET Framework 選擇

產生專案文件後,您可以在設計器檢視中開啟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 Forms 應用程式。 該按鈕將開啟一個對話框,供使用者從指定位置瀏覽並尋找 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 實用程序,它不依賴外部程式庫。 這是一個獨立解決方案,無需安裝微軟Excel。 它兼容多種平台。

使用 IronXL,您可以以程式設計方式完成與 Microsoft Excel 文件相關的各種操作。 您可以執行諸如對字串或數字進行排序、修剪和添加資料、查找和替換值、合併和取消合併單元格、保存文件等任務。 它還允許您驗證電子表格資料並定義儲存格資料類型。 此外,IronXL 支援讀取和寫入 CSV 檔案

IronXL 提供多種授權許可方案供您購買。 客戶還可以選擇支付年度會員費,以獲得更新和產品支援。 IronXL 提供額外付費的無限再分送權。 如需更詳細的定價信息,您可以訪問許可頁面

常見問題解答

不使用 Interop,如何在 C# 的 DataGridView 中顯示 Excel 資料?

您可以使用 IronXL 來讀取 Excel 資料,並透過將 Excel 表單轉換為 DataTable 並將其設定為 DataGridView 的 DataSource,將其顯示在 DataGridView 中。

在 C# 中使用 IronXL.Excel 進行 Excel 操作有哪些優點?

IronXL.Excel 提供獨立的 Excel 作業解決方案,不需要 Microsoft Excel 或 Office Interop。它支援多種平台和格式,使其適用於不同的 C# 應用程式。

如何在 Visual Studio 專案中安裝 IronXL,以進行 Excel 處理?

透過在套件管理員控制台執行 Install-Package IronXL.Excel 或使用 Visual Studio 中的 NuGet 套件管理員使用者介面來安裝 IronXL。

IronXL 是否支援讀寫不同的 Excel 檔案格式?

是的,IronXL.Excel 支援讀寫各種 Excel 檔案格式,包括 XLSX、XLS、CSV 和 TSV。

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

是的,IronXL 與 .NET Core、.NET Framework、Xamarin 及其他平台相容,因此適用於跨平台應用程式。

使用 IronXL.Excel 將 Excel 資料轉換成 DataTable 的流程為何?

若要使用 IronXL 將 Excel 資料轉換成 DataTable,請將 Excel 檔案讀入 WorkBook 物件,存取所需的工作表,並使用 IronXL.Excel 的方法將資料擷取成 DataTable。

IronXL 是用 C# 來處理 Excel 資料的高性價比解決方案嗎?

IronXL 提供彈性的授權選項,包括年度會員和再發行權,使其成為 C# 中 Excel 資料處理的經濟有效解決方案。

IronXL 可以對 Excel 檔案執行哪些操作?

IronXL.Excel 可以執行各種操作,例如讀取、寫入、排序、修剪和合併儲存格,以及處理類似 Microsoft Excel 的計算和格式化。

IronXL.Excel 如何處理使用者介面的 Excel 資料?

IronXL.Excel 可從各種來源載入 Excel 資料,並將其轉換為 DataTable,方便 Windows Forms 應用程式中 DataGridView 等使用者介面的無縫整合。

我在哪裡可以找到更多關於使用 IronXL 進行 Excel 作業的資源?

您可以在 IronXL 網站上找到更多使用 IronXL 的教學和資源,包括操作指南和詳細說明文件。

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