VB .NET 讀取與創建 Excel 檔案(程式碼範例教學)
開發人員需要一種流暢且簡單的方法來訪問 VB .NET Excel 文件。 在這個操作指南中,我們將使用IronXL來讀取VB dotnet Excel檔案並存取所有數據以用於我們的項目。 我們將學習如何創建各種格式的試算表( .xls
、.xlsx
、.csv
和 .tsv
),以及使用 VB.NET Excel 程式設計設定儲存格樣式和插入資料。
如何在 VB.NET 中讀取 Excel 文件
- 下載 VB.NET 讀取 Excel C# 庫
- 在 VB.NET 中建立 Excel 檔案
- 插入資料到工作表
- 在 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
上面的程式碼是用來建立一個新的 Excel 檔案。預設情況下,檔案的擴展名是 .xlsx
。
2.2. 創建 XLS 檔案
如果您想創建一個.xls
擴展文件,則可以使用此代碼。
Dim wb As New WorkBook(ExcelFileFormat.XLS)
Dim wb As New WorkBook(ExcelFileFormat.XLS)
2.3. 創建工作表
在創建WorkBook之後,可以按照以下方法創建Excel WorkSheet:
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
上面的程式碼將在 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")
3. 將資料插入工作表
3.1 將資料插入單元格
現在我們可以輕鬆地將數據插入到WorkSheet單元中,如下所示:
worksheet("CellAddress").Value = "MyValue"
worksheet("CellAddress").Value = "MyValue"
例如,工作表 ws1
中的資料可以插入為:
ws1("A1").Value = "Hello World"
ws1("A1").Value = "Hello World"
上述程式碼將在工作表 ws1
的 A1
單元格中寫入 Hello World
。
3.2. 將資料插入範圍
也可以使用範圍功能將數據寫入多個單元格,如下所示:
ws1("A3:A8").Value = "NewValue"
ws1("A3:A8").Value = "NewValue"
上述代碼會將 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
注意:預設情況下,新的 Excel 文件將在專案的 bin>Debug
資料夾中創建。如果我們想在自定義路徑中創建新文件,則:
wb.SaveAs(@"E:\IronXL\Sample.xlsx")
以下是我們新創建的 Excel 文件 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
在上面的程式碼中,WorkBook.Load()
函式 loadsample.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
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
4.2.3. 預設工作表
Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet:
Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet:
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:
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:
在獲取 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
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
它將顯示從單元格 A2
到 A10
的值。 上述討論的代碼示例如下所示。
/**
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
這將顯示以下輸出:
我們可以看到 Excel 文件 Sample.xlsx
的截圖:
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()
您可以閱讀更多有關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
此代碼將顯示如下:
以及這個 Excel 文件 Sample.xlsx
:
您可以了解更多有關如何讀取 Excel在連結文章中。