diff options
| author | Randy Morgan <[email protected]> | 2011-12-08 22:33:36 +0900 |
|---|---|---|
| committer | Randy Morgan <[email protected]> | 2011-12-08 22:33:36 +0900 |
| commit | 208e08f46ca4e69dd5ecf6316ec9b877c86a1b3e (patch) | |
| tree | fd4768bd3aaafab9fe44ee8621e7fa75b111f36f | |
| parent | 8511700b46f68e54284331cd0b635fb109596779 (diff) | |
| download | caxlsx-208e08f46ca4e69dd5ecf6316ec9b877c86a1b3e.tar.gz caxlsx-208e08f46ca4e69dd5ecf6316ec9b877c86a1b3e.zip | |
cleaning up xml namespace usage in drawings and improving looks for charts in excel 2011
25 files changed, 175 insertions, 140 deletions
diff --git a/lib/axlsx/drawing/axis.rb b/lib/axlsx/drawing/axis.rb index b89ef70c..a8bd3afa 100644 --- a/lib/axlsx/drawing/axis.rb +++ b/lib/axlsx/drawing/axis.rb @@ -48,8 +48,8 @@ module Axlsx @axId = axId @crossAx = crossAx @format_code = "General" - @scaling = Scaling.new(:orientation=>:minMax) - self.axPos = :l + @scaling = Scaling.new(:orientation=>:minMax) + self.axPos = :b self.tickLblPos = :nextTo self.format_code = "General" self.crosses = :autoZero @@ -67,7 +67,7 @@ module Axlsx # The number format format code for this axis # default :General - def format_code=(v) Axlsx::validate_string(v); @formatCode = v; end + def format_code=(v) Axlsx::validate_string(v); @format_code = v; end # specifies how the perpendicular axis is crossed # must be one of [:autoZero, :min, :max] @@ -77,14 +77,17 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:axId', :val=>@axId) + xml.axId :val=>@axId @scaling.to_xml(xml) - xml.send('c:axPos', :val=>@axPos) - xml.send('c:majorGridlines') - xml.send('c:numFmt', :formatCode => @format_code, :sourceLinked=>"1") - xml.send('c:tickLblPos', :val=>@tickLblPos) - xml.send('c:crossAx', :val=>@crossAx) - xml.send('c:crosses', :val=>@crosses) + xml.delete :val=>0 + xml.axPos :val=>@axPos + xml.majorGridlines + xml.numFmt :formatCode => @format_code, :sourceLinked=>"1" + xml.majorTickMark :val=>"none" + xml.minorTickMark :val=>"none" + xml.tickLblPos :val=>@tickLblPos + xml.crossAx :val=>@crossAx + xml.crosses :val=>@crosses end end end diff --git a/lib/axlsx/drawing/bar_3D_chart.rb b/lib/axlsx/drawing/bar_3D_chart.rb index 6d74022f..9230a9b5 100644 --- a/lib/axlsx/drawing/bar_3D_chart.rb +++ b/lib/axlsx/drawing/bar_3D_chart.rb @@ -65,7 +65,7 @@ module Axlsx @catAxId = rand(8 ** 8) @valAxId = rand(8 ** 8) @catAxis = CatAxis.new(@catAxId, @valAxId) - @valAxis = ValAxis.new(@valAxId, @catAxId) + @valAxis = ValAxis.new(@valAxId, @catAxId, :tickLblPos => :low) super(frame, options) @series_type = BarSeries @view3D = View3D.new({:rAngAx=>1}.merge(options)) @@ -108,17 +108,25 @@ module Axlsx # @return [String] def to_xml super() do |xml| - xml.send('c:bar3DChart') { - xml.send('c:barDir', :val => barDir) - xml.send('c:grouping', :val=>grouping) - xml.send('c:varyColors', :val=>1) + xml.bar3DChart { + xml.barDir :val => barDir + xml.grouping :val=>grouping + xml.varyColors :val=>1 @series.each { |ser| ser.to_xml(xml) } - xml.send('c:gapWidth', :val=>@gapWidth) unless @gapWidth.nil? - xml.send('c:gapDepth', :val=>@gapDepth) unless @gapDepth.nil? - xml.send('c:shape', :val=>@shape) unless @shape.nil? - xml.send('c:axId', :val=>@catAxId) - xml.send('c:axId', :val=>@valAxId) - xml.send('c:axId', :val=>0) + xml.dLbls { + xml.showLegendKey :val=>0 + xml.showVal :val=>0 + xml.showCatName :val=>0 + xml.showSerName :val=>0 + xml.showPercent :val=>0 + xml.showBubbleSize :val=>0 + } + xml.gapWidth :val=>@gapWidth unless @gapWidth.nil? + xml.gapDepth :val=>@gapDepth unless @gapDepth.nil? + xml.shape :val=>@shape unless @shape.nil? + xml.axId :val=>@catAxId + xml.axId :val=>@valAxId + xml.axId :val=>0 } @catAxis.to_xml(xml) @valAxis.to_xml(xml) diff --git a/lib/axlsx/drawing/bar_series.rb b/lib/axlsx/drawing/bar_series.rb index 129a13e8..5acbe55f 100644 --- a/lib/axlsx/drawing/bar_series.rb +++ b/lib/axlsx/drawing/bar_series.rb @@ -46,7 +46,7 @@ module Axlsx super(xml) do |xml_inner| @labels.to_xml(xml_inner) unless @labels.nil? @data.to_xml(xml_inner) unless @data.nil? - xml_inner.send('c:shape', :val=>@shape) + xml_inner.shape :val=>@shape end end diff --git a/lib/axlsx/drawing/cat_axis.rb b/lib/axlsx/drawing/cat_axis.rb index 54066aa0..5490c5b4 100644 --- a/lib/axlsx/drawing/cat_axis.rb +++ b/lib/axlsx/drawing/cat_axis.rb @@ -29,7 +29,7 @@ module Axlsx # @option options [Symbol] lblAlgn # @option options [Integer] lblOffset def initialize(axId, crossAx, options={}) - self.auto = true + self.auto = 1 self.lblAlgn = :ctr self.lblOffset = "100%" super(axId, crossAx, options) @@ -50,11 +50,11 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:catAx') { + xml.catAx { super(xml) - xml.send('c:auto', :val=>@auto) - xml.send('c:lblAlgn', :val=>@lblAlgn) - xml.send('c:lblOffset', :val=>@lblOffset) + xml.auto :val=>@auto + xml.lblAlgn :val=>@lblAlgn + xml.lblOffset :val=>@lblOffset } end end diff --git a/lib/axlsx/drawing/cat_axis_data.rb b/lib/axlsx/drawing/cat_axis_data.rb index 60e6ee9d..28fe9750 100644 --- a/lib/axlsx/drawing/cat_axis_data.rb +++ b/lib/axlsx/drawing/cat_axis_data.rb @@ -14,15 +14,15 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:cat') { - xml.send('c:strRef') { - xml.send('c:f', Axlsx::cell_range(@list)) - xml.send('c:strCache') { - xml.send('c:ptCount', :val=>size) + xml.cat { + xml.strRef { + xml.f Axlsx::cell_range(@list) + xml.strCache { + xml.ptCount :val=>size each_with_index do |item, index| v = item.is_a?(Cell) ? item.value : item - xml.send('c:pt', :idx=>index) { - xml.send('c:v', v) + xml.pt(:idx=>index) { + xml.v v } end } diff --git a/lib/axlsx/drawing/chart.rb b/lib/axlsx/drawing/chart.rb index cf03c088..d4e02991 100644 --- a/lib/axlsx/drawing/chart.rb +++ b/lib/axlsx/drawing/chart.rb @@ -48,6 +48,7 @@ module Axlsx @series = SimpleTypedList.new Series @show_legend = true @series_type = Series + @title = Title.new options.each do |o| self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}=" end @@ -72,11 +73,14 @@ module Axlsx # @param [String, Cell] v # @return [Title] def title=(v) - v = Title.new(v) if v.is_a?(String) || v.is_a?(Cell) - DataTypeValidator.validate "#{self.class}.title", Title, v - @title = v + DataTypeValidator.validate "#{self.class}.title", [String, Cell], v + if v.is_a?(String) + @title.text = v + elsif v.is_a?(Cell) + @title.cell = v + end end - + # Show the legend in the chart # @param [Boolean] v # @return [Boolean] @@ -112,23 +116,33 @@ module Axlsx # serializes the chart def to_xml builder = Nokogiri::XML::Builder.new(:encoding => ENCODING) do |xml| - xml.send('c:chartSpace',:'xmlns:c' => XML_NS_C, :'xmlns:a' => XML_NS_A) { - xml.send('c:date1904', :val=>Axlsx::Workbook.date1904) - xml.send('c:style', :val=>style) - xml.send('c:chart') { - @title.to_xml(xml) unless @title.nil? + xml.send('c:chartSpace', :'xmlns:c' => XML_NS_C, :'xmlns:a' => XML_NS_A) { + xml[:c].date1904 :val => Axlsx::Workbook.date1904 + xml[:c].style :val=>style + xml[:c].chart { + @title.to_xml(xml) + xml.autoTitleDeleted :val=>0 @view3D.to_xml(xml) unless @view3D.nil? - xml.send('c:plotArea') { - xml.send('c:layout') + + xml.floor { xml.thickness(:val=>0) } + xml.sideWall { xml.thickness(:val=>0) } + xml.backWall { xml.thickness(:val=>0) } + xml.plotArea { + xml.layout yield xml if block_given? } if @show_legend - xml.send('c:legend') { - xml.send('c:legendPos', :val => "r") - xml.send('c:layout') + xml.legend { + xml.legendPos :val => "r" + xml.layout + xml.overlay :val => 0 } - end + end + xml.plotVisOnly :val => 1 + xml.dispBlanksAs :val => :zero + xml.showDLblsOverMax :val => 1 } + } end builder.to_xml diff --git a/lib/axlsx/drawing/drawing.rb b/lib/axlsx/drawing/drawing.rb index 6e41f6a5..6d779f7a 100644 --- a/lib/axlsx/drawing/drawing.rb +++ b/lib/axlsx/drawing/drawing.rb @@ -127,7 +127,7 @@ module Axlsx # @return [String] def to_xml builder = Nokogiri::XML::Builder.new(:encoding => ENCODING) do |xml| - xml.send('xdr:wsDr', :'xmlns:xdr'=>XML_NS_XDR, :'xmlns:a'=>XML_NS_A) { + xml.send('xdr:wsDr', :'xmlns:xdr'=>XML_NS_XDR, :'xmlns:a'=>XML_NS_A, :'xmlns:c'=>XML_NS_C) { anchors.each {|anchor| anchor.to_xml(xml) } } end diff --git a/lib/axlsx/drawing/graphic_frame.rb b/lib/axlsx/drawing/graphic_frame.rb index 0b1f6d14..ae877187 100644 --- a/lib/axlsx/drawing/graphic_frame.rb +++ b/lib/axlsx/drawing/graphic_frame.rb @@ -31,18 +31,18 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('xdr:graphicFrame') { - xml.send('xdr:nvGraphicFramePr') { - xml.send('xdr:cNvPr', :id=>2, :name=>chart.title) - xml.send('xdr:cNvGraphicFramePr') + xml.graphicFrame { + xml.nvGraphicFramePr { + xml.cNvPr :id=>2, :name=>chart.title + xml.cNvGraphicFramePr } - xml.send('xdr:xfrm') { - xml.send('a:off', :x=>0, :y=>0) - xml.send('a:ext', :cx=>0, :cy=>0) + xml.xfrm { + xml[:a].off(:x=>0, :y=>0) + xml[:a].ext :cx=>0, :cy=>0 } - xml.send('a:graphic') { - xml.send('a:graphicData', :uri=>XML_NS_C) { - xml.send('c:chart', :'xmlns:c'=>XML_NS_C, :'xmlns:r'=>XML_NS_R, :'r:id'=>rId) + xml[:a].graphic { + xml.graphicData(:uri=>XML_NS_C) { + xml[:c].chart :'xmlns:c'=>XML_NS_C, :'xmlns:r'=>XML_NS_R, :'r:id'=>rId } } } diff --git a/lib/axlsx/drawing/line_3D_chart.rb b/lib/axlsx/drawing/line_3D_chart.rb index af0cac86..6dc3a0e1 100644 --- a/lib/axlsx/drawing/line_3D_chart.rb +++ b/lib/axlsx/drawing/line_3D_chart.rb @@ -88,14 +88,22 @@ module Axlsx # @return [String] def to_xml super() do |xml| - xml.send('c:line3DChart') { - xml.send('c:grouping', :val=>grouping) - xml.send('c:varyColors', :val=>1) + xml.line3DChart { + xml.grouping :val=>grouping + xml.varyColors :val=>1 @series.each { |ser| ser.to_xml(xml) } - xml.send('c:gapDepth', :val=>@gapDepth) unless @gapDepth.nil? - xml.send('c:axId', :val=>@catAxId) - xml.send('c:axId', :val=>@valAxId) - xml.send('c:axId', :val=>@serAxId) + xml.dLbls { + xml.showLegendKey :val=>0 + xml.showVal :val=>0 + xml.showCatName :val=>0 + xml.showSerName :val=>0 + xml.showPercent :val=>0 + xml.showBubbleSize :val=>0 + } + xml.gapDepth :val=>@gapDepth unless @gapDepth.nil? + xml.axId :val=>@catAxId + xml.axId :val=>@valAxId + xml.axId :val=>@serAxId } @catAxis.to_xml(xml) @valAxis.to_xml(xml) diff --git a/lib/axlsx/drawing/marker.rb b/lib/axlsx/drawing/marker.rb index 6cd7acd6..248b8b6e 100644 --- a/lib/axlsx/drawing/marker.rb +++ b/lib/axlsx/drawing/marker.rb @@ -53,7 +53,7 @@ module Axlsx # @return [String] def to_xml(xml) [:col, :colOff, :row, :rowOff].each do |k| - xml.send("xdr:#{k.to_s}", self.send(k)) + xml.send(k.to_sym, self.send(k)) end end end diff --git a/lib/axlsx/drawing/one_cell_anchor.rb b/lib/axlsx/drawing/one_cell_anchor.rb index 0626502e..1c7005fb 100644 --- a/lib/axlsx/drawing/one_cell_anchor.rb +++ b/lib/axlsx/drawing/one_cell_anchor.rb @@ -64,13 +64,13 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('xdr:oneCellAnchor') { - xml.send('xdr:from') { + xml[:xdr].oneCellAnchor { + xml.from { from.to_xml(xml) } - xml.send('xdr:ext', ext) + xml.ext ext @object.to_xml(xml) - xml.send('xdr:clientData') + xml.clientData } end diff --git a/lib/axlsx/drawing/pic.rb b/lib/axlsx/drawing/pic.rb index 4d970e32..250e3e16 100644 --- a/lib/axlsx/drawing/pic.rb +++ b/lib/axlsx/drawing/pic.rb @@ -125,26 +125,26 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('xdr:pic') { - xml.send('xdr:nvPicPr') { - xml.send('xdr:cNvPr', :id=>"2", :name=>name, :descr=>descr) - xml.send('xdr:cNvPicPr') { + xml.pic { + xml.nvPicPr { + xml.cNvPr :id=>"2", :name=>name, :descr=>descr + xml.cNvPicPr { picture_locking.to_xml(xml) } } - xml.send('xdr:blipFill') { - xml.send('a:blip', :'xmlns:r' => XML_NS_R, :'r:embed'=>"rId1") - xml.send('a:stretch') { - xml.send('a:fillRect') + xml.blipFill { + xml[:a].blip :'xmlns:r' => XML_NS_R, :'r:embed'=>"rId1" + xml[:a].stretch { + xml.fillRect } } - xml.send('xdr:spPr') { - xml.send('a:xfrm') { - xml.send('a:off', :x=>0, :y=>0) - xml.send('a:ext', :cx=>2336800, :cy=>2161540) + xml.spPr { + xml[:a].xfrm { + xml.off :x=>0, :y=>0 + xml.ext :cx=>2336800, :cy=>2161540 } - xml.send('a:prstGeom', :prst=>:rect) { - xml.send('a:avLst') + xml[:a].prstGeom(:prst=>:rect) { + xml.avLst } } } diff --git a/lib/axlsx/drawing/pie_3D_chart.rb b/lib/axlsx/drawing/pie_3D_chart.rb index 3cd6e377..5f476a99 100644 --- a/lib/axlsx/drawing/pie_3D_chart.rb +++ b/lib/axlsx/drawing/pie_3D_chart.rb @@ -31,8 +31,8 @@ module Axlsx # @return [String] def to_xml super() do |xml| - xml.send('c:pie3DChart') { - xml.send('c:varyColors', :val=>1) + xml[:c].pie3DChart { + xml[:c].varyColors :val=>1 @series.each { |ser| ser.to_xml(xml) } } end diff --git a/lib/axlsx/drawing/pie_series.rb b/lib/axlsx/drawing/pie_series.rb index f72802f6..ed9be40e 100644 --- a/lib/axlsx/drawing/pie_series.rb +++ b/lib/axlsx/drawing/pie_series.rb @@ -38,7 +38,7 @@ module Axlsx # @return [String] def to_xml(xml) super(xml) do |xml_inner| - xml_inner.send('c:explosion', :val=>@explosion) unless @explosion.nil? + xml_inner.explosion :val=>@explosion unless @explosion.nil? @labels.to_xml(xml_inner) unless @labels.nil? @data.to_xml(xml_inner) unless @data.nil? end diff --git a/lib/axlsx/drawing/scaling.rb b/lib/axlsx/drawing/scaling.rb index e89d00f1..0f267676 100644 --- a/lib/axlsx/drawing/scaling.rb +++ b/lib/axlsx/drawing/scaling.rb @@ -47,11 +47,11 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:scaling') { - xml.send('c:logBase', :val=> @logBase) unless @logBase.nil? - xml.send('c:orientation', :val=> @orientation) unless @orientation.nil? - xml.send('c:min', :val => @min) unless @min.nil? - xml.send('c:max', :val => @max) unless @max.nil? + xml[:c].scaling { + xml[:c].logBase :val=> @logBase unless @logBase.nil? + xml[:c].orientation :val=> @orientation unless @orientation.nil? + xml[:c].min :val => @min unless @min.nil? + xml[:c].max :val => @max unless @max.nil? } end diff --git a/lib/axlsx/drawing/ser_axis.rb b/lib/axlsx/drawing/ser_axis.rb index 077b92d7..680e4d2c 100644 --- a/lib/axlsx/drawing/ser_axis.rb +++ b/lib/axlsx/drawing/ser_axis.rb @@ -33,10 +33,10 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:serAx') { + xml[:c].serAx { super(xml) - xml.send('c:tickLblSkip', :val=>@tickLblSkip) unless @tickLblSkip.nil? - xml.send('c:tickMarkSkip', :val=>@tickMarkSkip) unless @tickMarkSkip.nil? + xml[:c].tickLblSkip :val=>@tickLblSkip unless @tickLblSkip.nil? + xml[:c].tickMarkSkip :val=>@tickMarkSkip unless @tickMarkSkip.nil? } end end diff --git a/lib/axlsx/drawing/series.rb b/lib/axlsx/drawing/series.rb index 3647f22e..51e53e78 100644 --- a/lib/axlsx/drawing/series.rb +++ b/lib/axlsx/drawing/series.rb @@ -58,9 +58,9 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:ser') { - xml.send('c:idx', :val=>index) - xml.send('c:order', :val=>order || index) + xml.ser { + xml.idx :val=>index + xml.order :val=>order || index title.to_xml(xml) unless title.nil? yield xml if block_given? } diff --git a/lib/axlsx/drawing/series_title.rb b/lib/axlsx/drawing/series_title.rb index de977633..50567579 100644 --- a/lib/axlsx/drawing/series_title.rb +++ b/lib/axlsx/drawing/series_title.rb @@ -6,13 +6,13 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:tx') { - xml.send('c:strRef') { - xml.send('c:f', Axlsx::cell_range([@cell])) - xml.send('c:strCache') { - xml.send('c:ptCount', :val=>1) - xml.send('c:pt', :idx=>0) { - xml.send('c:v', @text) + xml[:c].tx { + xml[:c].strRef { + xml[:c].f Axlsx::cell_range([@cell]) + xml[:c].strCache { + xml[:c].ptCount :val=>1 + xml[:c].pt(:idx=>0) { + xml[:c].v @text } } } diff --git a/lib/axlsx/drawing/title.rb b/lib/axlsx/drawing/title.rb index f8c87921..59cee112 100644 --- a/lib/axlsx/drawing/title.rb +++ b/lib/axlsx/drawing/title.rb @@ -42,18 +42,22 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:title') { - xml.send('c:tx') { - xml.send('c:strRef') { - xml.send('c:f', Axlsx::cell_range([@cell])) - xml.send('c:strCache') { - xml.send('c:ptCount', :val=>1) - xml.send('c:pt', :idx=>0) { - xml.send('c:v', @text) + xml[:c].title { + unless @text.empty? + xml[:c].tx { + xml[:c].strRef { + xml[:c].f Axlsx::cell_range([@cell]) + xml[:c].strCache { + xml[:c].ptCount :val=>1 + xml[:c].pt(:idx=>0) { + xml[:c].v @text + } } } } - } + end + xml[:c].layout + xml[:c].overlay :val=>0 } end diff --git a/lib/axlsx/drawing/two_cell_anchor.rb b/lib/axlsx/drawing/two_cell_anchor.rb index 06c0554a..867e2584 100644 --- a/lib/axlsx/drawing/two_cell_anchor.rb +++ b/lib/axlsx/drawing/two_cell_anchor.rb @@ -58,15 +58,15 @@ module Axlsx # @return [String] def to_xml(xml) #build it for now, break it down later! - xml.send('xdr:twoCellAnchor') { - xml.send('xdr:from') { + xml[:xdr].twoCellAnchor { + xml.from { from.to_xml(xml) } - xml.send('xdr:to') { + xml.to { to.to_xml(xml) } @object.to_xml(xml) - xml.send('xdr:clientData') + xml.clientData } end diff --git a/lib/axlsx/drawing/val_axis.rb b/lib/axlsx/drawing/val_axis.rb index 3233bcfd..e442b263 100644 --- a/lib/axlsx/drawing/val_axis.rb +++ b/lib/axlsx/drawing/val_axis.rb @@ -25,9 +25,9 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:valAx') { + xml.valAx { super(xml) - xml.send('c:crossBetween', :val=>@crossBetween) + xml.crossBetween :val=>@crossBetween } end end diff --git a/lib/axlsx/drawing/val_axis_data.rb b/lib/axlsx/drawing/val_axis_data.rb index 6a24a1ef..17ab9a4e 100644 --- a/lib/axlsx/drawing/val_axis_data.rb +++ b/lib/axlsx/drawing/val_axis_data.rb @@ -6,17 +6,15 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:val') { - xml.send('c:numRef') { - xml.send('c:f', Axlsx::cell_range(@list)) - xml.send('c:numCache') { - xml.send('c:formatCode', 'General') - xml.send('c:ptCount', :val=>size) + xml.val { + xml.numRef { + xml.f Axlsx::cell_range(@list) + xml.numCache { + xml.formatCode 'General' + xml.ptCount :val=>size each_with_index do |item, index| v = item.is_a?(Cell) ? item.value : item - xml.send('c:pt', :idx=>index) { - xml.send('c:v', v) - } + xml.pt(:idx=>index) { xml.v v } end } } diff --git a/lib/axlsx/drawing/view_3D.rb b/lib/axlsx/drawing/view_3D.rb index 7a8c115f..8f5cdc87 100644 --- a/lib/axlsx/drawing/view_3D.rb +++ b/lib/axlsx/drawing/view_3D.rb @@ -72,13 +72,13 @@ module Axlsx # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to. # @return [String] def to_xml(xml) - xml.send('c:view3D') { - xml.send('c:rotX', :val=>@rotX) unless @rotX.nil? - xml.send('c:hPercent', :val=>@hPercent) unless @hPercent.nil? - xml.send('c:rotY', :val=>@rotY) unless @rotY.nil? - xml.send('c:depthPercent', :val=>@depthPercent) unless @depthPercent.nil? - xml.send('c:rAngAx', :val=>@rAngAx) unless @rAngAx.nil? - xml.send('c:perspective', :val=>@perspective) unless @perspective.nil? + xml[:c].view3D { + xml[:c].rotX :val=>@rotX unless @rotX.nil? + xml[:c].hPercent :val=>@hPercent unless @hPercent.nil? + xml[:c].rotY :val=>@rotY unless @rotY.nil? + xml[:c].depthPercent :val=>@depthPercent unless @depthPercent.nil? + xml[:c].rAngAx :val=>@rAngAx unless @rAngAx.nil? + xml[:c].perspective :val=>@perspective unless @perspective.nil? } end end diff --git a/test/drawing/tc_axis.rb b/test/drawing/tc_axis.rb index 426bf4ad..cad6b07a 100644 --- a/test/drawing/tc_axis.rb +++ b/test/drawing/tc_axis.rb @@ -9,7 +9,7 @@ class TestAxis < Test::Unit::TestCase end def test_initialization - assert_equal(@axis.axPos, :l, "axis position default incorrect") + assert_equal(@axis.axPos, :b, "axis position default incorrect") assert_equal(@axis.tickLblPos, :nextTo, "tick label position default incorrect") assert_equal(@axis.tickLblPos, :nextTo, "tick label position default incorrect") assert_equal(@axis.crosses, :autoZero, "tick label position default incorrect") diff --git a/test/drawing/tc_cat_axis.rb b/test/drawing/tc_cat_axis.rb index afecaf3b..23ed2eca 100644 --- a/test/drawing/tc_cat_axis.rb +++ b/test/drawing/tc_cat_axis.rb @@ -9,7 +9,7 @@ class TestCatAxis < Test::Unit::TestCase end def test_initialization - assert_equal(@axis.auto, true, "axis auto default incorrect") + assert_equal(@axis.auto, 1, "axis auto default incorrect") assert_equal(@axis.lblAlgn, :ctr, "label align default incorrect") assert_equal(@axis.lblOffset, "100%", "label offset default incorrect") end |
