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

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 函式庫

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

Install-Package IronXL.Excel

教學指南

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

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

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

上面的程式碼將在 WorkBook 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

上述代碼會將 NewValue 從工作表 ws1 的單元格 A3 寫到 A8

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 也提供了一種簡單的方法來讀取 Excel(.xlsx)在您的 VB dotnet 專案中的文件。 為此,只需獲取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()函式 loadsample.xlsxwb 中。 可以通過訪問 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 功能。


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 快速指南