如何隐藏excel列?

Gal*_*you 8 c# com excel


我需要完全隐藏excel列.我使用下面的代码,但没有工作:

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

我错过了什么?

B. *_*non 5

事实证明,隐藏您指定的一系列行和列并不容易。这是您的操作方法,只需两个简单的步骤:

1) 命名您的工作表:

private Worksheet _xlSheet;
Run Code Online (Sandbox Code Playgroud)

2)现在,命名一个范围,包括要隐藏的第一行和第一列,然后是要隐藏的最后一行和列,如下所示:

var hiddenRange = yourWorksheet.Range[_xlSheet.Cells[42, 1], _xlSheet.Cells[999, 13]];
hiddenRange.EntireRow.Hidden = true;
Run Code Online (Sandbox Code Playgroud)

这假设您要隐藏的第一行是 42,等等。显然您将要更改这些硬编码值。

例如,这里有一些实际代码,使用常量和变量而不是硬编码的 val,它响应一个布尔值,其值指示是否应该隐藏范围:

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;
}
Run Code Online (Sandbox Code Playgroud)

请注意,您需要引用 Microsoft.Office.Interop.Excel 程序集。


Gal*_*you 3

上面的代码片段正在运行..对不起,大家!问题是,我的同事过去常常在保存文件之前自动调整所有列,这将覆盖我上面的设置。是的,一个名为的函数CloseFile()可以完成两项工作、格式化,然后保存..许多职责,是吗?

  • 为什么自动调整和隐藏会发生冲突?我需要同时执行这两项操作 - 隐藏某些行(而不是列),但也需要使用自动调整。 (2认同)