当工作表名称以编程方式包含空格时,如何从工作表中获取Excel工作表

时间:2012-12-17 18:03:10

标签: c# excel worksheet

我试着

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;

1 个答案:

答案 0 :(得分:3)

用引号括起工作表名称。

var tempSheet = wrksheets["\"" + sheetName + "\""] as Worksheet;