summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-12-08 22:33:36 +0900
committerRandy Morgan <[email protected]>2011-12-08 22:33:36 +0900
commit208e08f46ca4e69dd5ecf6316ec9b877c86a1b3e (patch)
treefd4768bd3aaafab9fe44ee8621e7fa75b111f36f
parent8511700b46f68e54284331cd0b635fb109596779 (diff)
downloadcaxlsx-208e08f46ca4e69dd5ecf6316ec9b877c86a1b3e.tar.gz
caxlsx-208e08f46ca4e69dd5ecf6316ec9b877c86a1b3e.zip
cleaning up xml namespace usage in drawings and improving looks for charts in excel 2011
-rw-r--r--lib/axlsx/drawing/axis.rb23
-rw-r--r--lib/axlsx/drawing/bar_3D_chart.rb30
-rw-r--r--lib/axlsx/drawing/bar_series.rb2
-rw-r--r--lib/axlsx/drawing/cat_axis.rb10
-rw-r--r--lib/axlsx/drawing/cat_axis_data.rb14
-rw-r--r--lib/axlsx/drawing/chart.rb44
-rw-r--r--lib/axlsx/drawing/drawing.rb2
-rw-r--r--lib/axlsx/drawing/graphic_frame.rb20
-rw-r--r--lib/axlsx/drawing/line_3D_chart.rb22
-rw-r--r--lib/axlsx/drawing/marker.rb2
-rw-r--r--lib/axlsx/drawing/one_cell_anchor.rb8
-rw-r--r--lib/axlsx/drawing/pic.rb28
-rw-r--r--lib/axlsx/drawing/pie_3D_chart.rb4
-rw-r--r--lib/axlsx/drawing/pie_series.rb2
-rw-r--r--lib/axlsx/drawing/scaling.rb10
-rw-r--r--lib/axlsx/drawing/ser_axis.rb6
-rw-r--r--lib/axlsx/drawing/series.rb6
-rw-r--r--lib/axlsx/drawing/series_title.rb14
-rw-r--r--lib/axlsx/drawing/title.rb22
-rw-r--r--lib/axlsx/drawing/two_cell_anchor.rb8
-rw-r--r--lib/axlsx/drawing/val_axis.rb4
-rw-r--r--lib/axlsx/drawing/val_axis_data.rb16
-rw-r--r--lib/axlsx/drawing/view_3D.rb14
-rw-r--r--test/drawing/tc_axis.rb2
-rw-r--r--test/drawing/tc_cat_axis.rb2
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