Как скрыть колонку Excel? - PullRequest
       10

Как скрыть колонку Excel?

8 голосов
/ 11 января 2012


Мне нужно полностью скрыть столбец Excel. Я использовал приведенный ниже код, но не работал:

public void Hide (params string[] columns)
{
    foreach(var column in columns)
    {
        Range range = (Range) oSheet.Columns[column, Type.Missing];
        range.EntireColumn.Hidden = true;
    }
}

Чего мне не хватает?

Ответы [ 2 ]

4 голосов
/ 15 ноября 2015

Оказывается, что скрыть диапазон строк и столбцов, которые вы указали, не намного проще.Вот как это сделать, выполнив два простых шага:

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.

3 голосов
/ 11 января 2012

Приведенный выше фрагмент работает .. извините, ребята!Проблема заключалась в том, что мой коллега использовал автоматическую подгонку всех столбцов перед сохранением файла, который переопределит мои настройки выше.Да, функция с именем CloseFile(), которая выполняет две работы, форматирует, а затем сохраняет .. много обязанностей, а?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...