在没有单独迭代的情况下取消隐藏所有隐藏的 Excel 列?
Unhide all Hidden Excel Columns Without Individual Iteration?
是否可以取消隐藏 excel 工作表的所有隐藏列?
这是我取消隐藏所有隐藏行的代码。我不想另外检查使用的列范围有多远并遍历它。
foreach (string filePath in _allFiles)
{
try
{
_wb = _app.Workbooks.Open(filePath, ReadOnly: false);
foreach (Excel.Worksheet ws in _wb.Worksheets)
{
try
{
string abc = ws.Name;
ws.ShowAllData(); /* needs try catch 'cause if no filters are applied, it will throw an exception */
}
catch (Exception ex)
{ }
}
}
catch (Exception ex2)
{ }
finally
{
_wb.Save();
_wb.Close();
//_app.Quit();
//Marshal.ReleaseComObject(_app);
}
}
_app.Quit();
Marshal.ReleaseComObject(_app);
我发现要确定一个具体的动作应该怎样做,就是创建一个vba宏的过程。然后将宏转换为互操作调用。
我发现对于每个工作簿,都可以这样调用和设置(如VBA宏所示)列和行集合:
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
您仍然需要在工作簿之间迭代并调用适当的 C# 互操作方法。
是否可以取消隐藏 excel 工作表的所有隐藏列?
这是我取消隐藏所有隐藏行的代码。我不想另外检查使用的列范围有多远并遍历它。
foreach (string filePath in _allFiles)
{
try
{
_wb = _app.Workbooks.Open(filePath, ReadOnly: false);
foreach (Excel.Worksheet ws in _wb.Worksheets)
{
try
{
string abc = ws.Name;
ws.ShowAllData(); /* needs try catch 'cause if no filters are applied, it will throw an exception */
}
catch (Exception ex)
{ }
}
}
catch (Exception ex2)
{ }
finally
{
_wb.Save();
_wb.Close();
//_app.Quit();
//Marshal.ReleaseComObject(_app);
}
}
_app.Quit();
Marshal.ReleaseComObject(_app);
我发现要确定一个具体的动作应该怎样做,就是创建一个vba宏的过程。然后将宏转换为互操作调用。
我发现对于每个工作簿,都可以这样调用和设置(如VBA宏所示)列和行集合:
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
您仍然需要在工作簿之间迭代并调用适当的 C# 互操作方法。