summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/axlsx/util/constants.rb3
-rw-r--r--lib/axlsx/workbook/worksheet/worksheet.rb2
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/axlsx/util/constants.rb b/lib/axlsx/util/constants.rb
index 3f30216f..f1c00e44 100644
--- a/lib/axlsx/util/constants.rb
+++ b/lib/axlsx/util/constants.rb
@@ -277,6 +277,9 @@ module Axlsx
# worksheet maximum name length
WORKSHEET_MAX_NAME_LENGTH = 31
+ # worksheet name forbidden characters
+ WORKSHEET_NAME_FORBIDDEN_CHARS = '[]*/\?:'.freeze
+
# error messages RestrictionValidor
ERR_RESTRICTION = "Invalid Data: %s. %s must be one of %s.".freeze
diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb
index b51e2c00..cfb1d38e 100644
--- a/lib/axlsx/workbook/worksheet/worksheet.rb
+++ b/lib/axlsx/workbook/worksheet/worksheet.rb
@@ -686,7 +686,7 @@ module Axlsx
raise ArgumentError, (ERR_SHEET_NAME_EMPTY) if name.empty?
character_length = name.encode("utf-16")[1..-1].encode("utf-16").bytesize / 2
raise ArgumentError, (ERR_SHEET_NAME_TOO_LONG % name) if character_length > WORKSHEET_MAX_NAME_LENGTH
- raise ArgumentError, (ERR_SHEET_NAME_CHARACTER_FORBIDDEN % name) if '[]*/\?:'.chars.any? { |char| name.include? char }
+ raise ArgumentError, (ERR_SHEET_NAME_CHARACTER_FORBIDDEN % name) if WORKSHEET_NAME_FORBIDDEN_CHARS.chars.any? { |char| name.include? char }
name = Axlsx::coder.encode(name)
sheet_names = @workbook.worksheets.reject { |s| s == self }.map { |s| s.name }
raise ArgumentError, (ERR_DUPLICATE_SHEET_NAME % name) if sheet_names.include?(name)