Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当sheetname以编程方式包含空格时,如何从工作表中获取Excel工作表_C#_Excel_Worksheet - Fatal编程技术网

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

C# 当sheetname以编程方式包含空格时,如何从工作表中获取Excel工作表,c#,excel,worksheet,C#,Excel,Worksheet,我试着 var tempSheet = wrksheets[sheetName] as Worksheet; 其中,wrksheets为图纸类型 sheetName是“带空格的图纸名称” 若sheetName并没有空间,那个么它可以正常工作,但若它有空间,那个么我会得到一个异常,表示索引无效。我只知道工作表的名称,不知道它的索引。我能想到的唯一一件事就是循环浏览图纸,并将每张图纸的名称与图纸名称进行比较。效率不高,但有更好的方法吗?谢谢 编辑 假设图纸名称为“带空格的图纸名称” 当我引用工

我试着

var tempSheet = wrksheets[sheetName] as Worksheet;  
其中,
wrksheets
为图纸类型 sheetName是“带空格的图纸名称”

若sheetName并没有空间,那个么它可以正常工作,但若它有空间,那个么我会得到一个异常,表示索引无效。我只知道工作表的名称,不知道它的索引。我能想到的唯一一件事就是循环浏览图纸,并将每张图纸的名称与图纸名称进行比较。效率不高,但有更好的方法吗?谢谢

编辑 假设图纸名称为“带空格的图纸名称” 当我引用工作表中的单元格(如A1)时,它将是“带空格的工作表名称”!A1 当我在wrksheets[sheetName]中使用“'sheet name with spaces'”时,我得到一个无效的索引异常 我发现问题是我应该使用“带空格的工作表名称”作为工作表名称,而不是使用带单引号的原始工作表名称。
所以,在从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;

将工作表名称用引号括起来

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

你能提供一个真实的例子吗?因为我对你解释的场景从来没有遇到过问题,除非我误解了你的场景。撇开主要问题不谈,我看不出在你的工作表中循环有什么问题。即使你有几百个(我很怀疑是几十个),影响也可以忽略不计。你有比这一行更多的代码吗。。?这有助于没有人考虑向你提供足够的建议和/或帮助