Excel互操作,迭代工作表和图表的工作簿

本文关键字:工作簿 工作 互操作 迭代 Excel | 更新日期: 2023-09-27 18:10:56

我在使用Microsoft Excel Interop时遇到了一个场景。

System.Collections.IEnumerator wsEnumerator = excelApp.ActiveWorkbook.Worksheets.GetEnumerator();
while (wsEnumerator.MoveNext())
{
    wsCurrent = (Excel.Worksheet)wsEnumerator.Current;
    //Worksheet operation Follows   
}

我在工作表上操作,所以我不能在这有图表。我想做的是实现对工作表的操作,并检查它是否是一个工作表或图表,并采取相应的行动。

由于工作表包含工作表、图表和"Excel 4.0宏",那么每个条目的工作表类型是什么呢?

System.Collections.IEnumerator wsEnumerator = workBookIn.Sheets.GetEnumerator();
while (wsEnumerator.MoveNext())
{
    //Identify if its a chart or worksheet
}

Excel互操作,迭代工作表和图表的工作簿

通过检查当前枚举数的类型解决

var item = wsEnumerator.Current;                   
if (item is Excel.Chart)
{
    //Do chart operations
}
else if (item is Excel.Worksheet)
{
    //Do sheetoperations
}

你可以重写整个代码(不带枚举器):

foreach (dynamic sheet in workBookIn.Sheets)
{
    if (sheet is Chart)
        // Write your code
    else if (sheet is Worksheet)
        // Write your code
}