循环通过床单
我正在试图使用EPPlus来循环显示Excel工作簿的表格,但是我没有任何计算语法的运气。
我正在使用C#。 我能够在VB.NET中工作,但不是C#。
这是我没有在C#中工作的:
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook; foreach (object sheet01 in Workbook01.Worksheets){ // Code here. }
这给出了一个错误,说:
'object'不包含'Worksheets'的定义,也没有扩展方法'Worksheets'可以接受types'object'的第一个参数(你是否缺lessusing指令或程序集引用?)
这是我在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为这个项目,但无论如何,我需要弄清楚如何循环所有工作表与EPPlus在C#中。
Workbook01
是一个object
,所以你只能访问System.Object
的成员:
object Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
如果您不想写出types名称,请使用var
:
var Workbook01 = new OfficeOpenXml.ExcelPackage(WorkbookFilePath).Workbook;
你应该在你的循环中做同样的事情:
foreach (var sheet01 in Workbook01.Worksheets){
请参阅C#中“var”和“object”的区别以获取有关区别的说明。
C#比VB.NET更严格(没有Option Strict)。
您需要声明一个types为Workbook的variables而不是object:
OpenOfficeXml.Workbook Workbook01 = new ...
VB.NET做了一些神奇的事情,以便您可以使用对象variables的工作簿的属性和方法。 C#希望您指定正确的types以避免误解。 您也可以使用var关键字来让编译器确定variables的正确types。