我正在尝试创建 Excel 文件的
Worksheet
数组,但我找不到正确的转换。
这是代码:
Excel.Application app = new Excel.Application();
Excel.Workbook book = app.Workbooks.Open(pathFile);
int numSheet = book.Worksheets.Count;
Excel.Worksheet[] sheets = new Excel.Worksheet[numSheet];
sheets = (Excel.Worksheet[])book.Worksheets;
我尝试使用该转换,正如您从代码中看到的那样,但它是多余的。 我该如何解决这个问题?
Excel.Sheets 是一个 IEnumerable,可以包含图表和工作表,因此如果您使用循环,您可以获得所需的结果。
Excel.Application app = new Excel.Application();
Excel.Workbook book = app.Workbooks.Open(pathFile);
int numSheet = book.Worksheets.Count;
List<Excel.Worksheet> sheets = new List<Excel.Worksheet>();
foreach(Excel.Worksheet sheet in book.Worksheets)
sheets.Add(sheet);
如果你需要它在数组中之后你可以随时调用
sheets.ToArray();
晚了几年,但是对于其他人来说,使用 linq 方法 OfType:
var sheets = book.Worksheets.OfType<Excel.Worksheet>().ToList();
这样图表就不会造成问题。如果保证 Excel 可枚举属性返回单一类型,则使用 Cast<> 代替。