跳過到頁腳內容
使用 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;
            }
        }
    }
}
$vbLabelText   $csharpLabel

以上程式碼從 Excel 匯入資料。 為了提供更多背景信息,假設我們正在設計一個 Windows Forms 應用程序,其中包含一個 DataGridView 控制項和一個按鈕。 該按鈕將開啟一個對話框,供使用者從指定位置瀏覽並尋找 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提供額外付費的無限制再分送權。 如需更詳細的定價信息,您可以訪問許可頁面

常見問題解答

如何在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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我