如何在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 dotnet Excel 文件,並存取所有資料以供專案使用。 我們將學習如何建立各種格式( .xls.xlsx.csv.tsv )的電子表格,以及如何使用 VB.NET Excel 程式設定儲存格樣式和插入資料。


步驟 1

1. Excel for VB.NET 函式庫

使用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 New WorkBook
' Create a new Excel workbook with the default format (.xlsx)
Dim wb As New WorkBook
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

例如,可以將工作表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

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

3.2. 將資料插入範圍

也可以使用 range 函數將資料寫入多個單元格,如下所示:

' 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 建立和編輯工作表示例

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


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. 從工作表存取數據

可以透過以下方式從 Excel 表格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工作時,可以創建和操作Excel文件格式,例如.xls, .xlsx, .csv, 和.tsv。

我如何在VB.NET中對Excel數據進行計算?

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

我可以在VB.NET中將數據插入到Excel工作表的特定單元格中嗎?

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

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

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

如何下載VB.NET開發的Excel庫?

你可以通過NuGet運行dotnet add package IronXL.Excel命令或從IronXL網站下載DLL來下載IronXL Excel庫。

我可以在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 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 1,846,091 | 版本: 2026.2 剛剛發布