C# 打開 Excel 工作表
學習如何使用 C# 打開 Excel 工作表函數來處理 Excel 試算表並開啟所有檔案類型,包括(.xls
、.csv
、.tsv
和 .xlsx
). 要打開 Excel 工作表,讀取其數據並以程式化方式進行操作對於許多開發應用程式的人來說是必不可少的。 這是為每位想要方法更少行數且響應時間更快的開發者提供的解決方案。
如何在 C# 中開啟 Excel 文件
- 安裝 C# 程式庫來打開 Excel 文件
- 載入 Excel 文件到 工作簿 對象
- 探索多種選擇方式 工作表 從已打開的 Excel 文件
- 透過選中的單元格訪問數據 工作表 對象
- 取得特定範圍的資料從行和列
如何在 C# 中打開 Excel 工作表
安裝 Excel 函式庫以讀取 Excel 檔案。
將現有的Excel文件加載到
Workbook
對象中。設定預設的 Excel 工作表。
從 Excel 工作簿讀取值。
- 按照相應的處理值並顯示。
第一步
1. 存取 Excel C# 函式庫
存取透過DLL的Excel C#庫或使用您偏好的安裝方式安裝NuGet 管理器. 一旦您訪問了IronXL庫並將其添加到您的項目中,您就可以使用以下所有功能來打開Excel工作表C#。
Install-Package IronXL.Excel
如何操作教程
2. 載入 Excel 檔案
使用 WorkBook.Load
()使用 IronXL 的 function 來將 Excel 檔案載入專案中。
此功能需要一個字符串參數,即要打開的 Excel 文件的路徑。 請看這裡:
WorkBook wb = WorkBook.Load("Path");//Excel file path
WorkBook wb = WorkBook.Load("Path");//Excel file path
Dim wb As WorkBook = WorkBook.Load("Path") 'Excel file path
指定路徑的 Excel 檔案將載入至 wb
。 現在,我們需要指定將要打開的 Excel 工作表。
3. 打開 Excel 工作表
要打開 Excel 檔案中特定的 WorkSheet
,IronXL 提供了 WorkBook.GetWorkSheet
方法。()函式。 使用這個,我們可以輕鬆地按其名稱打開工作表:
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
Dim ws As WorkSheet = WorkBook.GetWorkSheet("SheetName")
指定的 WorkSheet
將在 ws
中打開,包含所有數據。 還有其他幾種方法可以打開 Excel 文件的特定WorkSheet
:
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet;
//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet;
//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
'''
'''Open Excel Worksheet
'''anchor-open-excel-worksheet
'''*
'by sheet index
Dim ws As WorkSheet = wb.WorkSheets (0)
'for the default
Dim ws As WorkSheet = wb.DefaultWorkSheet
'for the first sheet:
Dim ws As WorkSheet = wb.WorkSheets.First()
'for the first or default sheet:
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
現在,我們只需要從打開的 Excel WorkSheet
中獲取數據。
4. 從工作表中獲取數據
我們可以通過以下方式從已打開的 Excel WorkSheet
中獲取數據:
獲取 Excel
WorkSheet
的特定單元格值。在特定範圍內獲取資料。
從
WorkSheet
獲取所有數據。讓我們逐一看看如何通過這些例子以不同的方式獲取數據:
4.1. 獲取特定單元格的值
首先從Excel WorkSheet
中獲取數據的方法是取得特定單元格的值。 可以這樣訪問:
string val = ws ["Cell Address"].ToString();
string val = ws ["Cell Address"].ToString();
Dim val As String = ws ("Cell Address").ToString()
ws
是 Excel 檔案中的 WorkSheet
,如我們在以下範例中將看到。 可以通過指定「行索引」和「列索引」來訪問特定單元格的值。
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
Dim val As String=ws.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
讓我們看看如何在C#項目中打開Excel文件並通過兩種方式獲取特定單元格值的示例:
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
//Load Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Open WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Get value By Cell Address
Int32 int_val= ws ["C6"].Int32Value;
//Get value by Row and Column Address
string str_val=ws.Rows [3].Columns [1].Value.ToString();
Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
Console.ReadKey();
}
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
//Load Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Open WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Get value By Cell Address
Int32 int_val= ws ["C6"].Int32Value;
//Get value by Row and Column Address
string str_val=ws.Rows [3].Columns [1].Value.ToString();
Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
Console.ReadKey();
}
'''
'''Get Cell Value
'''anchor-get-specific-cell-value
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
'Load Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'Open WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'Get value By Cell Address
Dim int_val As Int32= ws ("C6").Int32Value
'Get value by Row and Column Address
Dim str_val As String=ws.Rows (3).Columns (1).Value.ToString()
Console.WriteLine("Getting Value by Cell Address: {0}",int_val)
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val)
Console.ReadKey()
End Sub
此程式碼顯示以下輸出:
Excel 文件 sample.xlsx
中 row[3]列[1]
和 C6
單元格:
行和列的索引從 0
開始。
打開 Excel Worksheets
並獲取特定的呼叫數據,您可以了解更多關於如何使用 C# 讀取 Excel 數據從已經打開的 Excel 工作表中。
4.2. 從特定範圍取得數據
現在讓我們來看看如何使用 IronXL 從已開啟的 Excel WorkSheet
中獲取特定範圍的數據。
IronXL 提供了一種智能方式來獲取特定範圍的數據。 我們只需指定 from
到 to
的值:
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ("From Cell Address : To Cell Address")
讓我們看看如何使用範圍從打開的 Excel WorkSheet
中獲取數據的範例:
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//specify the range
foreach (var cell in ws ["B2:B10"])
{
Console.WriteLine("value is: {0}", cell.Text);
}
Console.ReadKey();
}
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//specify the range
foreach (var cell in ws ["B2:B10"])
{
Console.WriteLine("value is: {0}", cell.Text);
}
Console.ReadKey();
}
'''
'''Get Data from Range
'''anchor-get-data-from-specific-range
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'specify the range
For Each cell In ws ("B2:B10")
Console.WriteLine("value is: {0}", cell.Text)
Next cell
Console.ReadKey()
End Sub
以上程式碼將從 B2
到 B10
抓取資料如下:
我們可以查看 Excel 文件 sample.xlsx
從 B2
到 B10
的值:
4.3. 從行中獲取數據
我們還可以描述特定行的範圍。 例如:
WorkSheet ["A1:E1"]
WorkSheet ["A1:E1"]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["A1:E1"]
這將顯示從 A1
到 E1
的所有值。 閱讀更多有關C# Excel 範圍以及如何使用不同的行和列識別。
4.4. 從工作表獲取所有數據
使用 IronXL 輕鬆獲取打開的 Excel 工作表中的所有單元格數據。 對於這個任務,我們需要通過行和列索引訪問每個單元格的值。 讓我們看以下示例,在此示例中,我們將遍歷所有WorkSheet
單元格並訪問其值。
在此示例中,基本上有兩個循環在運作:一個是用於遍歷 Excel WorkSheet
的每一行,另一個是用於遍歷特定行的每一列。 這樣每個單元格的值就可以輕鬆訪問了。
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample2.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//access all rows of open Excel WorkSheet
for (int i = 0; i < ws.Rows.Count(); i++)
{
//access all columns of specific row
for (int j = 0; j < ws.Columns.Count(); j++)
{
//Access each cell for specified column
Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
}
}
Console.ReadKey();
}
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample2.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//access all rows of open Excel WorkSheet
for (int i = 0; i < ws.Rows.Count(); i++)
{
//access all columns of specific row
for (int j = 0; j < ws.Columns.Count(); j++)
{
//Access each cell for specified column
Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
}
}
Console.ReadKey();
}
'''
'''Get All Data
'''anchor-get-all-data-from-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample2.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'access all rows of open Excel WorkSheet
For i As Integer = 0 To ws.Rows.Count() - 1
'access all columns of specific row
For j As Integer = 0 To ws.Columns.Count() - 1
'Access each cell for specified column
Console.WriteLine(ws.Rows (i).Columns (j).Value.ToString())
Next j
Next i
Console.ReadKey()
End Sub
上述程式碼的輸出將顯示完整開啟的 Excel WorkSheet
的每個儲存格值。