一、Excel 隱藏行判斷ui
項目的 Hidden 屬性不爲 null,且 Hidden 屬性的值爲 Truespa
1 var itemList = ws.Descendants<Row>(). 2 Where((r) => r.Hidden != null && r.Hidden.Value). 3 Select(r => r.RowIndex.Value).ToList<uint>();
二、隱藏列的檢索code
檢索隱藏列的列表會更復雜一些,這是由於 Excel 會將隱藏列的組摺疊成一個元素,並會提供 Min 和 Max 屬性來描述組中的第一列和最後一列。所以,雖然檢索隱藏列的列表的代碼首先執行的操做與檢索隱藏行的代碼首先執行的操做相同,但它必須循環訪問索引值(循環訪問隱藏列集合中的每一個項,並添加介於 Min 和 Max 值(包含這兩個值)之間的每一個索引)。blog
1 var cols = ws.Descendants<Column>(). 2 Where((c) => c.Hidden != null && c.Hidden.Value); 3 foreach (Column item in cols) 4 { 5 for (uint i = item.Min.Value; i <= item.Max.Value; i++) 6 { 7 itemList.Add(i); 8 } 9 }
三、隱藏Sheet的判斷索引
Sheet的Sheet.State == null 或者 State.Value == SheetStateValues.Visible 爲顯示;it
State.Value 爲 SheetStateValues.Hidden 或者 SheetStateValues.VeryHidden 爲隱藏io
private static uint GetIndexOfFirstVisibleSheet(Sheets sheets) { uint index = 0; foreach (Sheet currentSheet in sheets.Descendants<Sheet>()) { if (currentSheet.State == null || currentSheet.State.Value == SheetStateValues.Visible) { return index; } index++; } throw new Exception("No visible sheet found."); }