跳過到頁腳內容
使用 IRONXL
如何在 C# | IronXL.Excel 中讀取 Excel 資料並將其插入到資料庫表中

使用 C# 讀取 Excel 數據並插入數據庫

本文將探討如何使用 IronXL(一個 C# Excel 庫)從 Excel 檔案讀取資料並將其插入資料庫表中。

1. IronXL

IronXL 是一個功能強大的軟體庫,專為 .NET 開發人員設計,為他們提供易於使用的 API,以便在 .NET 應用程式中讀取、寫入和操作 Excel 檔案。 它提供了一套全面的功能,用於建立、編輯和匯出 Excel 電子表格,而無需在目標電腦上安裝 Microsoft Office 或 Excel。該程式庫支援多種檔案格式,包括 XLS、XLSX、CSV、TSV 等,可讓開發人員輕鬆建立可部署到任何位置的基於 Excel 的應用程式。 IronXL 還提供圖表建立、資料視覺化和資料分析等進階功能,以簡化從小到大專案的開發流程。

2. 先決條件

在使用 IronXL 庫從 Excel 檔案寫入資料庫之前,必須滿足某些先決條件。 這些工具包括

  • 您的電腦上已安裝 Visual Studio,以便建立 C# 專案。
  • 在建立 C# 專案之前,請確保您的系統上已安裝 ASP.NET。
  • 在您的系統上安裝 IronXL 庫以匯出資料。 您可以透過從 Visual Studio 中的 NuGet 套件管理器下載 IronXL NuGet 套件來取得它。
  • 在 Visual Studio 中安裝 SQL。

3.在 Visual Studio 中建立新專案

在使用 IronXL 程式庫執行與 Excel 相關的操作之前,您需要在 Visual Studio 中建立一個 .NET 專案。 雖然任何版本的 Visual Studio 都相容,但建議使用最新版本。 您可以根據專案需求,從各種專案範本中進行選擇,例如 Windows Forms 和 ASP.NET。 本教學建議使用控制台應用程式專案範本來示範如何使用 IronXL。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 1:建立新專案窗口 建立一個新項目

選擇項目類型後,需要為項目命名並選擇其位置。 您也可以為專案指定首選框架,例如 .NET Core 6。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 2:專案配置 專案配置

建立新專案後,您可以存取 program.cs 文件,在其中編寫程式碼並執行應用程式。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 3:已開啟程式碼的項目 專案代碼已打開

現在 Visual Studio 專案已經建立完成,讓我們安裝 IronXL。

4. 安裝 IronXL

IronXL 庫可以透過多種方式下載和安裝,但本文將介紹兩種最簡單的方法:

  • 在 Visual Studio 中使用 NuGet 套件。
  • 使用 Visual Studio Command-Line。

4.1 使用 Visual Studio

要安裝 IronXL 庫,第一種方法是在 Visual Studio 中使用 NuGet 套件管理器。 只需開啟 NuGet 套件管理器,然後在"瀏覽"標籤中搜尋 IronXL 即可。 在搜尋結果中找到 IronXL 後,選擇它並繼續進行安裝。 安裝完成後,您就可以在專案中使用 IronXL 庫了。

以下螢幕截圖顯示如何在 Visual Studio 中開啟 NuGet 套件管理器。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 4:NuGet 套件管理器 NuGet 套件管理器

以下截圖顯示了搜尋結果中的 IronXL:

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 5:IronXL 搜尋結果 IronXL 搜尋結果

4.2 使用 Visual Studio 命令列。

許多開發者喜歡使用命令列介面安裝軟體包。 若要使用命令列安裝 IronXL,請依照下列步驟操作:

  • 在 Visual Studio 中,前往"工具" > "NuGet 套件管理器" > "套件管理器控制台"
  • 在程式包管理器控制台標籤中輸入以下代碼:

    Install-Package IronXL
    Install-Package IronXL
    SHELL

該軟體包將被下載並安裝到當前專案中。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 6:透過命令列安裝 透過命令列安裝

5. 安裝並設定 SQL Server 資料庫

要將 SQL Server 資料庫表安裝並整合到您的 C# 專案中,首先,請前往 NuGet 套件管理器,搜尋System.Data.SqlClient ,然後安裝它。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表?圖 7:在 NuGet 套件管理器 UI 中搜尋並安裝 SqlClient 在 NuGet 套件管理器 UI 中搜尋並安裝 SqlClient。

安裝完成後,轉到項目選單並點擊"新增項目"。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 8:新增項 新增項目

將出現一個新視窗。 從側邊選單中選擇數據,然後從清單中按一下"基於服務的資料庫"。為資料庫輸入一個合適的名稱,然後按一下"新增"按鈕。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 9:選擇基於服務的資料庫 選擇基於服務的資料庫

然後,在解決方案資源管理器中,以滑鼠右鍵按一下新建的資料庫,然後選擇"開啟"。 這將打開一個新的側邊欄。

圖 10:如何在 C# 中讀取 Excel 資料並將其插入資料庫表:右鍵單擊並選擇"開啟" 右鍵單擊並選擇"打開"

在新側邊欄中,點擊您的資料庫並轉到其屬性。 從那裡複製連接字串。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 11:右鍵單擊並選擇"屬性" 右鍵單擊並選擇"屬性"

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 12:處理連接字串 處理連接字串

複製連線首選項後,按一下資料庫實例以開啟新清單。右鍵單擊表格資料夾,然後選擇"新增資料表"。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 13:新增表 新增表格

若要在資料庫中建立新表,請依照下列步驟操作:

  1. 開啟一個新的資料表設計頁面。
  2. 新增下列 SQL 查詢,這將建立一個包含三列的新資料表: IdNameNumber
  3. 點選頁面頂部的"更新"按鈕。
  4. 新產生的表格將會被加入資料庫。
CREATE TABLE [dbo].[Table]
(
  [Id] INT NOT NULL PRIMARY KEY,
  [Name] VARCHAR(100) NOT NULL,
  [Number] INT
)

SQL 環境已經建立完畢,讓我們建立一些範例數據,用 Excel 資料填入這個資料庫。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 14:Excel 檔案數據 Excel 檔案數據

6. 使用 IronXL 匯入 Excel 檔案資料並匯出到資料庫

借助 IronXL,開發人員可以自動執行在 Excel 檔案和資料庫之間傳輸資料的過程,從而節省大量時間和精力。 透過使用 IronXL,開發人員可以簡化工作流程,消除手動資料輸入的需要,從而確保資料的準確性和時效性。

SQL 伺服器設定完畢並複製連接字串後,只需將連接字串貼到下面的程式碼中,將 Excel 檔案與程式碼鏈接,並根據需要更改 SQL 查詢即可。 然後只需執行程式碼,資料就會匯出到資料庫表中。

using IronXL; // Import the IronXL library
using System.Data; // Import data handling library
using System.Data.SqlClient; // Import SQL Client library for SQL database operations

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("book.xlsx");

// Convert the workbook into a DataSet
DataSet dataSet = workBook.ToDataSet();

// Define the SQL query to select data from the table
string sql = "SELECT * FROM [dbo].[Table]";

// Connection string for the SQL Server
string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\BUTTW\SOURCE\REPOS\CREATE PDF\CREATE PDF\DATABASE1.MDF;Integrated Security=True"; 

// Open a connection to the SQL Server using the connection string
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open(); // Open connection
    // Use SqlDataAdapter to update SQL table with DataSet from Excel file
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    adapter.Update(dataSet);
}
using IronXL; // Import the IronXL library
using System.Data; // Import data handling library
using System.Data.SqlClient; // Import SQL Client library for SQL database operations

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("book.xlsx");

// Convert the workbook into a DataSet
DataSet dataSet = workBook.ToDataSet();

// Define the SQL query to select data from the table
string sql = "SELECT * FROM [dbo].[Table]";

// Connection string for the SQL Server
string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\BUTTW\SOURCE\REPOS\CREATE PDF\CREATE PDF\DATABASE1.MDF;Integrated Security=True"; 

// Open a connection to the SQL Server using the connection string
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open(); // Open connection
    // Use SqlDataAdapter to update SQL table with DataSet from Excel file
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    adapter.Update(dataSet);
}
Imports IronXL ' Import the IronXL library
Imports System.Data ' Import data handling library
Imports System.Data.SqlClient ' Import SQL Client library for SQL database operations

' Load the Excel workbook
Private workBook As WorkBook = WorkBook.Load("book.xlsx")

' Convert the workbook into a DataSet
Private dataSet As DataSet = workBook.ToDataSet()

' Define the SQL query to select data from the table
Private sql As String = "SELECT * FROM [dbo].[Table]"

' Connection string for the SQL Server
Private connectionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\USERS\BUTTW\SOURCE\REPOS\CREATE PDF\CREATE PDF\DATABASE1.MDF;Integrated Security=True"

' Open a connection to the SQL Server using the connection string
Using connection As New SqlConnection(connectionString)
	connection.Open() ' Open connection
	' Use SqlDataAdapter to update SQL table with DataSet from Excel file
	Dim adapter As New SqlDataAdapter(sql, connection)
	adapter.Update(dataSet)
End Using
$vbLabelText   $csharpLabel

若要檢查資料是否已成功匯出至資料庫,請再次右鍵點選表格目錄,然後按一下"新查詢"。此時將開啟一個新頁面,從頂部欄選擇您的資料庫,然後執行對應的 SQL 查詢以擷取資料。

SELECT * FROM [dbo].[Table]

按下綠色按鈕,結果將在一秒鐘內顯示。

如何在 C# 中讀取 Excel 資料並將其插入資料庫表,圖 15:資料庫數據 資料庫資料

以下是如何將從 Microsoft Excel 檔案匯入的資料寫入資料庫的方法。

7.結論

在許多應用程式中,使用 Excel 電子表格是一項常見任務,將 Excel 表格中的資料插入資料庫表格可以簡化資料管理流程。 在 C# 中實現此任務的一種方法是使用允許讀取和操作 Excel 檔案的庫,例如 IronXL。 利用該程式庫,開發人員可以輕鬆地從 Excel 表格中提取資料並將其插入資料庫表,從而簡化資料管理流程並減少出錯的幾率。 本文介紹了使用 IronXL 庫將 Excel 檔案中的資料新增至 SQL Server 資料庫中的 SQL Server 表中的步驟。 它還簡要介紹了 IronXL 庫,討論了插入資料所需的先決條件,並描述如何在 Visual Studio 中建立一個新專案、安裝IronXL以及配置 SQL Server 資料庫。 請造訪以下教程,學習如何在 C# 中讀取 Excel 檔案

此外,IronXL 還提供高級功能,包括支援單元格格式設置,例如文字對齊、字體大小、顏色凍結面板新增公式應用條件格式以及使用密碼加密

用戶還可以從Iron Suite中受益,Iron Suite 是一套軟體開發工具,包括 IronPDF、IronOCR、IronXL、IronBarcode 和 IronWebscraper。

常見問題解答

如何使用 C# 從 Excel 檔案讀取資料?

您可以使用 IronXL 從 C# 中的 Excel 檔案讀取資料。IronXL.Excel 提供開啟和讀取 Excel 檔案的方法,讓您可以程式化的方式存取和處理資料。

在 C# 中將 Excel 資料插入 SQL 資料庫的步驟為何?

若要使用 C# 將 Excel 資料插入 SQL 資料庫,請先使用 IronXL 讀取資料,並將其轉換為 DataSet。然後,使用 SqlDataAdapter 更新 SQL 資料庫表與 DataSet。

如何建立一個新的資料庫表來匯入 Excel 資料?

您可以執行類似 CREATE TABLE [dbo].[Table] ( [Id] INT NOT NULL PRIMARY KEY, [Name] VARCHAR(100) NOT NULL, [Number] INT ) 的 SQL 查詢來建立新的資料庫表,以定義表結構。

在 C# 專案中使用 IronXL 的先決條件是什麼?

先決條件包括安裝 Visual Studio、從 NuGet Package Manager 取得 IronXL 函式庫,以及在 Visual Studio 環境中設定 SQL Server。

如何驗證 Excel 資料已成功插入資料庫?

您可以執行 SQL 查詢,例如 SELECT * FROM [dbo].[Table],以取得並檢閱 SQL Server 資料庫中的資料項目,藉此驗證資料的插入。

IronXL 提供哪些進階功能?

IronXL 提供先進的功能,例如圖表建立、資料可視化、單元格格式化、凍結面板、新增公式、條件格式化,以及使用密碼加密。

如何在我的 Visual Studio 專案中安裝 IronXL?

您可以在 Visual Studio 專案中安裝 IronXL,方法是使用 NuGet 套件管理員搜尋並安裝 IronXL,或在 Visual Studio Command-Line 中執行 Install-Package IronXL

為什麼要使用 IronXL 進行 Excel 和 SQL 資料庫之間的資料傳輸?

IronXL.Excel 與 SQL 資料庫之間的資料傳輸使用 IronXL,可將流程自動化,確保資料的正確性,並在維持最新資訊的同時節省時間。

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