VB .NET 讀取與創建 Excel 檔案(程式碼範例教學)

查克尼思·賓
查克尼思·賓
2020年6月17日
已更新 2024年10月20日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English

開發人員需要一種流暢且簡單的方法來訪問 VB .NET Excel 文件。 在這個操作指南中,我們將使用IronXL來讀取VB dotnet Excel檔案並存取所有數據以用於我們的項目。 我們將學習如何建立各種格式的試算表(.xls.xlsx.csv.tsv),以及使用 VB.NET Excel 編程來設定儲存格樣式和插入數據。


第一步

1. 適用於 VB.NET 的 Excel 函式庫

使用DLL 下載NuGet獲取 IronXL Excel for VB.NET 庫。 IronXL 是我們在 VB.NET 項目中快速訪問 Excel 數據的第一步,也是我們將用於本教程的工具(開發免費)。

Install-Package IronXL.Excel

教學指南

2. 在 VB.NET 中創建 Excel 文件

IronXL 提供在 VB.NET 專案中建立 Excel (.xlsx 格式) 檔案的最簡單方法。 之後,我們可以插入數據並設置單元格屬性,如字體樣式或邊框。

2.1. 創建 Excel 文件

首先創建一個工作簿:

Dim wb As New WorkBook
Dim wb As New WorkBook
VB.NET

上述代碼用於建立一個新的 Excel 文件。預設情況下,其副檔名為 .xlsx

2.2. 創建 XLS 檔案

如果您想建立一個 .xls 擴展名的文件,您可以使用這段代碼。

Dim wb As New WorkBook(ExcelFileFormat.XLS)
Dim wb As New WorkBook(ExcelFileFormat.XLS)
VB.NET

2.3. 創建工作表

在創建WorkBook之後,可以按照以下方法創建Excel WorkSheet:

Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
VB.NET

上述程式碼將在活頁簿wb中創建名為sheet1的新工作表ws1

2.4. 建立多個工作表

可以以相同的方式創建任意數量的工作表:

Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
VB.NET

3. 將資料插入工作表

3.1 將資料插入單元格

現在我們可以輕鬆地將數據插入到WorkSheet單元中,如下所示:

 worksheet("CellAddress").Value = "MyValue"
 worksheet("CellAddress").Value = "MyValue"
VB.NET

例如,可以插入 ws1 工作表中的數據:

ws1("A1").Value = "Hello World"
ws1("A1").Value = "Hello World"
VB.NET

上述程式碼會在工作表ws1A1儲存格中寫入Hello World

3.2. 將資料插入範圍

也可以使用範圍功能將數據寫入多個單元格,如下所示:

ws1("A3:A8").Value = "NewValue"
ws1("A3:A8").Value = "NewValue"
VB.NET

上面的代碼將在工作表ws1中,將A3A8單元格的內容寫為NewValue

3.3. 創建和編輯工作表範例

我們將創建一個新的 Excel 文件Sample.xlsx,並在其中插入一些數據來展示我們上面學到的代碼。

/**
Create and Edit Excel
anchor-create-and-edit-worksheets-example
**/
Imports IronXL
Sub Main()
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ws1("B1:B8").Value = "RangeValue"
    wb.SaveAs("Sample.xlsx")
End Sub
/**
Create and Edit Excel
anchor-create-and-edit-worksheets-example
**/
Imports IronXL
Sub Main()
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ws1("B1:B8").Value = "RangeValue"
    wb.SaveAs("Sample.xlsx")
End Sub
VB.NET

注意:預設情況下,新的 Excel 文件將在專案的 bin>Debug 資料夾中建立。如果我們想在自訂路徑中建立新的檔案,則:

wb.SaveAs(@"E:\IronXL\Sample.xlsx")

以下是我們新創建的 Excel 文件的截圖 sample.xlsx

Doc5 1 related to 3.3. 創建和編輯工作表範例

很明顯,在 VB.NET 應用程式中使用 IronXL 創建 Excel 文件是多麼簡單。


4. 在 VB.NET 中讀取 Excel 檔案

IronXL 也提供了一個簡單的方法來在您的 VB dotnet 專案中讀取 Excel (.xlsx) 文件。 為此,只需獲取Excel文件,將其加載到您的項目中,讀取其數據,然後根據您的需求使用它。

請依照以下步驟操作:

4.1. 在專案中存取 Excel 檔案

WorkBook 是 IronXL 的類別,其對象提供對 Excel 文件及其功能的完全訪問。 例如,如果我們想要訪問Excel檔案,我們只需使用:

WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
VB.NET

在上面的代碼中,WorkBook.Load() 函數將 sample.xlsx 加載到 wb 中。 可以通過訪問 Excel 文件的特定工作表在wb上執行任何類型的功能。

4.2 存取特定工作表

若要存取 Excel 中的特定工作表,可以使用 WorkSheet 類別,此類別可以以下不同方式使用:

4.2.1. 按工作表名稱

Dim ws As WorkSheet = WorkBook.GetWorkSheet("sheet1") 'by sheet name
Dim ws As WorkSheet = WorkBook.GetWorkSheet("sheet1") 'by sheet name
VB.NET

wb 是在上述部分中聲明的 WorkBook。

4.2.2. 按工作表索引

 Dim ws As WorkSheet = WorkBook.WorkSheets(0) 'by sheet index
 Dim ws As WorkSheet = WorkBook.WorkSheets(0) 'by sheet index
VB.NET

4.2.3. 預設工作表

Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet: 
Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet: 
VB.NET

4.2.4. 第一張表單

Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first sheet:
Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first sheet:
VB.NET

4.2.1. 第一或預設工作表

Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first or default sheet:
Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first or default sheet:
VB.NET

獲取 Excel 工作表 ws 後,您可以從該 Excel 文件的相應工作表中獲取任何類型的數據並執行所有 Excel 功能。


5. 從工作表中存取數據

可以通過這種方式從 ExcelSheet ws 中訪問數據:

Dim int_Value As Integer = sheet("A2").IntValue 'for integer
Dim str_value As String = sheet("A2").ToString() 'for string
Dim int_Value As Integer = sheet("A2").IntValue 'for integer
Dim str_value As String = sheet("A2").ToString() 'for string
VB.NET

5.1. 特定欄位的資料

也可以通過以下方式從特定列的多個單元格獲取數據:

For Each cell In sheet("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)       
Next cell
For Each cell In sheet("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)       
Next cell
VB.NET

它將顯示從儲存格A2A10的值。 上述討論的代碼示例如下所示。

/**
Load and Edit Values
anchor-data-from-specific-column
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey() 
End Sub
/**
Load and Edit Values
anchor-data-from-specific-column
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey() 
End Sub
VB.NET

這將顯示以下輸出:

Doc3 Input1 related to 5.1. 特定欄位的資料

我們可以看到 Excel 文件 Sample.xlsx 的截圖:

Doc3 1 related to 5.1. 特定欄位的資料

6. 對數據執行功能

要從 Excel 工作表中訪問過濾數據並應用聚合函數(如 Sum、Min 或 Max)非常簡單,可按以下方式操作:

Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
VB.NET

您可以在此處閱讀更多關於 Excel 聚合函數的內容。

/**
Apply Functions to Data
anchor-perform-functions-on-data
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

    Dim sum As Decimal = ws("G2:G10").Sum()
    Dim min As Decimal = ws("G2:G10").Min()
    Dim max As Decimal = ws("G2:G10").Max()

    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
/**
Apply Functions to Data
anchor-perform-functions-on-data
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

    Dim sum As Decimal = ws("G2:G10").Sum()
    Dim min As Decimal = ws("G2:G10").Min()
    Dim max As Decimal = ws("G2:G10").Max()

    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
VB.NET

此代碼將顯示如下:

Doc3 Output2 related to 6. 對數據執行功能

還有這個 Excel 文件 Sample.xlsx

Doc3 2 related to 6. 對數據執行功能

您可以在連結文章中了解更多關於如何讀取 Excel 的資訊。


快速指南

文件 API 參考

訪問 IronXL 的文檔 API 參考,以及在 VB.NET 專案中輕鬆使用 Excel 的方法。查找功能、函數、類別和更多內容的列表。

文件 API 參考
Documentation related to 快速指南
查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。