write_xlsx 0.54.0 → 0.55.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +3 -0
- data/examples/sparklines1.rb +62 -0
- data/examples/sparklines2.rb +391 -0
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/worksheet.rb +760 -48
- data/test/perl_output/sparklines1.xlsx +0 -0
- data/test/perl_output/sparklines2.xlsx +0 -0
- data/test/test_example_match.rb +425 -0
- data/test/worksheet/test_cond_format_20.rb +119 -0
- data/test/worksheet/test_sparkline_01.rb +65 -0
- data/test/worksheet/test_sparkline_02.rb +92 -0
- data/test/worksheet/test_sparkline_03.rb +133 -0
- data/test/worksheet/test_sparkline_04.rb +93 -0
- data/test/worksheet/test_sparkline_05.rb +93 -0
- data/test/worksheet/test_sparkline_06.rb +114 -0
- data/test/worksheet/test_sparkline_07.rb +357 -0
- data/test/worksheet/test_sparkline_08.rb +177 -0
- data/test/worksheet/test_sparkline_09.rb +1250 -0
- data/test/worksheet/test_sparkline_10.rb +107 -0
- data/test/worksheet/test_sparkline_11.rb +218 -0
- metadata +32 -8
- data/test/worksheet/test_write_ext.rb +0 -18
- data/test/worksheet/test_write_ext_lst.rb +0 -18
- data/test/worksheet/test_write_mx_plv.rb +0 -19
data/lib/write_xlsx/version.rb
CHANGED
data/lib/write_xlsx/worksheet.rb
CHANGED
@@ -35,6 +35,7 @@ module Writexlsx
|
|
35
35
|
# insert_shape
|
36
36
|
# data_validation
|
37
37
|
# conditional_formatting
|
38
|
+
# add_sparkline
|
38
39
|
# add_table
|
39
40
|
# name
|
40
41
|
# activate
|
@@ -362,6 +363,7 @@ def initialize(workbook, index, name) #:nodoc:
|
|
362
363
|
@name = name
|
363
364
|
@colinfo = []
|
364
365
|
@cell_data_table = {}
|
366
|
+
@excel_version = 2007
|
365
367
|
|
366
368
|
@print_style = PrintStyle.new
|
367
369
|
|
@@ -407,6 +409,7 @@ def initialize(workbook, index, name) #:nodoc:
|
|
407
409
|
@charts = []
|
408
410
|
@images = []
|
409
411
|
@tables = []
|
412
|
+
@sparklines = []
|
410
413
|
@shapes = []
|
411
414
|
@shape_hash = {}
|
412
415
|
|
@@ -452,7 +455,7 @@ def assemble_xml_file #:nodoc:
|
|
452
455
|
write_drawings
|
453
456
|
write_legacy_drawing
|
454
457
|
write_table_parts
|
455
|
-
|
458
|
+
write_ext_sparklines
|
456
459
|
@writer.end_tag('worksheet')
|
457
460
|
@writer.crlf
|
458
461
|
@writer.close
|
@@ -3302,10 +3305,12 @@ def conditional_formatting(*args)
|
|
3302
3305
|
param[:formula] = %Q!ISERROR(SEARCH("#{param[:value]}",#{start_cell}))!
|
3303
3306
|
when 'beginsWith'
|
3304
3307
|
param[:type] = 'beginsWith'
|
3305
|
-
param[:formula] =
|
3308
|
+
param[:formula] =
|
3309
|
+
%Q!LEFT(#{start_cell},#{param[:value].size})="#{param[:value]}"!
|
3306
3310
|
when 'endsWith'
|
3307
3311
|
param[:type] = 'endsWith'
|
3308
|
-
param[:formula] =
|
3312
|
+
param[:formula] =
|
3313
|
+
%Q!RIGHT(#{start_cell},#{param[:value].size})="#{param[:value]}"!
|
3309
3314
|
else
|
3310
3315
|
raise "Invalid text criteria '#{param[:criteria]} in conditional_formatting()"
|
3311
3316
|
end
|
@@ -3633,6 +3638,115 @@ def valid_table_parameter
|
|
3633
3638
|
:total_row
|
3634
3639
|
]
|
3635
3640
|
end
|
3641
|
+
private :valid_table_parameter
|
3642
|
+
|
3643
|
+
#
|
3644
|
+
# add_sparkline
|
3645
|
+
#
|
3646
|
+
def add_sparkline(param)
|
3647
|
+
sparkline = {}
|
3648
|
+
|
3649
|
+
# Check for valid input parameters.
|
3650
|
+
param.each_key do |k|
|
3651
|
+
unless valid_sparkline_parameter[k]
|
3652
|
+
raise "Unknown parameter '#{k}' in add_sparkline()"
|
3653
|
+
end
|
3654
|
+
end
|
3655
|
+
[:location, :range].each do |required_key|
|
3656
|
+
unless param[required_key]
|
3657
|
+
raise "Parameter '#{required_key}' is required in add_sparkline()"
|
3658
|
+
end
|
3659
|
+
end
|
3660
|
+
|
3661
|
+
# Handle the sparkline type.
|
3662
|
+
type = param[:type] || 'line'
|
3663
|
+
unless ['line', 'column', 'win_loss'].include?(type)
|
3664
|
+
raise "Parameter ':type' must be 'line', 'column' or 'win_loss' in add_sparkline()"
|
3665
|
+
end
|
3666
|
+
type = 'stacked' if type == 'win_loss'
|
3667
|
+
sparkline[:_type] = type
|
3668
|
+
|
3669
|
+
# We handle single location/range values or array refs of values.
|
3670
|
+
sparkline[:_locations] = [param[:location]].flatten
|
3671
|
+
sparkline[:_ranges] = [param[:range]].flatten
|
3672
|
+
|
3673
|
+
if sparkline[:_ranges].size != sparkline[:_locations].size
|
3674
|
+
raise "Must have the same number of location and range parameters in add_sparkline()"
|
3675
|
+
end
|
3676
|
+
|
3677
|
+
# Store the count.
|
3678
|
+
sparkline[:_count] = sparkline[:_locations].size
|
3679
|
+
|
3680
|
+
# Get the worksheet name for the range conversion below.
|
3681
|
+
sheetname = quote_sheetname(@name)
|
3682
|
+
|
3683
|
+
# Cleanup the input ranges.
|
3684
|
+
sparkline[:_ranges].collect! do |range|
|
3685
|
+
# Remove the absolute reference $ symbols.
|
3686
|
+
range = range.gsub(/\$/, '')
|
3687
|
+
# Convert a simiple range into a full Sheet1!A1:D1 range.
|
3688
|
+
range = "#{sheetname}!#{range}" unless range =~ /!/
|
3689
|
+
range
|
3690
|
+
end
|
3691
|
+
|
3692
|
+
# Cleanup the input locations.
|
3693
|
+
sparkline[:_locations].collect! { |location| location.gsub(/\$/, '') }
|
3694
|
+
|
3695
|
+
# Map options.
|
3696
|
+
sparkline[:_high] = param[:high_point]
|
3697
|
+
sparkline[:_low] = param[:low_point]
|
3698
|
+
sparkline[:_negative] = param[:negative_points]
|
3699
|
+
sparkline[:_first] = param[:first_point]
|
3700
|
+
sparkline[:_last] = param[:last_point]
|
3701
|
+
sparkline[:_markers] = param[:markers]
|
3702
|
+
sparkline[:_min] = param[:min]
|
3703
|
+
sparkline[:_max] = param[:max]
|
3704
|
+
sparkline[:_axis] = param[:axis]
|
3705
|
+
sparkline[:_reverse] = param[:reverse]
|
3706
|
+
sparkline[:_hidden] = param[:show_hidden]
|
3707
|
+
sparkline[:_weight] = param[:weight]
|
3708
|
+
|
3709
|
+
# Map empty cells options.
|
3710
|
+
empty = param[:empty_cells] || ''
|
3711
|
+
sparkline[:_empty] = case empty
|
3712
|
+
when 'zero'
|
3713
|
+
0
|
3714
|
+
when 'connect'
|
3715
|
+
'span'
|
3716
|
+
else
|
3717
|
+
'gap'
|
3718
|
+
end
|
3719
|
+
|
3720
|
+
# Map the date axis range.
|
3721
|
+
date_range = param[:date_axis]
|
3722
|
+
if ptrue?(date_range) && !(date_range =~ /!/)
|
3723
|
+
date_range = "#{sheetname}!#{date_range}"
|
3724
|
+
end
|
3725
|
+
sparkline[:_date_axis] = date_range
|
3726
|
+
|
3727
|
+
# Set the sparkline styles.
|
3728
|
+
style_id = param[:style] || 0
|
3729
|
+
style = spark_styles[style_id]
|
3730
|
+
|
3731
|
+
sparkline[:_series_color] = style[:series]
|
3732
|
+
sparkline[:_negative_color] = style[:negative]
|
3733
|
+
sparkline[:_markers_color] = style[:markers]
|
3734
|
+
sparkline[:_first_color] = style[:first]
|
3735
|
+
sparkline[:_last_color] = style[:last]
|
3736
|
+
sparkline[:_high_color] = style[:high]
|
3737
|
+
sparkline[:_low_color] = style[:low]
|
3738
|
+
|
3739
|
+
# Override the style colours with user defined colors.
|
3740
|
+
set_spark_color(sparkline, param, :series_color)
|
3741
|
+
set_spark_color(sparkline, param, :negative_color)
|
3742
|
+
set_spark_color(sparkline, param, :markers_color)
|
3743
|
+
set_spark_color(sparkline, param, :first_color)
|
3744
|
+
set_spark_color(sparkline, param, :last_color)
|
3745
|
+
set_spark_color(sparkline, param, :high_color)
|
3746
|
+
set_spark_color(sparkline, param, :low_color)
|
3747
|
+
|
3748
|
+
@sparklines << sparkline
|
3749
|
+
end
|
3636
3750
|
|
3637
3751
|
#
|
3638
3752
|
# :call-seq:
|
@@ -5654,12 +5768,18 @@ def encode_password(password) #:nodoc:
|
|
5654
5768
|
# Write the <worksheet> element. This is the root element of Worksheet.
|
5655
5769
|
#
|
5656
5770
|
def write_worksheet #:nodoc:
|
5657
|
-
|
5658
|
-
|
5659
|
-
|
5660
|
-
|
5661
|
-
|
5662
|
-
|
5771
|
+
schema = 'http://schemas.openxmlformats.org/'
|
5772
|
+
attributes = [
|
5773
|
+
'xmlns', schema + 'spreadsheetml/2006/main',
|
5774
|
+
'xmlns:r', schema + 'officeDocument/2006/relationships'
|
5775
|
+
]
|
5776
|
+
if @excel_version == 2010
|
5777
|
+
attributes << 'xmlns:mc' << "#{schema}markup-compatibility/2006"
|
5778
|
+
attributes << 'xmlns:x14ac' <<
|
5779
|
+
'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'
|
5780
|
+
attributes << 'mc:Ignorable' << 'x14ac'
|
5781
|
+
end
|
5782
|
+
@writer.start_tag('worksheet', attributes)
|
5663
5783
|
end
|
5664
5784
|
|
5665
5785
|
#
|
@@ -5798,6 +5918,9 @@ def write_sheet_format_pr #:nodoc:
|
|
5798
5918
|
attributes = ['defaultRowHeight', default_row_height]
|
5799
5919
|
attributes << 'outlineLevelRow' << @outline_row_level if @outline_row_level > 0
|
5800
5920
|
attributes << 'outlineLevelCol' << @outline_col_level if @outline_col_level > 0
|
5921
|
+
if @excel_version == 2010
|
5922
|
+
attributes << 'x14ac:dyDescent' << '0.25'
|
5923
|
+
end
|
5801
5924
|
@writer.empty_tag('sheetFormatPr', attributes)
|
5802
5925
|
end
|
5803
5926
|
|
@@ -5966,6 +6089,9 @@ def write_row_element(r, spans = nil, height = 15, format = nil, hidden = false,
|
|
5966
6089
|
(attributes << 'outlineLevel' << level) if ptrue?(level)
|
5967
6090
|
(attributes << 'collapsed' << 1 ) if ptrue?(collapsed)
|
5968
6091
|
|
6092
|
+
if @excel_version == 2010
|
6093
|
+
attributes << 'x14ac:dyDescent' << '0.25'
|
6094
|
+
end
|
5969
6095
|
if ptrue?(empty_row)
|
5970
6096
|
@writer.empty_tag('row', attributes)
|
5971
6097
|
else
|
@@ -6184,45 +6310,6 @@ def write_page_setup #:nodoc:
|
|
6184
6310
|
@writer.empty_tag('pageSetup', attributes)
|
6185
6311
|
end
|
6186
6312
|
|
6187
|
-
#
|
6188
|
-
# Write the <extLst> element.
|
6189
|
-
#
|
6190
|
-
def write_ext_lst #:nodoc:
|
6191
|
-
@writer.tag_elements('extLst') { write_ext }
|
6192
|
-
end
|
6193
|
-
|
6194
|
-
#
|
6195
|
-
# Write the <ext> element.
|
6196
|
-
#
|
6197
|
-
def write_ext #:nodoc:
|
6198
|
-
xmlnsmx = 'http://schemas.microsoft.com/office/mac/excel/2008/main'
|
6199
|
-
uri = 'http://schemas.microsoft.com/office/mac/excel/2008/main'
|
6200
|
-
|
6201
|
-
attributes = [
|
6202
|
-
'xmlns:mx', xmlnsmx,
|
6203
|
-
'uri', uri
|
6204
|
-
]
|
6205
|
-
|
6206
|
-
@writer.tag_elements('ext', attributes) { write_mx_plv }
|
6207
|
-
end
|
6208
|
-
|
6209
|
-
#
|
6210
|
-
# Write the <mx:PLV> element.
|
6211
|
-
#
|
6212
|
-
def write_mx_plv #:nodoc:
|
6213
|
-
mode = 1
|
6214
|
-
one_page = 0
|
6215
|
-
w_scale = 0
|
6216
|
-
|
6217
|
-
attributes = [
|
6218
|
-
'Mode', mode,
|
6219
|
-
'OnePage', one_page,
|
6220
|
-
'WScale', w_scale
|
6221
|
-
]
|
6222
|
-
|
6223
|
-
@writer.empty_tag('mx:PLV', attributes)
|
6224
|
-
end
|
6225
|
-
|
6226
6313
|
#
|
6227
6314
|
# Write the <mergeCells> element.
|
6228
6315
|
#
|
@@ -6726,6 +6813,631 @@ def write_table_part(id)
|
|
6726
6813
|
@writer.empty_tag('tablePart', attributes)
|
6727
6814
|
end
|
6728
6815
|
|
6816
|
+
def spark_styles # :nodoc:
|
6817
|
+
[
|
6818
|
+
{ # 0
|
6819
|
+
:series => { :_theme => "4", :_tint => "-0.499984740745262" },
|
6820
|
+
:negative => { :_theme => "5" },
|
6821
|
+
:markers => { :_theme => "4", :_tint => "-0.499984740745262" },
|
6822
|
+
:first => { :_theme => "4", :_tint => "0.39997558519241921" },
|
6823
|
+
:last => { :_theme => "4", :_tint => "0.39997558519241921" },
|
6824
|
+
:high => { :_theme => "4" },
|
6825
|
+
:low => { :_theme => "4" }
|
6826
|
+
},
|
6827
|
+
{ # 1
|
6828
|
+
:series => { :_theme => "4", :_tint => "-0.499984740745262" },
|
6829
|
+
:negative => { :_theme => "5" },
|
6830
|
+
:markers => { :_theme => "4", :_tint => "-0.499984740745262" },
|
6831
|
+
:first => { :_theme => "4", :_tint => "0.39997558519241921" },
|
6832
|
+
:last => { :_theme => "4", :_tint => "0.39997558519241921" },
|
6833
|
+
:high => { :_theme => "4" },
|
6834
|
+
:low => { :_theme => "4" }
|
6835
|
+
},
|
6836
|
+
{ # 2
|
6837
|
+
:series => { :_theme => "5", :_tint => "-0.499984740745262" },
|
6838
|
+
:negative => { :_theme => "6" },
|
6839
|
+
:markers => { :_theme => "5", :_tint => "-0.499984740745262" },
|
6840
|
+
:first => { :_theme => "5", :_tint => "0.39997558519241921" },
|
6841
|
+
:last => { :_theme => "5", :_tint => "0.39997558519241921" },
|
6842
|
+
:high => { :_theme => "5" },
|
6843
|
+
:low => { :_theme => "5" }
|
6844
|
+
},
|
6845
|
+
{ # 3
|
6846
|
+
:series => { :_theme => "6", :_tint => "-0.499984740745262" },
|
6847
|
+
:negative => { :_theme => "7" },
|
6848
|
+
:markers => { :_theme => "6", :_tint => "-0.499984740745262" },
|
6849
|
+
:first => { :_theme => "6", :_tint => "0.39997558519241921" },
|
6850
|
+
:last => { :_theme => "6", :_tint => "0.39997558519241921" },
|
6851
|
+
:high => { :_theme => "6" },
|
6852
|
+
:low => { :_theme => "6" }
|
6853
|
+
},
|
6854
|
+
{ # 4
|
6855
|
+
:series => { :_theme => "7", :_tint => "-0.499984740745262" },
|
6856
|
+
:negative => { :_theme => "8" },
|
6857
|
+
:markers => { :_theme => "7", :_tint => "-0.499984740745262" },
|
6858
|
+
:first => { :_theme => "7", :_tint => "0.39997558519241921" },
|
6859
|
+
:last => { :_theme => "7", :_tint => "0.39997558519241921" },
|
6860
|
+
:high => { :_theme => "7" },
|
6861
|
+
:low => { :_theme => "7" }
|
6862
|
+
},
|
6863
|
+
{ # 5
|
6864
|
+
:series => { :_theme => "8", :_tint => "-0.499984740745262" },
|
6865
|
+
:negative => { :_theme => "9" },
|
6866
|
+
:markers => { :_theme => "8", :_tint => "-0.499984740745262" },
|
6867
|
+
:first => { :_theme => "8", :_tint => "0.39997558519241921" },
|
6868
|
+
:last => { :_theme => "8", :_tint => "0.39997558519241921" },
|
6869
|
+
:high => { :_theme => "8" },
|
6870
|
+
:low => { :_theme => "8" }
|
6871
|
+
},
|
6872
|
+
{ # 6
|
6873
|
+
:series => { :_theme => "9", :_tint => "-0.499984740745262" },
|
6874
|
+
:negative => { :_theme => "4" },
|
6875
|
+
:markers => { :_theme => "9", :_tint => "-0.499984740745262" },
|
6876
|
+
:first => { :_theme => "9", :_tint => "0.39997558519241921" },
|
6877
|
+
:last => { :_theme => "9", :_tint => "0.39997558519241921" },
|
6878
|
+
:high => { :_theme => "9" },
|
6879
|
+
:low => { :_theme => "9" }
|
6880
|
+
},
|
6881
|
+
{ # 7
|
6882
|
+
:series => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6883
|
+
:negative => { :_theme => "5" },
|
6884
|
+
:markers => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6885
|
+
:first => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6886
|
+
:last => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6887
|
+
:high => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6888
|
+
:low => { :_theme => "5", :_tint => "-0.249977111117893" }
|
6889
|
+
},
|
6890
|
+
{ # 8
|
6891
|
+
:series => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6892
|
+
:negative => { :_theme => "6" },
|
6893
|
+
:markers => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6894
|
+
:first => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6895
|
+
:last => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6896
|
+
:high => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6897
|
+
:low => { :_theme => "6", :_tint => "-0.249977111117893" }
|
6898
|
+
},
|
6899
|
+
{ # 9
|
6900
|
+
:series => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6901
|
+
:negative => { :_theme => "7" },
|
6902
|
+
:markers => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6903
|
+
:first => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6904
|
+
:last => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6905
|
+
:high => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6906
|
+
:low => { :_theme => "7", :_tint => "-0.249977111117893" }
|
6907
|
+
},
|
6908
|
+
{ # 10
|
6909
|
+
:series => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6910
|
+
:negative => { :_theme => "8" },
|
6911
|
+
:markers => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6912
|
+
:first => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6913
|
+
:last => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6914
|
+
:high => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6915
|
+
:low => { :_theme => "8", :_tint => "-0.249977111117893" }
|
6916
|
+
},
|
6917
|
+
{ # 11
|
6918
|
+
:series => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6919
|
+
:negative => { :_theme => "9" },
|
6920
|
+
:markers => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6921
|
+
:first => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6922
|
+
:last => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6923
|
+
:high => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6924
|
+
:low => { :_theme => "9", :_tint => "-0.249977111117893" }
|
6925
|
+
},
|
6926
|
+
{ # 12
|
6927
|
+
:series => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6928
|
+
:negative => { :_theme => "4" },
|
6929
|
+
:markers => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6930
|
+
:first => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6931
|
+
:last => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6932
|
+
:high => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6933
|
+
:low => { :_theme => "4", :_tint => "-0.249977111117893" }
|
6934
|
+
},
|
6935
|
+
{ # 13
|
6936
|
+
:series => { :_theme => "4" },
|
6937
|
+
:negative => { :_theme => "5" },
|
6938
|
+
:markers => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6939
|
+
:first => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6940
|
+
:last => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6941
|
+
:high => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6942
|
+
:low => { :_theme => "4", :_tint => "-0.249977111117893" }
|
6943
|
+
},
|
6944
|
+
{ # 14
|
6945
|
+
:series => { :_theme => "5" },
|
6946
|
+
:negative => { :_theme => "6" },
|
6947
|
+
:markers => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6948
|
+
:first => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6949
|
+
:last => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6950
|
+
:high => { :_theme => "5", :_tint => "-0.249977111117893" },
|
6951
|
+
:low => { :_theme => "5", :_tint => "-0.249977111117893" }
|
6952
|
+
},
|
6953
|
+
{ # 15
|
6954
|
+
:series => { :_theme => "6" },
|
6955
|
+
:negative => { :_theme => "7" },
|
6956
|
+
:markers => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6957
|
+
:first => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6958
|
+
:last => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6959
|
+
:high => { :_theme => "6", :_tint => "-0.249977111117893" },
|
6960
|
+
:low => { :_theme => "6", :_tint => "-0.249977111117893" }
|
6961
|
+
},
|
6962
|
+
{ # 16
|
6963
|
+
:series => { :_theme => "7" },
|
6964
|
+
:negative => { :_theme => "8" },
|
6965
|
+
:markers => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6966
|
+
:first => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6967
|
+
:last => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6968
|
+
:high => { :_theme => "7", :_tint => "-0.249977111117893" },
|
6969
|
+
:low => { :_theme => "7", :_tint => "-0.249977111117893" }
|
6970
|
+
},
|
6971
|
+
{ # 17
|
6972
|
+
:series => { :_theme => "8" },
|
6973
|
+
:negative => { :_theme => "9" },
|
6974
|
+
:markers => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6975
|
+
:first => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6976
|
+
:last => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6977
|
+
:high => { :_theme => "8", :_tint => "-0.249977111117893" },
|
6978
|
+
:low => { :_theme => "8", :_tint => "-0.249977111117893" }
|
6979
|
+
},
|
6980
|
+
{ # 18
|
6981
|
+
:series => { :_theme => "9" },
|
6982
|
+
:negative => { :_theme => "4" },
|
6983
|
+
:markers => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6984
|
+
:first => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6985
|
+
:last => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6986
|
+
:high => { :_theme => "9", :_tint => "-0.249977111117893" },
|
6987
|
+
:low => { :_theme => "9", :_tint => "-0.249977111117893" }
|
6988
|
+
},
|
6989
|
+
{ # 19
|
6990
|
+
:series => { :_theme => "4", :_tint => "0.39997558519241921" },
|
6991
|
+
:negative => { :_theme => "0", :_tint => "-0.499984740745262" },
|
6992
|
+
:markers => { :_theme => "4", :_tint => "0.79998168889431442" },
|
6993
|
+
:first => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6994
|
+
:last => { :_theme => "4", :_tint => "-0.249977111117893" },
|
6995
|
+
:high => { :_theme => "4", :_tint => "-0.499984740745262" },
|
6996
|
+
:low => { :_theme => "4", :_tint => "-0.499984740745262" }
|
6997
|
+
},
|
6998
|
+
{ # 20
|
6999
|
+
:series => { :_theme => "5", :_tint => "0.39997558519241921" },
|
7000
|
+
:negative => { :_theme => "0", :_tint => "-0.499984740745262" },
|
7001
|
+
:markers => { :_theme => "5", :_tint => "0.79998168889431442" },
|
7002
|
+
:first => { :_theme => "5", :_tint => "-0.249977111117893" },
|
7003
|
+
:last => { :_theme => "5", :_tint => "-0.249977111117893" },
|
7004
|
+
:high => { :_theme => "5", :_tint => "-0.499984740745262" },
|
7005
|
+
:low => { :_theme => "5", :_tint => "-0.499984740745262" }
|
7006
|
+
},
|
7007
|
+
{ # 21
|
7008
|
+
:series => { :_theme => "6", :_tint => "0.39997558519241921" },
|
7009
|
+
:negative => { :_theme => "0", :_tint => "-0.499984740745262" },
|
7010
|
+
:markers => { :_theme => "6", :_tint => "0.79998168889431442" },
|
7011
|
+
:first => { :_theme => "6", :_tint => "-0.249977111117893" },
|
7012
|
+
:last => { :_theme => "6", :_tint => "-0.249977111117893" },
|
7013
|
+
:high => { :_theme => "6", :_tint => "-0.499984740745262" },
|
7014
|
+
:low => { :_theme => "6", :_tint => "-0.499984740745262" }
|
7015
|
+
},
|
7016
|
+
{ # 22
|
7017
|
+
:series => { :_theme => "7", :_tint => "0.39997558519241921" },
|
7018
|
+
:negative => { :_theme => "0", :_tint => "-0.499984740745262" },
|
7019
|
+
:markers => { :_theme => "7", :_tint => "0.79998168889431442" },
|
7020
|
+
:first => { :_theme => "7", :_tint => "-0.249977111117893" },
|
7021
|
+
:last => { :_theme => "7", :_tint => "-0.249977111117893" },
|
7022
|
+
:high => { :_theme => "7", :_tint => "-0.499984740745262" },
|
7023
|
+
:low => { :_theme => "7", :_tint => "-0.499984740745262" }
|
7024
|
+
},
|
7025
|
+
{ # 23
|
7026
|
+
:series => { :_theme => "8", :_tint => "0.39997558519241921" },
|
7027
|
+
:negative => { :_theme => "0", :_tint => "-0.499984740745262" },
|
7028
|
+
:markers => { :_theme => "8", :_tint => "0.79998168889431442" },
|
7029
|
+
:first => { :_theme => "8", :_tint => "-0.249977111117893" },
|
7030
|
+
:last => { :_theme => "8", :_tint => "-0.249977111117893" },
|
7031
|
+
:high => { :_theme => "8", :_tint => "-0.499984740745262" },
|
7032
|
+
:low => { :_theme => "8", :_tint => "-0.499984740745262" }
|
7033
|
+
},
|
7034
|
+
{ # 24
|
7035
|
+
:series => { :_theme => "9", :_tint => "0.39997558519241921" },
|
7036
|
+
:negative => { :_theme => "0", :_tint => "-0.499984740745262" },
|
7037
|
+
:markers => { :_theme => "9", :_tint => "0.79998168889431442" },
|
7038
|
+
:first => { :_theme => "9", :_tint => "-0.249977111117893" },
|
7039
|
+
:last => { :_theme => "9", :_tint => "-0.249977111117893" },
|
7040
|
+
:high => { :_theme => "9", :_tint => "-0.499984740745262" },
|
7041
|
+
:low => { :_theme => "9", :_tint => "-0.499984740745262" }
|
7042
|
+
},
|
7043
|
+
{ # 25
|
7044
|
+
:series => { :_theme => "1", :_tint => "0.499984740745262" },
|
7045
|
+
:negative => { :_theme => "1", :_tint => "0.249977111117893" },
|
7046
|
+
:markers => { :_theme => "1", :_tint => "0.249977111117893" },
|
7047
|
+
:first => { :_theme => "1", :_tint => "0.249977111117893" },
|
7048
|
+
:last => { :_theme => "1", :_tint => "0.249977111117893" },
|
7049
|
+
:high => { :_theme => "1", :_tint => "0.249977111117893" },
|
7050
|
+
:low => { :_theme => "1", :_tint => "0.249977111117893" }
|
7051
|
+
},
|
7052
|
+
{ # 26
|
7053
|
+
:series => { :_theme => "1", :_tint => "0.34998626667073579" },
|
7054
|
+
:negative => { :_theme => "0", :_tint => "-0.249977111117893" },
|
7055
|
+
:markers => { :_theme => "0", :_tint => "-0.249977111117893" },
|
7056
|
+
:first => { :_theme => "0", :_tint => "-0.249977111117893" },
|
7057
|
+
:last => { :_theme => "0", :_tint => "-0.249977111117893" },
|
7058
|
+
:high => { :_theme => "0", :_tint => "-0.249977111117893" },
|
7059
|
+
:low => { :_theme => "0", :_tint => "-0.249977111117893" }
|
7060
|
+
},
|
7061
|
+
{ # 27
|
7062
|
+
:series => { :_rgb => "FF323232" },
|
7063
|
+
:negative => { :_rgb => "FFD00000" },
|
7064
|
+
:markers => { :_rgb => "FFD00000" },
|
7065
|
+
:first => { :_rgb => "FFD00000" },
|
7066
|
+
:last => { :_rgb => "FFD00000" },
|
7067
|
+
:high => { :_rgb => "FFD00000" },
|
7068
|
+
:low => { :_rgb => "FFD00000" }
|
7069
|
+
},
|
7070
|
+
{ # 28
|
7071
|
+
:series => { :_rgb => "FF000000" },
|
7072
|
+
:negative => { :_rgb => "FF0070C0" },
|
7073
|
+
:markers => { :_rgb => "FF0070C0" },
|
7074
|
+
:first => { :_rgb => "FF0070C0" },
|
7075
|
+
:last => { :_rgb => "FF0070C0" },
|
7076
|
+
:high => { :_rgb => "FF0070C0" },
|
7077
|
+
:low => { :_rgb => "FF0070C0" }
|
7078
|
+
},
|
7079
|
+
{ # 29
|
7080
|
+
:series => { :_rgb => "FF376092" },
|
7081
|
+
:negative => { :_rgb => "FFD00000" },
|
7082
|
+
:markers => { :_rgb => "FFD00000" },
|
7083
|
+
:first => { :_rgb => "FFD00000" },
|
7084
|
+
:last => { :_rgb => "FFD00000" },
|
7085
|
+
:high => { :_rgb => "FFD00000" },
|
7086
|
+
:low => { :_rgb => "FFD00000" }
|
7087
|
+
},
|
7088
|
+
{ # 30
|
7089
|
+
:series => { :_rgb => "FF0070C0" },
|
7090
|
+
:negative => { :_rgb => "FF000000" },
|
7091
|
+
:markers => { :_rgb => "FF000000" },
|
7092
|
+
:first => { :_rgb => "FF000000" },
|
7093
|
+
:last => { :_rgb => "FF000000" },
|
7094
|
+
:high => { :_rgb => "FF000000" },
|
7095
|
+
:low => { :_rgb => "FF000000" }
|
7096
|
+
},
|
7097
|
+
{ # 31
|
7098
|
+
:series => { :_rgb => "FF5F5F5F" },
|
7099
|
+
:negative => { :_rgb => "FFFFB620" },
|
7100
|
+
:markers => { :_rgb => "FFD70077" },
|
7101
|
+
:first => { :_rgb => "FF5687C2" },
|
7102
|
+
:last => { :_rgb => "FF359CEB" },
|
7103
|
+
:high => { :_rgb => "FF56BE79" },
|
7104
|
+
:low => { :_rgb => "FFFF5055" }
|
7105
|
+
},
|
7106
|
+
{ # 32
|
7107
|
+
:series => { :_rgb => "FF5687C2" },
|
7108
|
+
:negative => { :_rgb => "FFFFB620" },
|
7109
|
+
:markers => { :_rgb => "FFD70077" },
|
7110
|
+
:first => { :_rgb => "FF777777" },
|
7111
|
+
:last => { :_rgb => "FF359CEB" },
|
7112
|
+
:high => { :_rgb => "FF56BE79" },
|
7113
|
+
:low => { :_rgb => "FFFF5055" }
|
7114
|
+
},
|
7115
|
+
{ # 33
|
7116
|
+
:series => { :_rgb => "FFC6EFCE" },
|
7117
|
+
:negative => { :_rgb => "FFFFC7CE" },
|
7118
|
+
:markers => { :_rgb => "FF8CADD6" },
|
7119
|
+
:first => { :_rgb => "FFFFDC47" },
|
7120
|
+
:last => { :_rgb => "FFFFEB9C" },
|
7121
|
+
:high => { :_rgb => "FF60D276" },
|
7122
|
+
:low => { :_rgb => "FFFF5367" }
|
7123
|
+
},
|
7124
|
+
{ # 34
|
7125
|
+
:series => { :_rgb => "FF00B050" },
|
7126
|
+
:negative => { :_rgb => "FFFF0000" },
|
7127
|
+
:markers => { :_rgb => "FF0070C0" },
|
7128
|
+
:first => { :_rgb => "FFFFC000" },
|
7129
|
+
:last => { :_rgb => "FFFFC000" },
|
7130
|
+
:high => { :_rgb => "FF00B050" },
|
7131
|
+
:low => { :_rgb => "FFFF0000" }
|
7132
|
+
},
|
7133
|
+
{ # 35
|
7134
|
+
:series => { :_theme => "3" },
|
7135
|
+
:negative => { :_theme => "9" },
|
7136
|
+
:markers => { :_theme => "8" },
|
7137
|
+
:first => { :_theme => "4" },
|
7138
|
+
:last => { :_theme => "5" },
|
7139
|
+
:high => { :_theme => "6" },
|
7140
|
+
:low => { :_theme => "7" }
|
7141
|
+
},
|
7142
|
+
{ # 36
|
7143
|
+
:series => { :_theme => "1" },
|
7144
|
+
:negative => { :_theme => "9" },
|
7145
|
+
:markers => { :_theme => "8" },
|
7146
|
+
:first => { :_theme => "4" },
|
7147
|
+
:last => { :_theme => "5" },
|
7148
|
+
:high => { :_theme => "6" },
|
7149
|
+
:low => { :_theme => "7" }
|
7150
|
+
}
|
7151
|
+
]
|
7152
|
+
end
|
7153
|
+
|
7154
|
+
def valid_sparkline_parameter # :nodoc:
|
7155
|
+
{
|
7156
|
+
:location => 1,
|
7157
|
+
:range => 1,
|
7158
|
+
:type => 1,
|
7159
|
+
:high_point => 1,
|
7160
|
+
:low_point => 1,
|
7161
|
+
:negative_points => 1,
|
7162
|
+
:first_point => 1,
|
7163
|
+
:last_point => 1,
|
7164
|
+
:markers => 1,
|
7165
|
+
:style => 1,
|
7166
|
+
:series_color => 1,
|
7167
|
+
:negative_color => 1,
|
7168
|
+
:markers_color => 1,
|
7169
|
+
:first_color => 1,
|
7170
|
+
:last_color => 1,
|
7171
|
+
:high_color => 1,
|
7172
|
+
:low_color => 1,
|
7173
|
+
:max => 1,
|
7174
|
+
:min => 1,
|
7175
|
+
:axis => 1,
|
7176
|
+
:reverse => 1,
|
7177
|
+
:empty_cells => 1,
|
7178
|
+
:show_hidden => 1,
|
7179
|
+
:date_axis => 1,
|
7180
|
+
:weight => 1
|
7181
|
+
}
|
7182
|
+
end
|
7183
|
+
|
7184
|
+
#
|
7185
|
+
#
|
7186
|
+
#
|
7187
|
+
def set_spark_color(sparkline, param, user_color) # :nodoc:
|
7188
|
+
spark_color = "_#{user_color}".to_sym
|
7189
|
+
|
7190
|
+
return unless ptrue?(param[user_color])
|
7191
|
+
|
7192
|
+
sparkline[spark_color] =
|
7193
|
+
{ :_rgb => get_palette_color(param[user_color]) }
|
7194
|
+
end
|
7195
|
+
#
|
7196
|
+
# Write the <extLst> element and sparkline subelements.
|
7197
|
+
#
|
7198
|
+
def write_ext_sparklines # :nodoc:
|
7199
|
+
sparklines = @sparklines
|
7200
|
+
|
7201
|
+
# Return if worksheet doesn't contain any sparklines.
|
7202
|
+
return if sparklines.empty?
|
7203
|
+
|
7204
|
+
# Write the extLst element.
|
7205
|
+
@writer.start_tag('extLst')
|
7206
|
+
|
7207
|
+
# Write the ext element.
|
7208
|
+
write_ext
|
7209
|
+
|
7210
|
+
# Write the x14:sparklineGroups element.
|
7211
|
+
write_sparkline_groups
|
7212
|
+
|
7213
|
+
# Write the sparkline elements.
|
7214
|
+
sparklines.reverse.each do |sparkline|
|
7215
|
+
# Write the x14:sparklineGroup element.
|
7216
|
+
write_sparkline_group(sparkline)
|
7217
|
+
|
7218
|
+
# Write the x14:colorSeries element.
|
7219
|
+
write_color_series(sparkline[:_series_color])
|
7220
|
+
|
7221
|
+
# Write the x14:colorNegative element.
|
7222
|
+
write_color_negative(sparkline[:_negative_color])
|
7223
|
+
|
7224
|
+
# Write the x14:colorAxis element.
|
7225
|
+
write_color_axis
|
7226
|
+
|
7227
|
+
# Write the x14:colorMarkers element.
|
7228
|
+
write_color_markers(sparkline[:_markers_color])
|
7229
|
+
|
7230
|
+
# Write the x14:colorFirst element.
|
7231
|
+
write_color_first(sparkline[:_first_color])
|
7232
|
+
|
7233
|
+
# Write the x14:colorLast element.
|
7234
|
+
write_color_last(sparkline[:_last_color] )
|
7235
|
+
|
7236
|
+
# Write the x14:colorHigh element.
|
7237
|
+
write_color_high(sparkline[:_high_color])
|
7238
|
+
|
7239
|
+
# Write the x14:colorLow element.
|
7240
|
+
write_color_low(sparkline[:_low_color])
|
7241
|
+
|
7242
|
+
if sparkline[:_date_axis]
|
7243
|
+
@writer.data_element('xm:f', sparkline[:_date_axis])
|
7244
|
+
end
|
7245
|
+
|
7246
|
+
write_sparklines(sparkline)
|
7247
|
+
|
7248
|
+
@writer.end_tag('x14:sparklineGroup')
|
7249
|
+
end
|
7250
|
+
|
7251
|
+
@writer.end_tag('x14:sparklineGroups')
|
7252
|
+
@writer.end_tag('ext')
|
7253
|
+
@writer.end_tag('extLst')
|
7254
|
+
end
|
7255
|
+
|
7256
|
+
#
|
7257
|
+
# Write the <x14:sparklines> element and <x14:sparkline> subelements.
|
7258
|
+
#
|
7259
|
+
def write_sparklines(sparkline) # :nodoc:
|
7260
|
+
# Write the sparkline elements.
|
7261
|
+
@writer.tag_elements('x14:sparklines') do
|
7262
|
+
|
7263
|
+
(0 .. sparkline[:_count]-1).each do |i|
|
7264
|
+
range = sparkline[:_ranges][i]
|
7265
|
+
location = sparkline[:_locations][i]
|
7266
|
+
|
7267
|
+
@writer.tag_elements('x14:sparkline') do
|
7268
|
+
@writer.data_element('xm:f', range)
|
7269
|
+
@writer.data_element('xm:sqref', location)
|
7270
|
+
end
|
7271
|
+
end
|
7272
|
+
end
|
7273
|
+
end
|
7274
|
+
|
7275
|
+
#
|
7276
|
+
# Write the <ext> element.
|
7277
|
+
#
|
7278
|
+
def write_ext # :nodoc:
|
7279
|
+
schema = 'http://schemas.microsoft.com/office/'
|
7280
|
+
xmlns_x_14 = "#{schema}spreadsheetml/2009/9/main"
|
7281
|
+
uri = '{05C60535-1F16-4fd2-B633-F4F36F0B64E0}'
|
7282
|
+
|
7283
|
+
attributes = [
|
7284
|
+
'xmlns:x14', xmlns_x_14,
|
7285
|
+
'uri', uri
|
7286
|
+
]
|
7287
|
+
|
7288
|
+
@writer.start_tag('ext', attributes)
|
7289
|
+
end
|
7290
|
+
|
7291
|
+
#
|
7292
|
+
# Write the <x14:sparklineGroups> element.
|
7293
|
+
#
|
7294
|
+
def write_sparkline_groups # :nodoc:
|
7295
|
+
xmlns_xm = 'http://schemas.microsoft.com/office/excel/2006/main'
|
7296
|
+
|
7297
|
+
attributes = ['xmlns:xm', xmlns_xm]
|
7298
|
+
|
7299
|
+
@writer.start_tag('x14:sparklineGroups', attributes)
|
7300
|
+
end
|
7301
|
+
|
7302
|
+
#
|
7303
|
+
# Write the <x14:sparklineGroup> element.
|
7304
|
+
#
|
7305
|
+
# Example for order.
|
7306
|
+
#
|
7307
|
+
# <x14:sparklineGroup
|
7308
|
+
# manualMax="0"
|
7309
|
+
# manualMin="0"
|
7310
|
+
# lineWeight="2.25"
|
7311
|
+
# type="column"
|
7312
|
+
# dateAxis="1"
|
7313
|
+
# displayEmptyCellsAs="span"
|
7314
|
+
# markers="1"
|
7315
|
+
# high="1"
|
7316
|
+
# low="1"
|
7317
|
+
# first="1"
|
7318
|
+
# last="1"
|
7319
|
+
# negative="1"
|
7320
|
+
# displayXAxis="1"
|
7321
|
+
# displayHidden="1"
|
7322
|
+
# minAxisType="custom"
|
7323
|
+
# maxAxisType="custom"
|
7324
|
+
# rightToLeft="1">
|
7325
|
+
#
|
7326
|
+
def write_sparkline_group(opts) # :nodoc:
|
7327
|
+
empty = opts[:_empty]
|
7328
|
+
user_max = 0
|
7329
|
+
user_min = 0
|
7330
|
+
a = []
|
7331
|
+
|
7332
|
+
if opts[:_max]
|
7333
|
+
if opts[:_max] == 'group'
|
7334
|
+
opts[:_cust_max] = 'group'
|
7335
|
+
else
|
7336
|
+
a << 'manualMax' << opts[:_max]
|
7337
|
+
opts[:_cust_max] = 'custom'
|
7338
|
+
end
|
7339
|
+
end
|
7340
|
+
|
7341
|
+
if opts[:_min]
|
7342
|
+
if opts[:_min] == 'group'
|
7343
|
+
opts[:_cust_min] = 'group'
|
7344
|
+
else
|
7345
|
+
a << 'manualMin' << opts[:_min]
|
7346
|
+
opts[:_cust_min] = 'custom'
|
7347
|
+
end
|
7348
|
+
end
|
7349
|
+
|
7350
|
+
# Ignore the default type attribute (line).
|
7351
|
+
a << 'type' << opts[:_type] if opts[:_type] != 'line'
|
7352
|
+
|
7353
|
+
a << 'lineWeight' << opts[:_weight] if opts[:_weight]
|
7354
|
+
a << 'dateAxis' << 1 if opts[:_date_axis]
|
7355
|
+
a << 'displayEmptyCellsAs' << empty if ptrue?(empty)
|
7356
|
+
|
7357
|
+
a << 'markers' << 1 if opts[:_markers]
|
7358
|
+
a << 'high' << 1 if opts[:_high]
|
7359
|
+
a << 'low' << 1 if opts[:_low]
|
7360
|
+
a << 'first' << 1 if opts[:_first]
|
7361
|
+
a << 'last' << 1 if opts[:_last]
|
7362
|
+
a << 'negative' << 1 if opts[:_negative]
|
7363
|
+
a << 'displayXAxis' << 1 if opts[:_axis]
|
7364
|
+
a << 'displayHidden' << 1 if opts[:_hidden]
|
7365
|
+
a << 'minAxisType' << opts[:_cust_min] if opts[:_cust_min]
|
7366
|
+
a << 'maxAxisType' << opts[:_cust_max] if opts[:_cust_max]
|
7367
|
+
a << 'rightToLeft' << 1 if opts[:_reverse]
|
7368
|
+
|
7369
|
+
@writer.start_tag('x14:sparklineGroup', a)
|
7370
|
+
end
|
7371
|
+
|
7372
|
+
#
|
7373
|
+
# Helper function for the sparkline color functions below.
|
7374
|
+
#
|
7375
|
+
def write_spark_color(element, color) # :nodoc:
|
7376
|
+
attr = []
|
7377
|
+
|
7378
|
+
attr << 'rgb' << color[:_rgb] if color[:_rgb]
|
7379
|
+
attr << 'theme' << color[:_theme] if color[:_theme]
|
7380
|
+
attr << 'tint' << color[:_tint] if color[:_tint]
|
7381
|
+
|
7382
|
+
@writer.empty_tag(element, attr)
|
7383
|
+
end
|
7384
|
+
|
7385
|
+
#
|
7386
|
+
# Write the <x14:colorSeries> element.
|
7387
|
+
#
|
7388
|
+
def write_color_series(param) # :nodoc:
|
7389
|
+
write_spark_color('x14:colorSeries', param)
|
7390
|
+
end
|
7391
|
+
|
7392
|
+
#
|
7393
|
+
# Write the <x14:colorNegative> element.
|
7394
|
+
#
|
7395
|
+
def write_color_negative(param) # :nodoc:
|
7396
|
+
write_spark_color('x14:colorNegative', param)
|
7397
|
+
end
|
7398
|
+
|
7399
|
+
#
|
7400
|
+
# Write the <x14:colorAxis> element.
|
7401
|
+
#
|
7402
|
+
def write_color_axis # :nodoc:
|
7403
|
+
write_spark_color('x14:colorAxis', { :_rgb => 'FF000000'} )
|
7404
|
+
end
|
7405
|
+
|
7406
|
+
#
|
7407
|
+
# Write the <x14:colorMarkers> element.
|
7408
|
+
#
|
7409
|
+
def write_color_markers(param) # :nodoc:
|
7410
|
+
write_spark_color('x14:colorMarkers', param)
|
7411
|
+
end
|
7412
|
+
|
7413
|
+
#
|
7414
|
+
# Write the <x14:colorFirst> element.
|
7415
|
+
#
|
7416
|
+
def write_color_first(param) # :nodoc:
|
7417
|
+
write_spark_color('x14:colorFirst', param)
|
7418
|
+
end
|
7419
|
+
|
7420
|
+
#
|
7421
|
+
# Write the <x14:colorLast> element.
|
7422
|
+
#
|
7423
|
+
def write_color_last(param) # :nodoc:
|
7424
|
+
write_spark_color('x14:colorLast', param)
|
7425
|
+
end
|
7426
|
+
|
7427
|
+
#
|
7428
|
+
# Write the <x14:colorHigh> element.
|
7429
|
+
#
|
7430
|
+
def write_color_high(param) # :nodoc:
|
7431
|
+
write_spark_color('x14:colorHigh', param)
|
7432
|
+
end
|
7433
|
+
|
7434
|
+
#
|
7435
|
+
# Write the <x14:colorLow> element.
|
7436
|
+
#
|
7437
|
+
def write_color_low(param) # :nodoc:
|
7438
|
+
write_spark_color('x14:colorLow', param)
|
7439
|
+
end
|
7440
|
+
|
6729
7441
|
#
|
6730
7442
|
# Write the <dataValidations> element.
|
6731
7443
|
#
|