Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法设置范围类c#excel互操作的隐藏属性_C#_Excel_Interop - Fatal编程技术网

无法设置范围类c#excel互操作的隐藏属性

无法设置范围类c#excel互操作的隐藏属性,c#,excel,interop,C#,Excel,Interop,我试图在Excel范围对象上设置Hide=false,并不断出现“无法设置范围类的隐藏属性”异常。我的工作表不受保护,并且我的区域中没有合并的单元格 我是这样做的: reportSheet.Unprotect("foo"); int maxUsedRow = reportSheet.UsedRange.Rows.Count; int maxUsedColumn = reportSheet.UsedRange.Columns.Count; reportSheet.C

我试图在Excel范围对象上设置Hide=false,并不断出现“无法设置范围类的隐藏属性”异常。我的工作表不受保护,并且我的区域中没有合并的单元格

我是这样做的:

    reportSheet.Unprotect("foo");
    int maxUsedRow = reportSheet.UsedRange.Rows.Count;
    int maxUsedColumn = reportSheet.UsedRange.Columns.Count;
    reportSheet.Cells.Range["A5", reportSheet.Cells[maxUsedRow, maxUsedColumn]].Hidden = false;
有趣的是: 1.在代码中的任何地方,我都没有显式地将Hidden属性设置为true,但这是编程操作后的结果。 2.如果执行以下操作,则不会出现此错误,但它也不起作用

    int rowNum = 5;
    reportSheet.Rows[rowNum].Hidden = false;
有什么想法吗



我试图在一个新项目中重新创建这种行为,我意识到现有代码中一定有设置隐藏属性的内容。我对它进行了调试,发现它是FormulaHidden属性。这是否会覆盖隐藏属性并阻止它以编程方式重置,因为它会取代隐藏属性?

我相信您需要
EntireRow
EntireClumn
属性。正如@stephernoss正确指出的那样,从本质上来说,你不能真正隐藏一个范围。可以隐藏/取消隐藏行和列,但不能隐藏单元格B34。因此,我不认为
Hidden
在任何非行或列的实体上起作用

下面是一个示例,说明如何根据代码段取消隐藏从A5到数据末尾的每一行和每一列:

int maxUsedRow = reportSheet.UsedRange.Rows.Count;
int maxUsedColumn = reportSheet.UsedRange.Columns.Count;

Excelx.Range r = reportSheet.Cells[maxUsedRow, maxUsedColumn];
reportSheet.Range["A5", r.Address].EntireColumn.Hidden = false;
reportSheet.Range["A5", r.Address].EntireRow.Hidden = false;

试着调试它,找出你要传递的另一个范围,以确保它是有效的。我认为要设置
范围的
Hidden
属性
范围必须跨越整行或整列。我不相信在您的第一个代码片段中,您跨越了整行或整列。当您选择整个第五行时,您的第二个代码段看起来更有可能工作。变化之风,我相信我在第一个代码段中传递的范围是有效的。什么会使它无效?斯蒂芬,这是我注意到的行为。如上所述,它不会导致错误。然而,它也不会影响任何变化:(…影响任何变化。。。