事實證明,隱藏您指定的行和列的範圍並不是一件容易的事。這裏是你如何做到這一點,在兩個簡單的步驟:
1)命名工作表:
private Worksheet _xlSheet;
2)現在,命名範圍,包括第一行和列隱藏,然後在最後一排,並列隱藏起來,就像這樣:
var hiddenRange = yourWorksheet.Range[_xlSheet.Cells[42, 1], _xlSheet.Cells[999, 13]];
hiddenRange.EntireRow.Hidden = true;
這是假設你想要隱藏的第一行是42,等等。很明顯,你會想改變這些硬編碼值。
舉個例子,這裏有一些實際的代碼,使用常量和變量,而不是硬編碼的丘壑,這是爲了響應一個布爾值,其值指示範圍是否應被隱藏或不:
private bool _hide;
private int _curTopRow;
private static readonly int ITEMDESC_COL = 1;
private static readonly int TOTALS_COL = 16;
. . .
if (_hide)
{
var hiddenRange = _xlSheet.Range[_xlSheet.Cells[_curTopRow, ITEMDESC_COL], _xlSheet.Cells[_curTopRow+3, TOTALS_COL]];
hiddenRange.EntireRow.Hidden = true;
}
請注意,您需要以引用Microsoft.Office.Interop.Excel程序集。
爲什麼會自動調整和隱藏碰撞?我需要做兩個 - 隱藏某些行(不是列),但也使用自動調整。 – 2015-11-12 16:04:13