使用IRONXL

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

發佈 2024年1月4日
分享:

簡介

微軟 Excel 是一款由 Microsoft 開發的強大試算表程式。它是一個廣泛用於數據組織、分析和視覺化的工具。它是 Microsoft Office 套件的一部分。由於其多種功能,Excel 是一個多功能的工具,適用於專業人士、個人、組織和大學。

Excel 被廣泛應用於各種部門,包括財務、會計、商業分析、數據分析、研究、教育等。由於其多功能性和廣泛的功能集,它是安排、評估和呈現數據的首選工具,無論在個人還是專業情況下。在本文中,我們將在沒有 OLEDB 連接的情況下將 Excel 轉換為 C# 數據表。

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

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

  2. 安裝所需的庫。

  3. 將 Excel 文件加載到對象中。

  4. 使用特定的方法將 Excel 表數據轉換為 datatable

  5. 根據需要使用該 datatable。

IronXL Library

處理 .NET 程式中的 Excel 文件的替代 Microsoft Interop 的方法是 IronXL在使用 Microsoft Interop 需要透過 Interop 程式集來連接 Excel 的情況下,IronXL 提供了一種更簡單、更高效且更強大的方式來以程式設計方式操作 .NET 環境中的 Excel 文件。

以下是使用 IronXL 的一些優勢:

  • 效能和資源經濟: IronXL 在效能和資源效率方面優於 Microsoft Interop,因為它無需依賴安裝在 PC 上的 Excel 程式。
  • 可讀性和簡單性: IronXL 提供了一個簡單的 API,使得讀取、寫入和操作 Excel 文件變得更容易,沒有 Microsoft Interop 的缺點。
  • 相容性和依賴性: IronXL 不需要在 PC 上安裝 Microsoft Excel,消除了不同 Office 或 Excel 版本的依賴性和潛在相容性問題。
  • 平台獨立性: 雖然 Microsoft Interop 更接近於某些 Microsoft Office 版本,但 IronXL 提供了在更廣泛的設置和平台中更靈活和簡單的部署。

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

在選擇這些解決方案時,請記住您的應用程式需求。如需進一步了解 IronXL 程式庫,請點擊此處 網站.

在 Visual Studio 中建立新專案

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

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

選擇檔案位置後,在相應的文字區域中輸入專案名稱。接下來,點擊創建按鈕並選擇必要的 .NET 框架,如下圖所示。

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

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

如何在 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#

從上面的代碼中,我們使用視窗表單來載入 Excel 文件並將它們轉換成新的資料集,然後我們將它們載入到視窗表單的資料網格中。在上面的代碼中,首先我們使用開啟文件對話框控制器從文件系統中載入 xls 文件。

然後,借助 IronXL 的工作簿和 Loadexcel 文件方法,我們將檔案名作為參數傳入,這些參數可以從開啟文件對話框控制器中獲得。這幫助我們將 Excel 文件導入到工作簿對象中。 然後我們可以使用索引值或 Excel 表格名稱來選擇 Excel 工作表。借助可用的方法 ToDataTable,我們可以輕鬆地將 Excel 文件數據轉換為新的 DataTable。

將 Excel 文件轉換為 DataTable 後,我們將它們載入到視窗表單中可用的資料網格控制器中。從下面,我們有一個表單和按鈕來載入 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 產品的信息,請參見 這裡.

< 上一頁
無需 Office 的 C# Excel 庫(初學者教程)
下一個 >
如何在 C# 結合或合併 Excel 文件 Combine XLS

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

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