Resulta que ocultar un lapso de filas y columnas que especifique no podría ser mucho más fácil. He aquí cómo lo haces, en dos sencillos pasos:
1) el nombre la hoja de cálculo:
private Worksheet _xlSheet;
2) Ahora, el nombre de un rango, incluyendo la primera fila y la columna de ocultar y luego la última fila y para ocultar la columna, así:
var hiddenRange = yourWorksheet.Range[_xlSheet.Cells[42, 1], _xlSheet.Cells[999, 13]];
hiddenRange.EntireRow.Hidden = true;
Esto supone la primera fila que desea ocultar es 42, etc. es obvio que va a querer cambiar estos valores codificados.
A modo de ejemplo, aquí hay un código real, utilizando las constantes y variables en lugar de Vals codificados, que responde a un booleano cuyo valor indica si el rango debe estar oculto o no:
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;
}
en cuenta que necesita para hacer referencia al ensamblado Microsoft.Office.Interop.Excel.
¿Por qué colisionarían automáticamente y ocultos? Necesito hacer ambas cosas: ocultar ciertas filas (no columnas), pero también usar la función de autoajuste. –