
如何在 C# 中不使用 oledb 將 Excel 轉換為 DataTable
Microsoft Excel 是由Microsoft建立的強大試算表程式。 它是一個廣泛使用的工具,用於資料組織、分析和視覺化。 它是Microsoft Office套件的一部分。 由於其各種特性,Excel 是一個多功能的工具,可以由專業人士、個人、組織和大學使用。
Excel在包括金融、會計、商業分析、資料分析、研究、教育等各種行業中被廣泛使用。 由於其多功能性和豐富的功能集,它是組織、評估和呈現資料的首選工具,無論是個人還是專業環境。 在本文中,我們將在C#中將Excel轉換為DataTable,不需要OLEDB連接。
如何在C#中不使用OLEDB將Excel轉換為DataTable
- 建立一個新的Visual Studio專案。
- 安裝所需的程式庫。
- 將Excel文件載入到物件中。
- 使用特定方法將Excel頁面資料轉換為DataTable。
- 根據需要使用DataTable。
IronXL程式庫
在.NET程式中處理Excel文件的另一個選擇是IronXL。 雖然Microsoft Interop需要使用Interop組件來與Excel連接,但IronXL提供了一種更簡單、更高效且更強大的方式來在.NET環境中以程式方式操作Excel文件。
以下是使用IronXL的一些優點:
- 效能和資源經濟: IronXL在效能和資源效耗方面優於Microsoft Interop,因為它不依賴於電腦上安裝的Excel程式。
- 可讀性和簡單性: IronXL提供了一個更簡單的API,使得讀取、寫入和操作Excel文件更容易,沒有Microsoft Interop的缺點。
- 相容性和依賴性: IronXL透過不需要在電腦上安裝Microsoft Excel,消除了不同Office或Excel版本的依賴和潛在的相容性問題。
- 平台獨立性: 雖然Microsoft Interop與某些Microsoft Office版本更緊密相連,但IronXL在更廣泛的設置和平台中提供了更多的靈活性和部署的簡便性。
由於IronXL更快、更易於使用且需要安裝更少的第三方軟體,因此對於需要以程式方式處理Excel文件的.NET開發者來說,它是經常的首選。 然而,專案的具體情況、既有基礎設施和使用者對每個程式庫的熟悉程度等因素可能會影響其選擇。
選擇這些解決方案時,始終要考慮應用程式的需求。 如需有關IronXL程式庫的更多資訊,請存取此網站。
在Visual Studio中建立新專案
要打開Visual Studio,請從選單中點擊File並選擇"New Project"。然後,選擇"Windows Forms Application"。

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

選擇的應用程式型別將決定Visual Studio專案的結構。 要新增程式碼,您可以進入Program.cs文件,並使用控制台、Windows或網頁應用程式建構或運行應用程式。

接下來,新增必要的程式庫並測試程式碼。
安裝IronXL程式庫
要安裝IronXL程式庫,請打開NuGet套件管理器控制台並輸入以下命令:

或者,您可以使用NuGet套件管理器搜索"IronXL"套件。這將顯示與IronXL相關的NuGet套件列表,您可以從中選擇所需的套件。

將Excel文件轉換為資料表
以下程式碼展示了如何在安裝套件後讀取Excel文件並將其轉換為DataTable。
// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Exports data from an Excel file specified by the user through a file dialog.
/// </summary>
/// <param name="filename">The name of the file to export data from.</param>
private void ExportData(string filename)
{
string importFilePath = string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
importFilePath = openFileDialog1.FileName;
}
if (!string.IsNullOrEmpty(importFilePath))
{
// Load the Excel document
var excelDoc = WorkBook.Load(importFilePath);
// Select the first worksheet
var worksheet = excelDoc.WorkSheets[0];
// Convert worksheet to a DataTable
DataTable dt = worksheet.ToDataTable();
// Bind DataTable to the DataGridView
dataGridView1.DataSource = dt;
}
}
}
}' Necessary namespaces for IronXL and application namespaces
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms
Namespace DataTableWindowsForm
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
''' <summary>
''' Exports data from an Excel file specified by the user through a file dialog.
''' </summary>
''' <param name="filename">The name of the file to export data from.</param>
Private Sub ExportData(ByVal filename As String)
Dim importFilePath As String = String.Empty
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
Dim result As DialogResult = openFileDialog1.ShowDialog()
If result = System.Windows.Forms.DialogResult.OK Then
importFilePath = openFileDialog1.FileName
End If
If Not String.IsNullOrEmpty(importFilePath) Then
' Load the Excel document
Dim excelDoc = WorkBook.Load(importFilePath)
' Select the first worksheet
Dim worksheet = excelDoc.WorkSheets(0)
' Convert worksheet to a DataTable
Dim dt As DataTable = worksheet.ToDataTable()
' Bind DataTable to the DataGridView
dataGridView1.DataSource = dt
End If
End Sub
End Class
End Namespace在上面的程式碼中:
- Windows窗體載入Excel文件並將其轉換為一個新的DataTable。
- 它使用一個打開文件對話框讓使用者選擇一個Excel文件。
- 使用IronXL的
WorkBook.Load()方法將Excel文件載入到Workbook物件中。 - 使用索引或名稱選擇第一個工作表。
- 使用
ToDataTable方法將工作表資料轉換為DataTable。 - 填充的DataTable被設置為Windows窗體中DataGridView控制項的資料源。
在底部,一個窗體和一個按鈕將Excel文件載入到應用程式中。

當使用者點擊"Load Excel"按鈕時,它將提示一個對話框,允許使用者選擇文件。

然後它會處理選擇的文件,將其轉換為DataTable,並載入到DataGridView中。

了解更多關於使用IronXL與DataTables的資訊。
結論
IronXL是最常用的Excel插件之一,不依賴於任何額外的外部程式庫。 安裝Microsoft Excel是沒有必要的,因為它是一個獨立的程式。 它可以以多種方式操控Excel文件。 相較之下,Interop程式庫需要其他程式庫來解析文件和編輯Word文件。
IronXL為任何使用Microsoft Excel文件的程式過程提供了一個全面的解決方案,包括計算、排序、合併和文件儲存等操作。 它有助於更有效地處理Excel資料、讀取和寫入文件。
最初,IronXL的定價為$999。 使用者可以通過支付一年的會費來獲得軟體更新和支援。 IronXL還提供防止非法再分發的保護,需付費。 點擊這裡以免費試用IronXL的試用授權以獲得更詳細的定價資訊。 請存取Iron Software主頁以獲取有關其他Iron Software產品的更多資訊。

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
相關文章



