internal static string EscapeSheetName(this String sheetName) { if (String.IsNullOrEmpty(sheetName)) { return(sheetName); } var needEscape = (!Char.IsLetter(sheetName[0]) && sheetName[0] != '_') || XLHelper.IsValidA1Address(sheetName) || XLHelper.IsValidRCAddress(sheetName) || sheetName.Any(c => (Char.IsPunctuation(c) && c != '.' && c != '_') || Char.IsSeparator(c) || Char.IsControl(c) || Char.IsSymbol(c)); if (needEscape) { return(String.Concat('\'', sheetName.Replace("'", "''"), '\'')); } else { return(sheetName); } }