あなたが指定した行と列の範囲を隠すことは、はるかに簡単なことではないことが判明しました。
1)ワークシートに名前を付け:ここでは、2つの簡単なステップで、あなたがそれを行う方法です
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アセンブリを参照します。
なぜ自動フィットと非表示が衝突するのですか?私は両方を行う必要があります - 特定の行(列ではありません)を非表示にするだけでなく、autofitを使用します。 –