summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-12-05 09:39:28 +0900
committerRandy Morgan <[email protected]>2011-12-05 09:39:28 +0900
commit6fbb4d321a326f63011099f4d1f93aa5c842141b (patch)
treeeee0ef847620fa383a0afd5ca484e01743b87041 /lib
parentbbb2b344af268a7415e1846da779495d7035d921 (diff)
downloadcaxlsx-6fbb4d321a326f63011099f4d1f93aa5c842141b.tar.gz
caxlsx-6fbb4d321a326f63011099f4d1f93aa5c842141b.zip
ensure that worksheet names are unique in the workbook
Diffstat (limited to 'lib')
-rw-r--r--lib/axlsx/util/constants.rb2
-rw-r--r--lib/axlsx/workbook/workbook.rb11
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/axlsx/util/constants.rb b/lib/axlsx/util/constants.rb
index 4f1cb561..e7bfca88 100644
--- a/lib/axlsx/util/constants.rb
+++ b/lib/axlsx/util/constants.rb
@@ -210,4 +210,6 @@ module Axlsx
# error message for RegexValidator
ERR_REGEX = "Invalid Data. %s does not match %s."
+
+ ERR_DUPLICATE_SHEET_NAME = "There is already a worksheet in this workbook named '%s'. Please use a unique name"
end
diff --git a/lib/axlsx/workbook/workbook.rb b/lib/axlsx/workbook/workbook.rb
index e0031d15..b1cbac89 100644
--- a/lib/axlsx/workbook/workbook.rb
+++ b/lib/axlsx/workbook/workbook.rb
@@ -129,6 +129,17 @@ require 'axlsx/workbook/worksheet/worksheet.rb'
r
end
+ # returns a range of cells in a worksheet
+ # @params [String] cell_def The excel style reference defining the worksheet and cells. The range must specify the sheet to
+ # retrieve the cells from. e.g. range('Sheet1!A1:B2') will return an array of four cells [A1, A2, B1, B2] while range('Sheet1!A1') will return a single Cell.
+ # @return [Cell, Array]
+ def [](cell_def)
+ sheet_name = cell_def.split('!')[0] if cell_def.match('!')
+ worksheet = self.worksheets.select { |s| s.name == sheet_name }.first
+ raise ArgumentError, 'Unknown Sheet' unless sheet_name && worksheet.is_a?(Worksheet)
+ worksheet[cell_def.gsub(/.+!/,"")]
+ end
+
# Serializes the workbook document
# @return [String]
def to_xml()