C# 是否取消隐藏所有隐藏的Excel列而不进行单独迭代?
是否可以取消隐藏excel工作表的所有隐藏列 这是我取消隐藏所有隐藏行的代码。我不想额外检查所使用的列范围有多远,并对其进行迭代C# 是否取消隐藏所有隐藏的Excel列而不进行单独迭代?,c#,excel,vsto,C#,Excel,Vsto,是否可以取消隐藏excel工作表的所有隐藏列 这是我取消隐藏所有隐藏行的代码。我不想额外检查所使用的列范围有多远,并对其进行迭代 foreach (string filePath in _allFiles) { try { _wb = _app.Workbooks.Open(filePath, ReadOnly: false); foreach (Excel.Work
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#interop方法。标记Rows.EntireRow.Hidden=false不起作用。但对于专栏来说,它就像一种魅力,谢谢!ws.ShowAllData();对于行来说效果很好。