axlsx 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.yardopts +5 -2
- data/CHANGELOG.md +78 -0
- data/LICENSE +1 -1
- data/README.md +132 -331
- data/Rakefile +17 -5
- data/examples/basic_charts.rb +54 -0
- data/examples/chart_colors.rb +88 -0
- data/examples/conditional_formatting/example_conditional_formatting.rb +72 -0
- data/examples/conditional_formatting/getting_barred.rb +37 -0
- data/examples/conditional_formatting/hitting_the_high_notes.rb +37 -0
- data/examples/conditional_formatting/scaled_colors.rb +39 -0
- data/examples/conditional_formatting/stop_and_go.rb +37 -0
- data/examples/data_validation.rb +50 -0
- data/examples/example.rb +300 -152
- data/examples/example.xlsx +0 -0
- data/examples/example_streamed.xlsx +0 -0
- data/examples/extractive.pdf +0 -0
- data/examples/extractive.rb +45 -0
- data/examples/no-use_autowidth.xlsx +0 -0
- data/examples/sample.png +0 -0
- data/examples/scraping_html.rb +91 -0
- data/examples/shared_strings_example.xlsx +0 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/sheet_view.rb +34 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/two_cell_anchor_image.rb +11 -0
- data/lib/axlsx/content_type/content_type.rb +2 -0
- data/lib/axlsx/content_type/default.rb +30 -15
- data/lib/axlsx/content_type/override.rb +29 -14
- data/lib/axlsx/doc_props/app.rb +161 -104
- data/lib/axlsx/doc_props/core.rb +9 -5
- data/lib/axlsx/drawing/ax_data_source.rb +26 -0
- data/lib/axlsx/drawing/axis.rb +106 -35
- data/lib/axlsx/drawing/bar_3D_chart.rb +49 -45
- data/lib/axlsx/drawing/bar_series.rb +25 -7
- data/lib/axlsx/drawing/cat_axis.rb +50 -22
- data/lib/axlsx/drawing/chart.rb +69 -56
- data/lib/axlsx/drawing/d_lbls.rb +100 -0
- data/lib/axlsx/drawing/drawing.rb +28 -12
- data/lib/axlsx/drawing/graphic_frame.rb +2 -1
- data/lib/axlsx/drawing/line_3D_chart.rb +3 -10
- data/lib/axlsx/drawing/line_series.rb +20 -4
- data/lib/axlsx/drawing/num_data.rb +52 -0
- data/lib/axlsx/drawing/num_data_source.rb +61 -0
- data/lib/axlsx/drawing/num_val.rb +32 -0
- data/lib/axlsx/drawing/pic.rb +44 -4
- data/lib/axlsx/drawing/pie_3D_chart.rb +10 -7
- data/lib/axlsx/drawing/pie_series.rb +18 -4
- data/lib/axlsx/drawing/scatter_chart.rb +12 -18
- data/lib/axlsx/drawing/scatter_series.rb +28 -2
- data/lib/axlsx/drawing/ser_axis.rb +1 -1
- data/lib/axlsx/drawing/series.rb +1 -1
- data/lib/axlsx/drawing/str_data.rb +42 -0
- data/lib/axlsx/drawing/str_val.rb +33 -0
- data/lib/axlsx/drawing/title.rb +21 -9
- data/lib/axlsx/drawing/two_cell_anchor.rb +46 -9
- data/lib/axlsx/drawing/view_3D.rb +44 -31
- data/lib/axlsx/drawing/vml_drawing.rb +42 -0
- data/lib/axlsx/drawing/vml_shape.rb +125 -0
- data/lib/axlsx/package.rb +44 -16
- data/lib/axlsx/rels/relationship.rb +3 -3
- data/lib/axlsx/rels/relationships.rb +1 -11
- data/lib/axlsx/stylesheet/color.rb +0 -1
- data/lib/axlsx/stylesheet/dxf.rb +79 -0
- data/lib/axlsx/stylesheet/font.rb +2 -1
- data/lib/axlsx/stylesheet/gradient_fill.rb +1 -1
- data/lib/axlsx/stylesheet/styles.rb +143 -50
- data/lib/axlsx/stylesheet/table_style.rb +3 -3
- data/lib/axlsx/stylesheet/xf.rb +2 -0
- data/lib/axlsx/util/constants.rb +36 -0
- data/lib/axlsx/util/simple_typed_list.rb +15 -21
- data/lib/axlsx/util/validators.rb +122 -5
- data/lib/axlsx/version.rb +2 -7
- data/lib/axlsx/workbook/defined_name.rb +174 -0
- data/lib/axlsx/workbook/defined_names.rb +21 -0
- data/lib/axlsx/workbook/shared_strings_table.rb +12 -13
- data/lib/axlsx/workbook/workbook.rb +71 -13
- data/lib/axlsx/workbook/worksheet/auto_filter.rb +34 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +45 -36
- data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
- data/lib/axlsx/workbook/worksheet/col.rb +17 -1
- data/lib/axlsx/workbook/worksheet/color_scale.rb +76 -0
- data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
- data/lib/axlsx/workbook/worksheet/comment.rb +101 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -0
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
- data/lib/axlsx/workbook/worksheet/data_bar.rb +97 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +245 -0
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
- data/lib/axlsx/workbook/worksheet/dimension.rb +65 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +113 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +144 -0
- data/lib/axlsx/workbook/worksheet/print_options.rb +63 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/row.rb +69 -12
- data/lib/axlsx/workbook/worksheet/selection.rb +111 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +24 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +224 -0
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +379 -0
- data/lib/axlsx/workbook/worksheet/table.rb +3 -3
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +379 -233
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +57 -0
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +64 -0
- data/lib/axlsx.rb +31 -16
- data/test/benchmark.rb +30 -38
- data/test/content_type/tc_content_type.rb +1 -6
- data/test/doc_props/tc_app.rb +31 -1
- data/test/doc_props/tc_core.rb +3 -1
- data/test/drawing/tc_axis.rb +46 -3
- data/test/drawing/tc_bar_3D_chart.rb +12 -12
- data/test/drawing/tc_bar_series.rb +17 -13
- data/test/drawing/tc_cat_axis.rb +3 -3
- data/test/drawing/tc_cat_axis_data.rb +23 -13
- data/test/drawing/tc_chart.rb +29 -11
- data/test/drawing/tc_d_lbls.rb +47 -0
- data/test/drawing/tc_data_source.rb +17 -0
- data/test/drawing/tc_drawing.rb +11 -5
- data/test/drawing/tc_hyperlink.rb +4 -5
- data/test/drawing/tc_line_series.rb +9 -11
- data/test/drawing/tc_named_axis_data.rb +27 -0
- data/test/drawing/tc_num_data.rb +31 -0
- data/test/drawing/tc_num_val.rb +29 -0
- data/test/drawing/tc_pic.rb +22 -2
- data/test/drawing/tc_pie_3D_chart.rb +4 -8
- data/test/drawing/tc_pie_series.rb +11 -13
- data/test/drawing/tc_scatter_chart.rb +6 -1
- data/test/drawing/tc_scatter_series.rb +6 -5
- data/test/drawing/tc_series.rb +1 -1
- data/test/drawing/tc_str_data.rb +18 -0
- data/test/drawing/tc_str_val.rb +21 -0
- data/test/drawing/tc_title.rb +16 -0
- data/test/drawing/tc_two_cell_anchor.rb +2 -3
- data/test/drawing/tc_view_3D.rb +18 -18
- data/test/drawing/tc_vml_drawing.rb +25 -0
- data/test/drawing/tc_vml_shape.rb +100 -0
- data/test/profile.rb +2 -1
- data/test/rels/tc_relationship.rb +1 -0
- data/test/stylesheet/tc_dxf.rb +81 -0
- data/test/stylesheet/tc_gradient_fill.rb +8 -0
- data/test/stylesheet/tc_pattern_fill.rb +7 -1
- data/test/stylesheet/tc_styles.rb +163 -3
- data/test/stylesheet/tc_table_style.rb +8 -0
- data/test/stylesheet/tc_table_style_element.rb +10 -1
- data/test/tc_helper.rb +1 -0
- data/test/tc_package.rb +93 -17
- data/test/util/tc_simple_typed_list.rb +13 -0
- data/test/util/tc_validators.rb +95 -9
- data/test/workbook/tc_defined_name.rb +41 -0
- data/test/workbook/tc_workbook.rb +5 -3
- data/test/workbook/worksheet/table/tc_table.rb +3 -11
- data/test/workbook/worksheet/tc_cell.rb +52 -18
- data/test/workbook/worksheet/tc_cfvo.rb +31 -0
- data/test/workbook/worksheet/tc_col.rb +9 -0
- data/test/workbook/worksheet/tc_color_scale.rb +29 -0
- data/test/workbook/worksheet/tc_comment.rb +57 -0
- data/test/workbook/worksheet/tc_comments.rb +57 -0
- data/test/workbook/worksheet/tc_conditional_formatting.rb +217 -0
- data/test/workbook/worksheet/tc_data_bar.rb +39 -0
- data/test/workbook/worksheet/tc_data_validation.rb +265 -0
- data/test/workbook/worksheet/tc_date_time_converter.rb +11 -5
- data/test/workbook/worksheet/tc_icon_set.rb +45 -0
- data/test/workbook/worksheet/tc_page_setup.rb +138 -0
- data/test/workbook/worksheet/tc_pane.rb +94 -0
- data/test/workbook/worksheet/tc_print_options.rb +72 -0
- data/test/workbook/worksheet/tc_protected_range.rb +17 -0
- data/test/workbook/worksheet/tc_row.rb +44 -13
- data/test/workbook/worksheet/tc_selection.rb +94 -0
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
- data/test/workbook/worksheet/tc_worksheet.rb +147 -50
- metadata +216 -148
- data/examples/example.csv +0 -1000
- data/examples/example.rb~ +0 -112
- data/lib/axlsx/drawing/cat_axis_data.rb +0 -34
- data/lib/axlsx/drawing/hlink_click.rb~ +0 -0
- data/lib/axlsx/drawing/hyperlink.rb~ +0 -64
- data/lib/axlsx/drawing/named_axis_data.rb +0 -36
- data/lib/axlsx/drawing/picture_locking.rb~ +0 -36
- data/lib/axlsx/drawing/val_axis_data.rb +0 -27
- data/lib/axlsx/stylesheet/#num_fmt.rb# +0 -69
- data/lib/axlsx/util/cbf.rb +0 -333
- data/lib/axlsx/util/cfb.rb~ +0 -201
- data/lib/axlsx/util/ms_off_crypto.rb +0 -189
- data/lib/axlsx/util/ms_off_crypto.rb~ +0 -3
- data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
- data/lib/axlsx/util/parser.rb~ +0 -6
- data/lib/axlsx/util/storage.rb~ +0 -0
- data/lib/axlsx/workbook/shared_strings_table.rb~ +0 -69
- data/lib/axlsx/workbook/worksheet/col.rb~ +0 -0
- data/lib/axlsx/workbook/worksheet/shared_strings_table.rb~ +0 -0
- data/lib/axlsx/workbook/worksheet/table.rb~ +0 -97
- data/lib/schema/dc.xsd~ +0 -118
- data/lib/schema/dcterms.xsd~ +0 -331
- data/lib/schema/opc-coreProperties.xsd~ +0 -50
- data/test/#benchmark.txt# +0 -7
- data/test/#tc_helper.rb# +0 -3
- data/test/benchmark.rb~ +0 -0
- data/test/benchmark.txt +0 -6
- data/test/benchmark.txt~ +0 -6
- data/test/drawing/tc_val_axis_data.rb +0 -17
- data/test/example.csv +0 -1000
- data/test/example.xlsx +0 -0
- data/test/example_streamed.xlsx +0 -0
- data/test/tc_axlsx.rb~ +0 -0
- data/test/tc_helper.rb~ +0 -3
- data/test/workbook/worksheet/table/tc_table.rb~ +0 -72
- data/test/workbook/worksheet/tc_col.rb~ +0 -10
data/examples/example.rb~
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
require 'rubygems'
|
|
3
|
-
require 'axlsx.rb'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
#A Simple Workbook
|
|
7
|
-
p = Axlsx::Package.new
|
|
8
|
-
p.workbook.add_worksheet do |sheet|
|
|
9
|
-
sheet.add_row ["First", "Second", "Third"]
|
|
10
|
-
sheet.add_row [1, 2, 3]
|
|
11
|
-
end
|
|
12
|
-
p.serialize("example1.xlsx")
|
|
13
|
-
|
|
14
|
-
#Generating A Bar Chart
|
|
15
|
-
p = Axlsx::Package.new
|
|
16
|
-
p.workbook.add_worksheet do |sheet|
|
|
17
|
-
sheet.add_row ["First", "Second", "Third"]
|
|
18
|
-
sheet.add_row [1, 2, 3]
|
|
19
|
-
sheet.add_chart(Axlsx::Bar3DChart, :start_at => [0,2], :end_at => [5, 15], :title=>"example 2: Chart") do |chart|
|
|
20
|
-
chart.add_series :data=>sheet.rows.last.cells, :labels=> sheet.rows.first.cells
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
p.serialize("example2.xlsx")
|
|
24
|
-
|
|
25
|
-
#Generating A Pie Chart
|
|
26
|
-
p = Axlsx::Package.new
|
|
27
|
-
p.workbook.add_worksheet do |sheet|
|
|
28
|
-
sheet.add_row ["First", "Second", "Third"]
|
|
29
|
-
sheet.add_row [1, 2, 3]
|
|
30
|
-
sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title=>"example 3: Pie Chart") do |chart|
|
|
31
|
-
chart.add_series :data=>sheet.rows.last.cells, :labels=> sheet.rows.first.cells
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
p.serialize("example3.xlsx")
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
#Using Custom Styles
|
|
38
|
-
|
|
39
|
-
p = Axlsx::Package.new
|
|
40
|
-
wb = p.workbook
|
|
41
|
-
black_cell = wb.styles.add_style :bg_color => "FF000000", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center }
|
|
42
|
-
blue_cell = wb.styles.add_style :bg_color => "FF0000FF", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center }
|
|
43
|
-
wb.add_worksheet do |sheet|
|
|
44
|
-
sheet.add_row ["Text Autowidth", "Second", "Third"], :style => [black_cell, blue_cell, black_cell]
|
|
45
|
-
sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER
|
|
46
|
-
end
|
|
47
|
-
p.serialize("example4.xlsx")
|
|
48
|
-
|
|
49
|
-
#Using Custom Formatting and date1904
|
|
50
|
-
|
|
51
|
-
p = Axlsx::Package.new
|
|
52
|
-
wb = p.workbook
|
|
53
|
-
date = wb.styles.add_style :format_code=>"yyyy-mm-dd", :border => Axlsx::STYLE_THIN_BORDER
|
|
54
|
-
padded = wb.styles.add_style :format_code=>"00#", :border => Axlsx::STYLE_THIN_BORDER
|
|
55
|
-
percent = wb.styles.add_style :format_code=>"0%", :border => Axlsx::STYLE_THIN_BORDER
|
|
56
|
-
wb.date1904 = true # required for generation on mac
|
|
57
|
-
wb.add_worksheet do |sheet|
|
|
58
|
-
sheet.add_row ["Custom Formatted Date", "Percent Formatted Float", "Padded Numbers"], :style => Axlsx::STYLE_THIN_BORDER
|
|
59
|
-
sheet.add_row [Time.now, 0.2, 32], :style => [date, percent, padded]
|
|
60
|
-
end
|
|
61
|
-
p.serialize("example5.xlsx")
|
|
62
|
-
|
|
63
|
-
#Validation
|
|
64
|
-
|
|
65
|
-
p = Axlsx::Package.new
|
|
66
|
-
p.workbook.add_worksheet do |sheet|
|
|
67
|
-
sheet.add_row ["First", "Second", "Third"]
|
|
68
|
-
sheet.add_row [1, 2, 3]
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
p.validate.each do |error|
|
|
72
|
-
puts error.inspect
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
#Generating A Line Chart
|
|
76
|
-
|
|
77
|
-
p = Axlsx::Package.new
|
|
78
|
-
p.workbook.add_worksheet do |sheet|
|
|
79
|
-
sheet.add_row ["First", 1, 5, 7, 9]
|
|
80
|
-
sheet.add_row ["Second", 5, 2, 14, 9]
|
|
81
|
-
sheet.add_chart(Axlsx::Line3DChart, :title=>"example 6: Line Chart") do |chart|
|
|
82
|
-
chart.start_at 0, 2
|
|
83
|
-
chart.end_at 10, 15
|
|
84
|
-
chart.add_series :data=>sheet.rows.first.cells[(1..-1)], :title=> sheet.rows.first.cells.first
|
|
85
|
-
chart.add_series :data=>sheet.rows.last.cells[(1..-1)], :title=> sheet.rows.last.cells.first
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
end
|
|
89
|
-
p.serialize("example6.xlsx")
|
|
90
|
-
|
|
91
|
-
#Add an Image
|
|
92
|
-
|
|
93
|
-
p = Axlsx::Package.new
|
|
94
|
-
p.workbook.add_worksheet do |sheet|
|
|
95
|
-
img = File.expand_path('examples/image1.jpeg')
|
|
96
|
-
puts img
|
|
97
|
-
sheet.add_image(:image_src => img) do |image|
|
|
98
|
-
image.width=720
|
|
99
|
-
image.height=666
|
|
100
|
-
image.start_at 2, 2
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
p.serialize("example7.xlsx")
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
#Japanese Support
|
|
107
|
-
|
|
108
|
-
p = Axlsx::Package.new
|
|
109
|
-
p.workbook.add_worksheet do |sheet|
|
|
110
|
-
sheet.add_row ["���{�� "]
|
|
111
|
-
end
|
|
112
|
-
p.serialize("example8.xlsx")
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# The CatAxisData class serializes the category axis data for a chart
|
|
4
|
-
class CatAxisData < SimpleTypedList
|
|
5
|
-
|
|
6
|
-
# Create a new CatAxisData object
|
|
7
|
-
# @param [Array, SimpleTypedList] data the data for this category axis. This can be a simple array or a simple typed list of cells.
|
|
8
|
-
def initialize(data=[])
|
|
9
|
-
super Object
|
|
10
|
-
@list.concat data if data.is_a?(Array)
|
|
11
|
-
data.each { |i| @list << i } if data.is_a?(SimpleTypedList)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Serializes the object
|
|
15
|
-
# @param [String] str
|
|
16
|
-
# @return [String]
|
|
17
|
-
def to_xml_string(str = '')
|
|
18
|
-
str << '<c:cat>'
|
|
19
|
-
str << '<c:strRef>'
|
|
20
|
-
str << '<c:f>' << Axlsx::cell_range(@list) << '</c:f>'
|
|
21
|
-
str << '<c:strCache>'
|
|
22
|
-
str << '<c:ptCount val="' << size.to_s << '"/>'
|
|
23
|
-
each_with_index do |item, index|
|
|
24
|
-
v = item.is_a?(Cell) ? item.value.to_s : item
|
|
25
|
-
str << '<c:pt idx="' << index.to_s << '"><c:v>' << v << '</c:v></c:pt>'
|
|
26
|
-
end
|
|
27
|
-
str << '</c:strCache>'
|
|
28
|
-
str << '</c:strRef>'
|
|
29
|
-
str << '</c:cat>'
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
end
|
|
File without changes
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
module Axlsx
|
|
3
|
-
# a hlinkClick object adds a click behaviour to a drawing object.
|
|
4
|
-
# using the hlink_click method on a drawing object is the recommended way to manage hlinks
|
|
5
|
-
# @see Pic#link_to
|
|
6
|
-
class Hyperlink
|
|
7
|
-
|
|
8
|
-
# the type of hyper link defines the onclick or mouseover trigger.
|
|
9
|
-
# type must be one of :hlinkClick or :hlinkMouse
|
|
10
|
-
def type
|
|
11
|
-
@type ||= :hlinkClick
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# sets the type of the object.
|
|
15
|
-
# @param [Symbol] type one of :hlinkClick or hlinkMouse
|
|
16
|
-
def type(v) RestrictionValidator.validate "Hyperlink.type", [:hlinkClick, :hlinkMouse], v; @type = v end
|
|
17
|
-
|
|
18
|
-
# The destination of the hyperlink
|
|
19
|
-
# This value is actually stored in the drawings .rels. doc as a relationship.
|
|
20
|
-
attr_accessor :href
|
|
21
|
-
|
|
22
|
-
# The docs say:
|
|
23
|
-
# Specifies the URL when it has been determined by the generating application that the URL is invalid. That is the generating application can still store the URL but it is known that this URL is not correct.
|
|
24
|
-
attr_accessor :invalidUrl
|
|
25
|
-
|
|
26
|
-
# Specifies the target frame that is to be used when opening this hyperlink. When the hyperlink is activated this attribute is used to determine if a new window is launched for viewing or if an existing one can be used. If this attribute is omitted, than a new window is opened.
|
|
27
|
-
attr_accessor :tgtFrame
|
|
28
|
-
|
|
29
|
-
# Specifies the tooltip that should be displayed when the hyperlink text is hovered over with the mouse. If this attribute is omitted, than the hyperlink text itself can be displayed.
|
|
30
|
-
attr_accessor :tooltip
|
|
31
|
-
|
|
32
|
-
#Creates a hyperlink object
|
|
33
|
-
# parent must be a Pic for now, although I expect that other object support this tag and its cNvPr parent
|
|
34
|
-
# @param [Pic] parent
|
|
35
|
-
# @option [String] tooltip message shown when hyperlinked object is hovered over with mouse.
|
|
36
|
-
# @option [String] tgtFrame Target frame for opening hyperlink
|
|
37
|
-
# @option [String] invalidUrl supposedly use to store the href when we know it is an invalid resource.
|
|
38
|
-
# @option [String] href the target resource this hyperlink links to.
|
|
39
|
-
def initialize(parent, options=>{})
|
|
40
|
-
DataTypeValidator.validate "Hyperlink.parent", [Pic], parent
|
|
41
|
-
@parent = parent
|
|
42
|
-
options.each do |o|
|
|
43
|
-
self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# The index of this hyperlink in the owning document's hyperlinks collection
|
|
48
|
-
# @returns [Integer]
|
|
49
|
-
def index
|
|
50
|
-
self.parent.anchor.drawing.hyperlinks.index(self)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# The relational ID for this hyperlink
|
|
54
|
-
# @returns [String]
|
|
55
|
-
def r:id
|
|
56
|
-
reference_count = self.parent.anchor.drawing.charts.size + self.parent.anchor.drawing.images.size + index
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def to_xml(xml)
|
|
61
|
-
xml.send(type,
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
# TODO: review cat, val and named access data to extend this and reduce replicated code.
|
|
3
|
-
module Axlsx
|
|
4
|
-
# The ValAxisData class manages the values for a chart value series.
|
|
5
|
-
class NamedAxisData < CatAxisData
|
|
6
|
-
|
|
7
|
-
# creates a new NamedAxisData Object
|
|
8
|
-
# @param [String] name The serialized node name for the axis data object
|
|
9
|
-
# @param [Array] The data to associate with the axis data object
|
|
10
|
-
def initialize(name, data=[])
|
|
11
|
-
super(data)
|
|
12
|
-
@name = name
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Serializes the object
|
|
16
|
-
# @param [String] str
|
|
17
|
-
# @return [String]
|
|
18
|
-
def to_xml_string(str = '')
|
|
19
|
-
str << '<c:' << @name.to_s << '>'
|
|
20
|
-
str << '<c:numRef>'
|
|
21
|
-
str << '<c:f>' << Axlsx::cell_range(@list) << '</c:f>'
|
|
22
|
-
str << '<c:numCache>'
|
|
23
|
-
str << '<c:formatCode>General</c:formatCode>'
|
|
24
|
-
str << '<c:ptCount val="' << size.to_s << '"/>'
|
|
25
|
-
each_with_index do |item, index|
|
|
26
|
-
v = item.is_a?(Cell) ? item.value.to_s : item
|
|
27
|
-
str << '<c:pt idx="' << index.to_s << '"><c:v>' << v << '</c:v></c:pt>'
|
|
28
|
-
end
|
|
29
|
-
str << '</c:numCache>'
|
|
30
|
-
str << '</c:numRef>'
|
|
31
|
-
str << '</c:' << @name.to_s << '>'
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
# The picture locking class defines the locking properties for pictures in your workbook.
|
|
3
|
-
class PictureLocking
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
attr_reader :noGrp
|
|
7
|
-
attr_reader :noSelect
|
|
8
|
-
attr_reader :noRot
|
|
9
|
-
attr_reader :noChangeAspect
|
|
10
|
-
attr_reader :noMove
|
|
11
|
-
attr_reader :noResize
|
|
12
|
-
attr_reader :noEditPoints
|
|
13
|
-
attr_reader :noAdjustHandles
|
|
14
|
-
attr_reader :noChangeArrowheads
|
|
15
|
-
attr_reader :noChangeShapeType
|
|
16
|
-
|
|
17
|
-
# Creates a new PictureLocking object
|
|
18
|
-
# @option options [Boolean] noGrp
|
|
19
|
-
# @option options [Boolean] noSelect
|
|
20
|
-
# @option options [Boolean] noRot
|
|
21
|
-
# @option options [Boolean] noChangeAspect
|
|
22
|
-
# @option options [Boolean] noMove
|
|
23
|
-
# @option options [Boolean] noResize
|
|
24
|
-
# @option options [Boolean] noEditPoints
|
|
25
|
-
# @option options [Boolean] noAdjustHandles
|
|
26
|
-
# @option options [Boolean] noChangeArrowheads
|
|
27
|
-
# @option options [Boolean] noChangeShapeType
|
|
28
|
-
def initialize(options={})
|
|
29
|
-
options.each do |o|
|
|
30
|
-
self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# The ValAxisData class manages the values for a chart value series.
|
|
4
|
-
class ValAxisData < CatAxisData
|
|
5
|
-
|
|
6
|
-
# Serializes the object
|
|
7
|
-
# @param [String] str
|
|
8
|
-
# @return [String]
|
|
9
|
-
def to_xml_string(str = '')
|
|
10
|
-
str << '<c:val>'
|
|
11
|
-
str << '<c:numRef>'
|
|
12
|
-
str << '<c:f>' << Axlsx::cell_range(@list) << '</c:f>'
|
|
13
|
-
str << '<c:numCache>'
|
|
14
|
-
str << '<c:formatCode>General</c:formatCode>'
|
|
15
|
-
str << '<c:ptCount val="' << size.to_s << '"/>'
|
|
16
|
-
each_with_index do |item, index|
|
|
17
|
-
v = item.is_a?(Cell) ? item.value.to_s : item
|
|
18
|
-
str << '<c:pt idx="' << index.to_s << '"><c:v>' << v << '</c:v></c:pt>'
|
|
19
|
-
end
|
|
20
|
-
str << '</c:numCache>'
|
|
21
|
-
str << '</c:numRef>'
|
|
22
|
-
str << '</c:val>'
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# A NumFmt object defines an identifier and formatting code for data in cells.
|
|
4
|
-
# @note The recommended way to manage styles is Styles#add_style
|
|
5
|
-
class NumFmt
|
|
6
|
-
# @return [Integer] An unsinged integer referencing a standard or custom number format.
|
|
7
|
-
# @note
|
|
8
|
-
# These are the known formats I can dig up. The constant NUM_FMT_PERCENT is 9, and uses the default % formatting. Axlsx also defines a few formats for date and time that are commonly used in asia as NUM_FMT_YYYYMMDD and NUM_FRM_YYYYMMDDHHMMSS.
|
|
9
|
-
# 1 0
|
|
10
|
-
# 2 0.00
|
|
11
|
-
# 3 #,##0
|
|
12
|
-
# 4 #,##0.00
|
|
13
|
-
# 5 $#,##0_);($#,##0)
|
|
14
|
-
# 6 $#,##0_);[Red]($#,##0)
|
|
15
|
-
# 7 $#,##0.00_);($#,##0.00)
|
|
16
|
-
# 8 $#,##0.00_);[Red]($#,##0.00)
|
|
17
|
-
# 9 0%
|
|
18
|
-
# 10 0.00%
|
|
19
|
-
# 11 0.00E+00
|
|
20
|
-
# 12 # ?/?
|
|
21
|
-
# 13 # ??/??
|
|
22
|
-
# 14 m/d/yyyy
|
|
23
|
-
# 15 d-mmm-yy
|
|
24
|
-
# 16 d-mmm
|
|
25
|
-
# 17 mmm-yy
|
|
26
|
-
# 18 h:mm AM/PM
|
|
27
|
-
# 19 h:mm:ss AM/PM
|
|
28
|
-
# 20 h:mm
|
|
29
|
-
# 21 h:mm:ss
|
|
30
|
-
# 22 m/d/yyyy h:mm
|
|
31
|
-
# 37 #,##0_);(#,##0)
|
|
32
|
-
# 38 #,##0_);[Red](#,##0)
|
|
33
|
-
# 39 #,##0.00_);(#,##0.00)
|
|
34
|
-
# 40 #,##0.00_);[Red](#,##0.00)
|
|
35
|
-
# 45 mm:ss
|
|
36
|
-
# 46 [h]:mm:ss
|
|
37
|
-
# 47 mm:ss.0
|
|
38
|
-
# 48 ##0.0E+0
|
|
39
|
-
# 49 @
|
|
40
|
-
# @see Axlsx
|
|
41
|
-
attr_reader :numFmtId
|
|
42
|
-
|
|
43
|
-
# @return [String] The formatting to use for this number format.
|
|
44
|
-
# @see http://support.microsoft.com/kb/264372
|
|
45
|
-
attr_reader :formatCode
|
|
46
|
-
def initialize(options={})
|
|
47
|
-
@numFmtId = 0
|
|
48
|
-
@formatCode = ""
|
|
49
|
-
options.each do |o|
|
|
50
|
-
self.send("#{o[0]}=", o[1]) if self.respond_to? o[0]
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
# @see numFmtId
|
|
55
|
-
def numFmtId=(v) Axlsx::validate_unsigned_int v; @numFmtId = v end
|
|
56
|
-
# @see formatCode
|
|
57
|
-
def formatCode=(v) Axlsx::validate_string v; @formatCode = v end
|
|
58
|
-
|
|
59
|
-
# Serializes the object
|
|
60
|
-
# @param [String] str
|
|
61
|
-
# @return [String]
|
|
62
|
-
def to_xml_string(str = '')
|
|
63
|
-
str << '<numFmt '
|
|
64
|
-
str << instance_values.map { |key, value| '' << key.to_s << '="' << value.to_s << '"' }.join(' ')
|
|
65
|
-
str << '/>'
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
end
|
|
69
|
-
end
|