summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/drawing/chart.rb
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 /lib/axlsx/drawing/chart.rb
parent8511700b46f68e54284331cd0b635fb109596779 (diff)
downloadcaxlsx-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.rb44
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