我试着
var tempSheet = wrksheets[sheetName] as Worksheet;
其中wrksheets
是类型表
sheetName是“带空格的工作表名称”
如果sheetName没有空格,它可以正常工作,但是如果它有空格,我会得到一个说无效索引的异常。我只知道工作表的名称,不知道它的索引。我唯一能想到的是循环使用工作表并将每个工作表的名称与sheetName进行比较。效率不高但有更好的方法吗?谢谢
编辑 说表格名称是'带有空格的表格名称' 当我在工作表中引用一个单元格说A1时,它将是'带空格的工作表名称'!A1 当我在wrksheets [sheetName]中使用“'sheet name with spaces'”时,我得到一个无效的索引异常 我发现问题是我应该使用“带有空格的工作表名称”作为sheetName而不是带有单引号的原始工作表名称 所以我在从wrksheets获取工作表之前写了一个函数来删除工作表名称中的无效/转义字符,然后它工作正常。
private string RemoveEscapeCharsFromSheetName(string sheetName)
{
//TODO: should remove all chars that are not allowed in Excel Sheet Name
sheetName = sheetName.Trim(new char[] { ' ', '\'' });
return sheetName;
}
sheet = RemoveEscapeCharsFromSheetName(sheet);
var tempSheet = wrksheets[sheet] as Worksheet;
答案 0 :(得分:3)
用引号括起工作表名称。
var tempSheet = wrksheets["\"" + sheetName + "\""] as Worksheet;