ps.*_*ps. 4 interop excel-2007
如何使用互操作检查Excel中是否存在工作表.我尝试了以下但是如果不存在则抛出一个COMException ..是否有更好的方法来查找而不是实际查看异常
Worksheet sheet = null;
Sheets worksheets = some;
sheet = (Worksheet)worksheets.get_Item("sheetName");
if(sheet!=null)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
编辑:
感谢输入的人.
我写了一个函数
private Dictionary<string, Worksheet> GetSheetsMap(Sheets worksheets)
{
if (worksheets == null)
throw new ArgumentNullException("worksheets");
Dictionary<string, Worksheet> map = new Dictionary<string, Worksheet>(StringComparer.CurrentCultureIgnoreCase);
foreach (Worksheet s in worksheets)
{
map.Add(s.Name, s);
}
return map;
}
Run Code Online (Sandbox Code Playgroud)
我用它如下
Dictionary<string, Worksheet> sheetMap = GetSheetsMap(worksheets);
Worksheet sheet = null;
if (sheetMap.TryGetValue(ExtendedTemplateManager.BasicUserTemplate, out sheet))
{
//found it.
}
else
{
// not
}
Run Code Online (Sandbox Code Playgroud)
bry*_*esk 11
你有一个Workbook对象吗?如果是这样,您可以遍历Workbook.Sheets数组并检查每个Sheet的Name属性.
foreach (Sheet sheet in workbook.Sheets)
{
if (sheet.Name.equals("sheetName"))
{
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17817 次 |
| 最近记录: |