如何在VB.NET中建立和讀取Excel文件

VB .NET 讀取與建立 Excel 文件(程式碼範例教程)

This article was translated from English: Does it need improvement?
Translated
View the article in English

開發者需要一個流暢且簡單的方法來存取 VB .NET Excel 文件。 在這個教學中,我們將使用 IronXL 來讀取 VB .NET Excel 文件並存取我們專案使用的所有資料。 我們將學習如何建立各種格式(.csv.tsv)的電子表格,以及使用 VB.NET Excel 程式設置單元格樣式和插入資料。


步驟 1

1. VB.NET Library 的 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 文件

首先讓我們建立一個工作簿:

' Create a new Excel workbook with the default format (.xlsx)
Dim wb As WorkBook = WorkBook.Create()
' Create a new Excel workbook with the default format (.xlsx)
Dim wb As WorkBook = WorkBook.Create()
VB .NET

上面的程式碼是用於建立新 Excel 文件。預設情況下,其擴展名是 .xlsx

2.2. 建立 XLS 文件

如果您希望建立 .xls 擴展名的文件,您可以使用以下程式碼:

' Create a new Excel workbook with .xls format
Dim wb As New WorkBook(ExcelFileFormat.XLS)
' Create a new Excel workbook with .xls format
Dim wb As New WorkBook(ExcelFileFormat.XLS)
VB .NET

2.3. 建立工作表

建立工作簿後,可以按以下方式建立 Excel 工作表:

' Create a new worksheet named "Sheet1" in the workbook
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
' Create a new worksheet named "Sheet1" in the workbook
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
VB .NET

上面的程式碼將在工作簿 wb 中建立一個名稱為 Sheet1 的新工作表 ws1

2.4. 建立多個工作表

任何數量的工作表都可以以相同的方式建立:

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

3. 插入資料到工作表

3.1. 插入資料到單元格

現在我們可以輕鬆地將資料插入到工作表的單元格中,如下所示:

' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
VB .NET

例如,worksheet ws1中的資料可以插入如下:

' Insert "Hello World" into cell A1 of the worksheet
ws1("A1").Value = "Hello World"
' Insert "Hello World" into cell A1 of the worksheet
ws1("A1").Value = "Hello World"
VB .NET

上述程式碼將在工作表 ws1 的單元格 A1 中寫入 Hello World

3.2. 插入資料到範圍

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

' Insert "NewValue" into the range from cell A3 to A8
ws1("A3:A8").Value = "NewValue"
' Insert "NewValue" into the range from cell A3 to A8
ws1("A3:A8").Value = "NewValue"
VB .NET

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

我們將建立一個新的 Excel 文件 Sample.xlsx,並插入一些資料以展示我們上述學到的程式碼。

' Import IronXL namespace for Excel operations
Imports IronXL

' Main subroutine to create and edit Excel
Sub Main()
    ' Create a new workbook in XLSX format
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    ' Create a worksheet named "Sheet1"
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ' Insert data into cells
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ' Insert a range of values
    ws1("B1:B8").Value = "RangeValue"
    ' Save the workbook as "Sample.xlsx"
    wb.SaveAs("Sample.xlsx")
End Sub
' Import IronXL namespace for Excel operations
Imports IronXL

' Main subroutine to create and edit Excel
Sub Main()
    ' Create a new workbook in XLSX format
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    ' Create a worksheet named "Sheet1"
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ' Insert data into cells
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ' Insert a range of values
    ws1("B1:B8").Value = "RangeValue"
    ' Save the workbook as "Sample.xlsx"
    wb.SaveAs("Sample.xlsx")
End Sub
VB .NET

注意:預設情況下,新的 Excel 文件將建立在專案的 bin\Debug 資料夾中。 如果我們想在自定義路徑中建立新文件,請使用:

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

以下是我們新建立的 Excel 文件 Sample.xlsx 的截圖:

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

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


4. 在 VB.NET 中讀取 Excel 文件

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

請按照以下步驟操作:

4.1. 在專案中存取 Excel 文件

WorkBook 是 IronXL 的類,其物件提供對 Excel 文件及其功能的完全存取。 例如,如果我們想要存取 Excel 文件,我們只需使用:

' Load the Excel file "sample.xlsx" into a workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'Excel file path
' Load the Excel file "sample.xlsx" into a workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'Excel file path
VB .NET

在上面的程式碼中,WorkBook.Load() 函式將 sample.xlsx 載入到 wb 中。 可以通過存取 Excel 文件的特定工作表來對 wb 執行任何型別的功能。

4.2. 存取特定工作表

要存取 Excel 中的特定表單,請使用 WorkSheet 類,可以使用以下不同的方式:

按表名

' Access worksheet by name
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'by sheet name
' Access worksheet by name
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'by sheet name
VB .NET

按表索引

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

預設表

' Access the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet() 'for the default sheet
' Access the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet() 'for the default sheet
VB .NET

第一個表

' Access the first worksheet in the workbook
Dim sheet As WorkSheet = wb.WorkSheets.FirstOrDefault() 'for the first sheet
' Access the first worksheet in the workbook
Dim sheet As WorkSheet = wb.WorkSheets.FirstOrDefault() 'for the first sheet
VB .NET

獲得 Excel 表 ws 後,您可以從對應的 Excel 文件中的工作表中獲取任何型別的資料並執行所有 Excel 功能。


5. 從工作表中存取資料

可以通過如下方式從 ExcelSheet ws 存取資料:

' Retrieve values from specific cells
Dim int_Value As Integer = ws("A2").IntValue 'for integer
Dim str_value As String = ws("A2").ToString() 'for string
' Retrieve values from specific cells
Dim int_Value As Integer = ws("A2").IntValue 'for integer
Dim str_value As String = ws("A2").ToString() 'for string
VB .NET

5.1. 從特定列中獲取資料

也可以從特定列的多個單元格中獲取資料,方法如下:

' Loop through cells in a specific range and print their values
For Each cell In ws("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)
Next cell
' Loop through cells in a specific range and print their values
For Each cell In ws("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)
Next cell
VB .NET

它將顯示從單元格 A2A10 的值。 下面提供了上述討論的程式碼範例。

' Example: Load and display values from a column
Imports IronXL

Sub Main()
    ' Load the workbook from file
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    ' Loop through cells in range A2:A10
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey()
End Sub
' Example: Load and display values from a column
Imports IronXL

Sub Main()
    ' Load the workbook from file
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    ' Loop through cells in range A2:A10
    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. 執行資料上的功能

可以通過應用 Sum、Min 或 Max 等聚合函式來簡單地從 Excel 工作表中存取過濾資料,如下所示:

' Aggregate functions on a range of data
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
' Aggregate functions on a range of data
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 聚合函式

' Example: Apply functions to data
Imports IronXL

Sub Main()
    ' Load the workbook
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

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

    ' Print the results
    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
' Example: Apply functions to data
Imports IronXL

Sub Main()
    ' Load the workbook
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    ' Get the first worksheet
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

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

    ' Print the results
    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 快速存取教程

常見問題

我如何在VB.NET中讀取Excel檔案而不使用Interop?

要在VB.NET中讀取Excel檔案而不使用Interop,您可以使用IronXL的WorkBook.Load方法來載入檔案。載入後,您可以使用WorkSheet類別從特定工作表存取資料。

在VB.NET中建立Excel檔案的步驟是什麼?

在VB.NET中,若要使用IronXL建立Excel檔案,請首先實例化一個新的WorkBook物件。使用CreateWorkSheet方法來新增工作表,並通過設置單元格值來填充它們。

在VB.NET中是否可以處理不同格式的Excel檔案?

是的,在VB.NET中使用IronXL時,您可以建立和操作格式如.xls、.xlsx、.csv和.tsv的Excel檔案。

如何在VB.NET中對Excel資料進行計算?

IronXL允許您直接在單元格範圍上進行計算,如Sum、Min和Max。例如,使用ws('A1:A10').Sum()來計算該範圍內的值的總和。

我可以使用VB.NET將資料插入到Excel工作表的特定單元格嗎?

可以,在VB.NET中使用IronXL,您可以通過設置單元格的Value屬性將資料插入到特定單元格,例如ws1('A1').Value = 'Hello World'

如何在VB.NET中將Excel工作簿保存到特定路徑?

要使用IronXL在VB.NET中將Excel工作簿保存到特定路徑,請使用SaveAs方法並指定所需的文件路徑,例如wb.SaveAs('E:\IronXL\Sample.xlsx')

我如何下載用於VB.NET開發的Excel程式庫?

您可以通過在NuGet中運行命令dotnet add package IronXL.Excel或從IronXL網站下載DLL來下載IronXL的Excel程式庫以用於VB.NET。

我可以使用VB.NET在單個Excel檔案中建立多個工作表嗎?

可以,使用IronXL在VB.NET中,您可以通過在WorkBook物件上多次調用CreateWorkSheet方法來在單個Excel檔案中建立多個工作表。

如何在VB.NET中按名稱或索引存取Excel檔案中的特定工作表?

在VB.NET中使用IronXL,您可以通過名稱存取工作表wb.GetWorkSheet('SheetName'),或通過索引wb.WorkSheets(index)

使用IronXL在VB.NET中建立的Excel檔案預設保存在哪裡?

預設情況下,使用IronXL在VB.NET中建立的Excel檔案保存於專案的'bin\Debug'文件夾,除非使用SaveAs方法指定了其他路徑。

Curtis Chau
技術作家

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

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
Nuget 下載 2,150,290 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

仍在滾動嗎?

想要快速證明嗎? PM > Install-Package IronXL.Excel
運行一個範例 觀看您的資料成為試算表。