如何隐藏excel列

本文关键字:excel 隐藏 何隐藏 | 更新日期: 2023-09-27 18:20:06


我需要完全隐藏一个excel列。我使用了以下代码,但没有工作:

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

我错过了什么?

如何隐藏excel列

事实证明,隐藏一系列指定的行和列非常容易。以下是您的操作方法,分为两个简单步骤:

1) 将您的工作表命名为:

private Worksheet _xlSheet;

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

var hiddenRange = yourWorksheet.Range[_xlSheet.Cells[42, 1], _xlSheet.Cells[999, 13]];
hiddenRange.EntireRow.Hidden = true;

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

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

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程序集。

上面的代码段正在工作。。对不起,伙计们!问题是,我的同事曾经在保存文件之前自动调整所有列,这将覆盖我上面的设置。是的,一个名为CloseFile()的函数可以完成两项工作,格式化然后保存。。很多责任,嗯?