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. Excel for VB.NET 函式庫

獲取 IronXL Excel for VB.NET 函式庫使用 DLL 下載NuGet. IronXL 是我們在 VB.NET 專案中快速存取 Excel 數據的第一步,這是我們在本教程中將使用的工具。 (開發免費使用).

Install-Package IronXL.Excel

教學指南

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

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

2.1. 建立 Excel 檔案

讓我們首先建立一個 WorkBook:

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. 創建工作表

創建工作簿後,可以如下創建 Excel 工作表:

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("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")

Here is the screenshot of our newly created Excel file sample.xlsx:

很明顯,在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()將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 功能。


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

這將顯示以下輸出:

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


6. 在數據上執行函數

通過以下方式使用匯總函數(如Sum、Min或Max)來訪問Excel工作表中的篩選數據是非常簡單的:

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

此代碼將顯示如下:

以及這個 Excel 文件 Sample.xlsx:

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


快速指南

文件 API 參考

訪問IronXL的API參考文件以及在您的VB.NET專案中使用Excel的簡便方法。查找功能、函數、類別等列表。

文件 API 參考