循环浏览工作表
本文关键字:工作 浏览 循环 | 更新日期: 2023-09-27 18:34:38
我正在尝试使用 EPPlus 循环浏览 Excel 工作簿的工作表,但我没有任何运气弄清楚语法。
我现在正在使用 C#。 我能够让它在 VB.NET 中工作,但不能在 C# 中工作。
这是我所拥有的在 C# 中不起作用的东西:
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
foreach (object sheet01 in Workbook01.Worksheets){
// Code here.
}
这给出了一个错误,内容如下:
"对象"不包含"工作表">的定义,并且找不到接受类型为"对象"的第一个参数的扩展方法"工作表"(您是否缺少 using 指令或程序集引用?
这是我在 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){
有关差异的说明,请参阅 C# 中"var"和"对象"之间的差异。
C# 在类型方面比 VB.NET 严格得多(没有 Option Strict(。
您需要声明一个类型为工作簿而不是对象的变量:
OpenOfficeXml.Workbook Workbook01 = new ...
VB.NET 执行了一些魔术,以便您可以在对象变量上使用工作簿的属性和方法。C# 希望您指定正确的类型以避免误解。还可以使用 var 关键字让编译器确定变量的正确类型。