遍历工作表
Looping through sheets
我正在尝试使用 EPPlus 循环遍历 Excel 工作簿的工作表,但我没有运气弄清楚语法。
我现在正在使用 C#。我可以在 VB.NET 中使用它,但不能在 C# 中使用。
这就是我所拥有的 不是 在 C# 中工作的东西:
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
foreach (object sheet01 in Workbook01.Worksheets){
// Code here.
}
这给出了一个错误:
'object' does not contain a definition for 'Worksheets' and no extension method 'Worksheets' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
这是我在 VB.NET 中使用的很好的方法:
Dim Wkbk As Object
Wkbk = New OfficeOpenXml.ExcelPackage(wkbkFilePath).Workbook
For Each sheet01 In Wkbk.Worksheets
' Code here
Next sheet01
对于这个项目,将 C# 与 VB.NET 进行比较可能是错误的,但是,无论哪种方式,我都需要弄清楚如何在 C# 中使用 EPPlus 循环遍历所有工作表。
Workbook01
在这里是一个 object
,所以你只能访问 System.Object
:
的成员
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
如果不想写出类型名,使用var
:
var Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
你应该在你的循环中做同样的事情:
foreach (var sheet01 in Workbook01.Worksheets){
有关差异的解释,请参阅 Difference between "var" and "object" in C#。
C# 在类型方面比 VB.NET 严格得多(没有 Option Strict)。
您需要声明一个工作簿类型的变量而不是对象:
OpenOfficeXml.Workbook Workbook01 = new ...
VB.NET 发挥了一些作用,因此您可以在对象变量上使用 Workbook 的属性和方法。 C# 希望您指定正确的类型以避免误解。您还可以使用 var 关键字让编译器确定变量的正确类型。
我正在尝试使用 EPPlus 循环遍历 Excel 工作簿的工作表,但我没有运气弄清楚语法。
我现在正在使用 C#。我可以在 VB.NET 中使用它,但不能在 C# 中使用。
这就是我所拥有的 不是 在 C# 中工作的东西:
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
foreach (object sheet01 in Workbook01.Worksheets){
// Code here.
}
这给出了一个错误:
'object' does not contain a definition for 'Worksheets' and no extension method 'Worksheets' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
这是我在 VB.NET 中使用的很好的方法:
Dim Wkbk As Object
Wkbk = New OfficeOpenXml.ExcelPackage(wkbkFilePath).Workbook
For Each sheet01 In Wkbk.Worksheets
' Code here
Next sheet01
对于这个项目,将 C# 与 VB.NET 进行比较可能是错误的,但是,无论哪种方式,我都需要弄清楚如何在 C# 中使用 EPPlus 循环遍历所有工作表。
Workbook01
在这里是一个 object
,所以你只能访问 System.Object
:
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
如果不想写出类型名,使用var
:
var Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
你应该在你的循环中做同样的事情:
foreach (var sheet01 in Workbook01.Worksheets){
有关差异的解释,请参阅 Difference between "var" and "object" in C#。
C# 在类型方面比 VB.NET 严格得多(没有 Option Strict)。
您需要声明一个工作簿类型的变量而不是对象:
OpenOfficeXml.Workbook Workbook01 = new ...
VB.NET 发挥了一些作用,因此您可以在对象变量上使用 Workbook 的属性和方法。 C# 希望您指定正确的类型以避免误解。您还可以使用 var 关键字让编译器确定变量的正确类型。