2017-08-11 86 views
0

我正在使用ClosedXML。我想遍歷所有可用的工作表&在條件完成後刪除它們。但是當我檢查表單是否存在時,拋出異常。下面是我的代碼。請幫助我如何檢查工作表的有效性。ClosedXML:如何檢查工作表是否存在?

   for (int i = 1; i <= totalWorkSheets; i++) 
       { 
        if (wb.Worksheet(i)!=null) 
        { 
         if (wb.Worksheet(i).Position != 1) 
         { 
          wb.Worksheet(i).Delete(); 
         } 
        } 
       } 
+0

基本上它拋出異常,說表我檢查不存在。 ex.Message =「沒有與該位置關聯的工作表。」 – Basha

+0

您在迭代時正在修改集合。這是允許的嗎?您可能希望在刪除時按相反順序進行迭代。 – BurnsBA

+0

感謝BurnsBA。這有助於。儘管您提出的解決方案是通用集合,但我發現很難申請ClosedXML工作表列表。但它在這裏也能正常工作! – Basha

回答

0

正如@BurnsBA說迭代它向後讓你不修改集合...

for (int i = totalWorkSheets -1 ; i >= 0; i--) 
{ 
    if (wb.Worksheet(i)!=null) 
    { 
     if (wb.Worksheet(i).Position != 1) 
     { 
      wb.Worksheet(i).Delete(); 
     } 
    } 
}