Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
如何从Excel工作表中删除隐藏的列/行?_Excel_Office Interop_Excel Interop - Fatal编程技术网

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

如何从Excel工作表中删除隐藏的列/行?,excel,office-interop,excel-interop,Excel,Office Interop,Excel Interop,我正在尝试从Excel工作表中删除所有隐藏列,并且我正在使用Microsoft Office Interop。 问题是当我遍历列时,我没有找到列隐藏属性集。 我不知道我做错了什么。 任何帮助都将不胜感激 int columnCount = wsCurrent.UsedRange.Columns.Count; Excel.Worksheet wsCurrent = (Excel.Worksheet)wsEnumerator.Current; for (int c = 1; c <= colu

我正在尝试从Excel工作表中删除所有隐藏列,并且我正在使用Microsoft Office Interop。 问题是当我遍历列时,我没有找到列隐藏属性集。 我不知道我做错了什么。 任何帮助都将不胜感激

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");
}
int columnCount=wsCurrent.UsedRange.Columns.Count;
Excel.Worksheet wsCurrent=(Excel.Worksheet)wsEnumerator.Current;

对于(int c=1;c,代码没有使用的“r”变量声明。 使用下一个代码迭代单元格并确定单元格是否隐藏:

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*/
        }
    }
}
const double SIZE=0.5;
int cols=sheet.UsedRange.Columns.Count;
int rows=sheet.UsedRange.rows.Count;
范围usedRange=sheet.usedRange;

对于(int iCol=1;iCol感谢您提到“r”,将其改为1。我尝试了您的代码,调试时,它为隐藏单元格提供的高度和宽度与为可见单元格提供的高度和宽度相同。其次,我觉得这样做效率不高。如果有100张工作表,并且每张工作表都有数千行和数千列。可能是您的meeni隐藏列或隐藏行(相应地隐藏单元格)的ng与我的不同。我检查了代码,cellRng.ColumnWidth为隐藏列中的单元格返回0。我可以给您一个VBA代码解决方案..=/您可以共享您的解决方案,这可能会有所帮助