C#打开Excel工作表
学习如何使用C#打开Excel工作表功能来处理Excel电子表格并打开所有文件类型,包括(.xls"、".csv"、".tsv "和".xlsx). 要打开一个Excel工作表,读取其数据,并以编程方式操作它,对于许多正在开发应用程序的人来说是必不可少的。 以下是对每个希望用更少的代码行数和更快的响应时间编写方法的开发者的解决方案。
如何用 C# 打开 Excel 文件
- 安装 C# 库打开 Excel 文件
- 将 Excel 文件加载到 工作簿 反对
- 探索多种选择方式 工作表 从打开的 Excel 文件
- 通过选定的 工作表 反对
- 从行和列范围中获取数据
如何在 C&num 中打开 Excel 工作表;
安装 Excel 库以读取 Excel 文件。
将现有的Excel文件加载到
Workbook
对象中。设置默认的 Excel 工作表。
从Excel工作簿中读取值。
- 根据需要处理该值,并显示。
步骤 1
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()
现在,我们只需从打开的 ExcelWorkSheet
中获取数据。
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
的值[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")
让我们看看如何使用范围从打开的 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
的每个单元格值。