如何从Excel工作表中删除隐藏的列/行?

我想从Excel工作表中删除所有隐藏的列,我正在使用Microsoft Office Interop 。 问题是当我遍历列我没有find列隐藏属性设置。 我不知道我在这里做错了什么。 任何帮助,将不胜感激

 int columnCount = wsCurrent.UsedRange.Columns.Count; Excel.Worksheet wsCurrent = (Excel.Worksheet)wsEnumerator.Current; for (int c = 1; c <= columnCount; c++) { if (wsCurrent.UsedRange.get_Range((Excel.Range)wsCurrent.UsedRange.Cells[1, c], (Excel.Range)wsCurrent.UsedRange.Cells[wsCurrent.Rows.Count, c]).EntireColumn.Hidden) Console.WriteLine("Column Hidden"); } 

顺便说一下,你的代码没有你正在使用的“r”variables声明。 使用下一个代码来迭代单元格,并确定单元格是否隐藏:

 const double SIZE = 0.5; int cols = sheet.UsedRange.Columns.Count; int rows = sheet.UsedRange.Rows.Count; Range usedRange = sheet.UsedRange; for (int iCol = 1; iCol <= cols; iCol++) { for (int jRow = 1; jRow <= rows; jRow++) { Range cellRng = (Excel.Range)usedRange.Cells[jRow, iCol]; if (double.Parse(cellRng.ColumnWidth.ToString()) <= SIZE || double.Parse(cellRng.RowHeight.ToString()) <= SIZE) { /*do your stuff here*/ } } } 

就像这样。 因为单元格可能几乎被隐藏起来,所以需要不变的大小,但是看起来它会被隐藏起来。 代码必须优化,但概念是清晰的。