使用IRONXL

如何在 C# 中不使用 oledb 將 Excel 轉換為 Datatable

發佈 2024年1月4日
分享:

介紹

微軟 Excel是一款由 Microsoft 開發的穩健的電子表格程式。 這是一種廣泛使用的工具,用於資料整理、分析和視覺化。 它是微軟 Office 套件的一部分。 由於其多種功能,Excel 是一個多用途的工具,可供專業人士、個人、組織和大學使用。

Excel 廣泛應用於各個行業,涵蓋金融、會計、商業分析、數據分析、研究、教育等領域。 由於其多功能性和豐富的功能集,它是安排、評估和展示數據的首選工具,適用於個人和專業場景。 在本文中,我們將在沒有 OLEDB 連接的情況下,使用 C# 將 Excel 轉換為 DataTable。

如何在 C# 中不使用 OLEDB 將 Excel 轉換為 Datatable

  1. 創建一個新的 Visual Studio 專案

  2. 安裝所需的庫。

  3. 將 Excel 文件載入物件。

  4. 使用特定的方法將 Excel 工作表數據轉換為資料表。

  5. 並根據需要使用資料表。

IronXL 函式庫

在 .NET 程式中處理 Excel 檔案的 Microsoft Interop 替代方案是IronXL. 雖然 Microsoft Interop 需要使用 Interop 程式集來與 Excel 連接,但 IronXL 提供了一種更簡單、更高效且更強大的方式,以程式的方式在 .NET 環境中操作 Excel 文件。

使用IronXL的優勢如下:

  • 性能和資源經濟性: IronXL 在性能和資源效率方面優於 Microsoft Interop,因為它不依賴於在 PC 上安裝 Excel 程式。
  • 可讀性和簡單性:IronXL 提供了一個更簡單的 API,使讀取、寫入和操作 Excel 文件更加容易,沒有微軟互操作的缺點。
  • 相容性和相依性: IronXL 解除了與不同 Office 或 Excel 版本的相依性及潛在的相容性問題,因為不需要在電腦上安裝 Microsoft Excel。
  • 平台獨立性:雖然Microsoft Interop與某些Microsoft Office版本有更緊密的連結,IronXL在更廣泛的環境和平台中提供了更多的靈活性和簡單性。

    由於IronXL更快、更易於使用,且需要安裝的第三方軟體更少,它對於需要以程式化方式處理Excel檔案的.NET開發人員來說通常是更理想的選擇。 然而,像專案的具體情況、現有的基礎設施以及使用者對每個庫的熟悉程度等因素,可能會影響他們在 IronXL 和 Microsoft Interop 之間的選擇。

    在選擇這些解決方案時,隨時記住您應用程式的需求。 如需有關 IronXL 程式庫的更多資訊,請點擊此處網站.

在 Visual Studio 中建立新專案

若要打開 Visual Studio 程式,請從檔案選單中點擊檔案。 選擇「新專案」後,選擇「Windows 表單應用程式」。

如何在 C# 中無需使用 oledb 將 Excel 轉換為 Datatable:圖 1

選擇檔案位置後,在適當的文字區域輸入專案名稱。 接下來,點擊「Create」按鈕並選擇所需的 .NET Framework,如下範例所示。

如何在沒有 oledb 的情況下將 Excel 轉換為 C# 中的 Datatable:圖 2

所選擇的應用程式將決定 Visual Studio 專案的結構。 要添加程式碼,您可以進入 program.cs 文件,並使用控制台、Windows 或 web 應用程式構建或運行應用程式。

如何在 C# 中不使用 oledb 將 Excel 轉換為 Datatable:圖 3

接下來,可以添加庫並測試代碼。

安裝 IronXL 函式庫

安裝 IronXL 函式庫,因為這是下一個補丁所需的。 最後,啟動 NuGet 套件管理器主控台並輸入以下命令以完成此操作:

Install-Package IronXL.Excel

如何在 C# 中將 Excel 轉換為 DataTable 而不使用 oledb:圖 4

或者,您可以使用 NuGet 套件管理器搜尋套件「IronXL」。 我們可以從這個與IronXL相關的所有NuGet套件列表中選擇需要下載的套件。

如何在 C# 中無需 oledb 將 Excel 轉換為 Datatable:圖 5

將 Excel 文件轉換為數據表

在安裝套件後,可以使用以下程式碼讀取 Excel 文件並將其轉換為 DataTable。

using IronXL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// In Export data method pass the file path as parameter
        /// </summary>
        /// <param name="filname"></param>
        private void ExportData(string filname)
        {
            string ImportFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
            DialogResult Result = openFileDialog1.ShowDialog();
            if (Result == DialogResult.OK)
            {
                ImportFilePath = openFileDialog1.FileName;
            }
            if (ImportFilePath != string.Empty)
            {
                var exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath);
                var worksheet = exceldoc.WorkSheets [0];
                datatable dt = worksheet.ToDataTable();
                dataGridView1.DataSource = dt;
            }
        }
}
}
using IronXL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// In Export data method pass the file path as parameter
        /// </summary>
        /// <param name="filname"></param>
        private void ExportData(string filname)
        {
            string ImportFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
            DialogResult Result = openFileDialog1.ShowDialog();
            if (Result == DialogResult.OK)
            {
                ImportFilePath = openFileDialog1.FileName;
            }
            if (ImportFilePath != string.Empty)
            {
                var exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath);
                var worksheet = exceldoc.WorkSheets [0];
                datatable dt = worksheet.ToDataTable();
                dataGridView1.DataSource = dt;
            }
        }
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

從上述代碼中,我們使用 Windows 表單來加載 Excel 文件並將其轉換為新的數據集,然後將其加載到 Windows 表單的數據網格中。 在上述程式碼中,我們首先使用開啟檔案對話框控制器從檔案系統載入 xls 檔案。

然後,透過 IronXL 工作簿和 Loadexcel 文件方法,我們將檔案名稱作為參數傳遞,該檔案名稱可以從開啟文件對話框控制器中獲取。 它幫助我們將 Excel 文件匯入到工作簿物件中。 然後我們可以使用索引值或 Excel 工作表名稱來選擇 Excel 工作表。 藉助可用的方法ToDataTable,我們可以輕鬆將Excel文件資料轉換為新的資料表。

將 Excel 文件轉換成數據表後,我們將其加載到 Windows 表單中可用的數據網格控制器。 從下方,我們有一個表單和一個按鈕來載入 Excel 文件。

如何在不使用oledb的情況下在C#中將Excel轉換為Datatable:圖6

當使用者點擊「載入 Excel」按鈕時,會彈出一個對話框讓我們載入檔案。

如何在 C# 中不使用 oledb 將 Excel 轉換為数据表:圖 7

它將處理文件,將其轉換為新的資料表並載入到資料網格中。

如何在 C# 中不使用 oledb 將 Excel 轉換為 DataTable:圖 8

了解更多關於IronXL資料表的資訊,請參閱此連結這裡.

結論

IronXL 是最廣泛使用的 Excel 外掛之一。 它不依賴於任何額外的外部庫。 不需要安裝 Microsoft Excel,因為這是一個自包含的程式。 它使用不同的通道來運作。 相比之下,Interop 庫需要其他庫來解析文件以編輯 Word 文檔。

IronXL 是一個全面的解決方案,適用於使用 Microsoft Excel 文件的任何程式設計過程。 可能的操作包括計算、排序字串或數字、裁剪、增加、查找和替換、合併和取消合併,以及文件存儲。 可以建立和評估試算表資料,並且還可以創建新的單元格數據類型。 這能夠讓處理 Excel 資料及讀寫檔案變得更簡單。

IronXL 最初的定價為 $749。 作為替代方案,用戶可以透過支付一年的會員費來獲得軟體更新和支持。 IronXL 提供對非法重新分配的保護,但需支付費用。 點擊此處以體驗IronXL,享受一個免費試用詳細價格資訊。 如需有關 Iron Software 产品的更多資訊,請參閱這裡.

< 上一頁
在 C# 中不使用 Microsoft Office 處理 Excel 文件
下一個 >
如何在 C# 結合或合併 Excel 文件 Combine XLS

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,111,773 查看許可證 >