C# 打开 Excel 工作表
学习如何使用 C# 打开 Excel 工作表函数处理 Excel 电子表格和打开所有文件类型,包括 (.xls"、".csv"、".tsv "和".xlsx).打开 Excel 工作表、读取数据并以编程方式对其进行操作,对于许多开发应用程序的人来说是必不可少的。对于希望使用代码行数更少、响应速度更快的方法的每一位开发人员来说,这里都有一个解决方案。
如何用 C# 打开 Excel 文件
- 安装 C# 库打开 Excel 文件
- 将 Excel 文件加载到 工作簿 反对
- 探索多种选择方式 工作表 从打开的 Excel 文件
- 通过选定的 工作表 反对
- 从行和列范围中获取数据
如何在 C&num 中打开 Excel 工作表;
1.安装 Excel 库以读取 Excel 文件。
2.将现有 Excel 文件加载到 "工作簿 "对象中。
3.设置默认 Excel 工作表。
4.从 Excel 工作簿中读取值。
5.对数值进行相应处理并显示。
步骤 1
1.Access Excel C# 库
访问 通过 DLL 的 Excel C# 库 或使用您喜欢的 NuGet 管理器.访问 IronXL 库并将其添加到您的项目后,您就可以使用以下所有函数打开 Excel C# 工作表。
Install-Package IronXL.Excel
教程
2.加载 Excel 文件
使用 `WorkBook.Load()IronXL 的一个函数,用于将 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 文件中的特定工作表,IronXL 提供了 `WorkBook.GetWorkSheet()函数。使用这个函数,我们可以很容易地根据工作表的名称打开工作表:
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
Dim ws As WorkSheet = WorkBook.GetWorkSheet("SheetName")
指定的 "工作表 "将连同其所有数据一起在 "ws "中打开。还有其他一些方法可以打开 Excel 文件的特定工作表
:
/**
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()
现在,我们只需从打开的 ExcelWorkSheet
中获取数据。
4.从工作表中获取数据
我们可以通过以下方式从打开的 ExcelWorkSheet
中获取数据:
1.获取 ExcelWorkSheet
中特定单元格的值。
2.获取特定范围内的数据。
3.获取工作表中的所有数据。
让我们通过这些示例逐一了解如何以不同方式获取数据:
4.1.获取特定单元格值
从 ExcelWorkSheet
中获取数据的第一种方法是获取特定单元格的值。可以这样访问
string val = ws ["Cell Address"].ToString();
string val = ws ["Cell Address"].ToString();
Dim val As String = ws ("Cell Address").ToString()
ws "是 Excel 文件的 "工作表",我们将在下面的示例中看到。还可以通过指定 "行索引 "和 "列索引 "来访问特定的单元格值。
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
的值 [3].专栏 [1]和 C6
单元格:
行和列索引从 "0 "开始。
打开 Excel WorkSheets
并获取具体的调用数据,您可以阅读更多有关如何 在 C# 中读取 Excel 数据 从已打开的 Excel 工作表中
4.2.从特定范围获取数据
现在让我们看看如何使用 IronXL 从打开的 ExcelWorkSheet
中获取特定范围内的数据。
IronXL 提供了一种获取特定范围内数据的智能方法。我们只需指定 "从 "到 "到 "的值:
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ("From Cell Address : To Cell Address")
让我们看看如何使用范围从打开的 ExcelWorkSheet
中获取数据的示例:
/**
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
上述代码的输出将显示完整打开的 ExcelWorkSheet
的每个单元格值。