class AxlsxRad::Worksheet
Attributes
oAxlsx[RW]
oAxlsxWorksheet[RW]
Public Class Methods
new(oAxlsx=nil,sName=nil,oWsConfig=nil)
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 42 def initialize(oAxlsx=nil,sName=nil,oWsConfig=nil) @oAxlsx = oAxlsx unless oWsConfig.is_a?(AxlsxRad::Config) raise ArgumentError, 'E_NO_AXLSX_RAD_WORKSHEET_CONFIG' end @oAxlsxWorksheet = @oAxlsx.workbook.add_worksheet(:name => sName) @oWsConfig = oWsConfig self.loadWsConfig( oWsConfig ) @bHasHead = false @dKeysUnique = {} end
Public Instance Methods
addDocument(oJsondoc=nil)
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 61 def addDocument(oJsondoc=nil) unless @bHasHead aStyles = getStylesForHeader aValues = oJsondoc.getDescArrayForProperties( @aColumns ) if aStyles.is_a?(Fixnum) || aStyles.is_a?(Array) @oAxlsxWorksheet.add_row aValues, :style => aStyles else @oAxlsxWorksheet.add_row aValues end @bHasHead = true end unless @oWsConfig.xxKeyUnique.nil? xxKeyUniqueValue = oJsondoc.getProp( @oWsConfig.xxKeyUnique ) if @dKeysUnique.has_key?( xxKeyUniqueValue ) return else @dKeysUnique[ xxKeyUniqueValue ] = 1 end end aValues = oJsondoc.getValArrayForProperties( @aColumns ) aStyles = getStylesForDocument( oJsondoc ) if aStyles.is_a?(Fixnum) || aStyles.is_a?(Array) @oAxlsxWorksheet.add_row aValues, :style => aStyles else @oAxlsxWorksheet.add_row aValues end end
loadWsConfig(oWsConfig=nil)
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 54 def loadWsConfig(oWsConfig=nil) @aColumns = oWsConfig.aColumns || [] @dStylesCfg = oWsConfig.dStylesCfg.is_a?(Hash) ? oWsConfig.dStylesCfg : {} @dStylesAxlsx = getStylesAxlsx( @oAxlsxWorksheet, @dStylesCfg ) @dStylesColumns = getStylesColumns( @dStylesAxlsx, @aColumns ) end
Private Instance Methods
getStylesArrayForHash(dStyles={})
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 136 def getStylesArrayForHash(dStyles={}) if dStyles.is_a?(Hash) && dStyles.keys.length == 0 return nil elsif ! dStyles.is_a?(Hash) return nil end yStyleBg = dStyles.has_key?(:bgstyle) ? dStyles[:bgstyle] : nil yStyleBg = yStyleBg.to_sym if yStyleBg.is_a?(String) aStyles = [] if dStyles.has_key?(:properties) && dStyles[:properties].is_a?(Hash) \ && dStyles[:properties].keys.length > 0 @aColumns.each do |yColumn| if dStyles[:properties].has_key?(yColumn) yStyleCell = dStyles[:properties][yColumn] yStyleCell = yStyleCell.to_sym if yStyleCell.is_a?(String) aStyles.push( @dStylesAxlsx[ yStyleCell ] ) elsif yStyleBg aStyles.push( @dStylesAxlsx[ yStyleBg ] ) else aStyles.push( nil ) end end elsif yStyleBg aStyles = @dStylesColumns[yStyleBg] else aStyles = nil end return aStyles end
getStylesAxlsx(oAxlsxWorksheet=nil,dStylesCfg=nil)
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 98 def getStylesAxlsx(oAxlsxWorksheet=nil,dStylesCfg=nil) dStylesAxlsx = {} dStylesCfg.keys.each do |yStyle| dStylesAxlsx[ yStyle ] = oAxlsxWorksheet.styles.add_style( @dStylesCfg[ yStyle ] ) end return dStylesAxlsx end
getStylesColumns(dStylesAxlsx=nil,aColumns=nil)
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 106 def getStylesColumns(dStylesAxlsx=nil,aColumns=nil) dStylesColumns = {} dStylesAxlsx.keys.each do |yStyle| dStylesColumns[yStyle] ||= [] oStyleAxlsx = dStylesAxlsx[yStyle] (0..aColumns.length-1).each do |i| dStylesColumns[yStyle].push( oStyleAxlsx ) end end return dStylesColumns end
getStylesForDocument(oJsondoc=nil)
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 127 def getStylesForDocument(oJsondoc=nil) aStyle = nil if @oWsConfig.is_a?(AxlsxRad::Config) dStyle = @oWsConfig.getStylesForDocument(oJsondoc) aStyle = getStylesArrayForHash( dStyle ) end return aStyle end
getStylesForHeader()
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 118 def getStylesForHeader() aStyles = nil if @oWsConfig.is_a?(AxlsxRad::Config) dStyles = @oWsConfig.getStylesForHeader aStyles = getStylesArrayForHash( dStyles ) end return aStyles end
symbolizeArray(aAny=[])
click to toggle source
# File lib/axlsx_rad/workbook.rb, line 91 def symbolizeArray(aAny=[]) (0..aAny.length-1).each do |i| aAny[i] = aAny[i].to_sym if aAny[i].is_a?(String) end return aAny end