c# - 如何隐藏excel列?

标签 c# excel com


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

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

我错过了什么?

最佳答案

事实证明,隐藏您指定的一系列行和列再简单不过了。以下是您的操作方法,只需两个简单的步骤:

1) 为您的工作表命名:

private Worksheet _xlSheet;

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

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

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

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

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

关于c# - 如何隐藏excel列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8825133/

相关文章:

c# - 如何使用 DateTime.DaysInMonth 将一个月中的天数填充到组合框

C#.NET 文件下载仅适用于 IE

c# - 在 javascript 中使用 C# Response.Redirect 重定向到另一个页面

security - 用于宏分发的签名证书

c# - 无法访问 Azure 上发布的 Web api

excel - 尝试使用 Microsoft.Office.Interop.Excel.Workbooks.Open() 打开 Excel 时出现异常 HResult 0x800a03ec

excel - 是否有可以检查 : "10" (or any number) in "1,3,5-9,13,16-20,23"? 的内置 excel 函数

asp.net - 为什么我必须运行 x86 控制台应用程序才能看到 COM DLL,而 ASP.NET 可以运行 AnyCPU?

php - 在 WAMP 64 位上将 64 位 PHP 转换为 32 位

c++ - 如何从 ProgID 或 CLSID 获取类型库(不加载 COM 对象)?