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 /lib/axlsx/drawing/chart.rb | |
| 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
Diffstat (limited to 'lib/axlsx/drawing/chart.rb')
| -rw-r--r-- | lib/axlsx/drawing/chart.rb | 44 |
1 files changed, 29 insertions, 15 deletions
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 |
