axlsx 1.1.5 → 1.1.6
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/README.md +26 -7
- data/Rakefile +2 -1
- data/examples/chart_colors.xlsx +0 -0
- data/examples/data_validation.rb +50 -0
- data/examples/example.xlsx +0 -0
- data/examples/example_streamed.xlsx +0 -0
- data/examples/examples_saved.xlsx +0 -0
- data/examples/fish.xlsx +0 -0
- data/examples/no-use_autowidth.xlsx +0 -0
- data/examples/pareto.rb +28 -0
- data/examples/pareto.xlsx +0 -0
- data/examples/pie_chart.rb +16 -0
- data/examples/pie_chart.xlsx +0 -0
- data/examples/pie_chart_saved.xlsx +0 -0
- data/examples/shared_strings_example.xlsx +0 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/sheet_protection.xlsx +0 -0
- data/examples/two_cell_anchor_image.rb +11 -0
- data/examples/two_cell_anchor_image.xlsx +0 -0
- data/examples/~$pie_chart_saved.xlsx +0 -0
- data/lib/axlsx.rb +7 -0
- data/lib/axlsx/content_type/default.rb +15 -9
- data/lib/axlsx/content_type/override.rb +10 -6
- data/lib/axlsx/doc_props/app.rb +152 -99
- data/lib/axlsx/drawing/axis.rb +30 -23
- data/lib/axlsx/drawing/bar_series.rb +1 -1
- data/lib/axlsx/drawing/drawing.rb +7 -2
- data/lib/axlsx/drawing/pic.rb +44 -4
- data/lib/axlsx/drawing/two_cell_anchor.rb +6 -1
- data/lib/axlsx/drawing/vml_shape.rb +2 -5
- data/lib/axlsx/rels/relationships.rb +1 -1
- data/lib/axlsx/stylesheet/table_style.rb +3 -3
- data/lib/axlsx/util/simple_typed_list.rb +0 -13
- data/lib/axlsx/util/validators.rb +21 -0
- data/lib/axlsx/version.rb +1 -1
- data/lib/axlsx/workbook/workbook.rb +2 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +3 -4
- data/lib/axlsx/workbook/worksheet/comment.rb +3 -9
- data/lib/axlsx/workbook/worksheet/data_validation.rb +245 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +17 -3
- data/lib/axlsx/workbook/worksheet/row.rb +34 -18
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +224 -0
- data/lib/axlsx/workbook/worksheet/table.rb +2 -2
- data/lib/axlsx/workbook/worksheet/worksheet.rb +57 -22
- data/test/doc_props/tc_app.rb +31 -1
- data/test/drawing/tc_axis.rb +12 -2
- data/test/drawing/tc_chart.rb +21 -3
- data/test/drawing/tc_drawing.rb +6 -1
- data/test/drawing/tc_hyperlink.rb +0 -5
- data/test/drawing/tc_pic.rb +22 -2
- data/test/drawing/tc_scatter_chart.rb +6 -1
- data/test/drawing/tc_two_cell_anchor.rb +1 -2
- data/test/stylesheet/tc_styles.rb +3 -4
- data/test/stylesheet/tc_table_style.rb +8 -0
- data/test/stylesheet/tc_table_style_element.rb +10 -1
- data/test/tc_package.rb +43 -15
- data/test/util/tc_simple_typed_list.rb +13 -0
- data/test/util/tc_validators.rb +7 -7
- data/test/workbook/worksheet/table/tc_table.rb +3 -3
- data/test/workbook/worksheet/tc_cell.rb +15 -6
- data/test/workbook/worksheet/tc_col.rb +9 -0
- data/test/workbook/worksheet/tc_comment.rb +8 -7
- data/test/workbook/worksheet/tc_comments.rb +8 -1
- data/test/workbook/worksheet/tc_conditional_formatting.rb +44 -0
- data/test/workbook/worksheet/tc_data_bar.rb +1 -1
- data/test/workbook/worksheet/tc_data_validation.rb +265 -0
- data/test/workbook/worksheet/tc_page_setup.rb +22 -4
- data/test/workbook/worksheet/tc_row.rb +14 -2
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
- data/test/workbook/worksheet/tc_worksheet.rb +29 -4
- metadata +31 -10
@@ -3,8 +3,8 @@ require 'tc_helper.rb'
|
|
3
3
|
class TestPageSetup < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
|
-
p = Axlsx::Package.new
|
7
|
-
ws = p.workbook.add_worksheet :name => "hmmm"
|
6
|
+
@p = Axlsx::Package.new
|
7
|
+
ws = @p.workbook.add_worksheet :name => "hmmm"
|
8
8
|
@ps = ws.page_setup
|
9
9
|
end
|
10
10
|
|
@@ -18,7 +18,14 @@ class TestPageSetup < Test::Unit::TestCase
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_initialize_with_options
|
21
|
-
|
21
|
+
page_setup = { :fit_to_height => 1,
|
22
|
+
:fit_to_width => 2,
|
23
|
+
:orientation => :landscape,
|
24
|
+
:paper_height => "297mm",
|
25
|
+
:paper_width => "210mm",
|
26
|
+
:scale => 50 }
|
27
|
+
|
28
|
+
optioned = @p.workbook.add_worksheet(:name => 'optioned', :page_setup => page_setup).page_setup
|
22
29
|
assert_equal(1, optioned.fit_to_height)
|
23
30
|
assert_equal(2, optioned.fit_to_width)
|
24
31
|
assert_equal(:landscape, optioned.orientation)
|
@@ -99,5 +106,16 @@ class TestPageSetup < Test::Unit::TestCase
|
|
99
106
|
assert_nothing_raised { @ps.scale = 99 }
|
100
107
|
assert_equal(99, @ps.scale)
|
101
108
|
end
|
102
|
-
|
109
|
+
|
110
|
+
def test_fit_to
|
111
|
+
fits = @ps.fit_to(:width => 1)
|
112
|
+
assert_equal([1, 9999], fits)
|
113
|
+
fits = @ps.fit_to :height => 1
|
114
|
+
assert_equal(fits, [9999,1])
|
115
|
+
fits = @ps.fit_to :height => 7, :width => 2
|
116
|
+
assert_equal(fits, [2, 7])
|
117
|
+
assert_raise(ArgumentError) { puts @ps.fit_to(:width => true)}
|
118
|
+
|
119
|
+
|
120
|
+
end
|
103
121
|
end
|
@@ -39,7 +39,7 @@ class TestRow < Test::Unit::TestCase
|
|
39
39
|
|
40
40
|
def test_add_cell_autowidth_info
|
41
41
|
width = @ws.send :calculate_width, 'this is the cell of cells', @ws.workbook.styles.fonts.first.sz
|
42
|
-
|
42
|
+
@row.add_cell("this is the cell of cells")
|
43
43
|
assert_equal(@ws.column_info.last.width, width)
|
44
44
|
end
|
45
45
|
|
@@ -66,6 +66,13 @@ class TestRow < Test::Unit::TestCase
|
|
66
66
|
assert_equal(15, @row.height)
|
67
67
|
end
|
68
68
|
|
69
|
+
|
70
|
+
def test_ph
|
71
|
+
assert_raise(ArgumentError) { @row.ph = -3 }
|
72
|
+
assert_nothing_raised { @row.ph = true }
|
73
|
+
assert_equal(true, @row.ph)
|
74
|
+
end
|
75
|
+
|
69
76
|
def test_hidden
|
70
77
|
assert_raise(ArgumentError) { @row.hidden = -3 }
|
71
78
|
assert_nothing_raised { @row.hidden = true }
|
@@ -84,13 +91,18 @@ class TestRow < Test::Unit::TestCase
|
|
84
91
|
assert_equal(2, @row.outlineLevel)
|
85
92
|
end
|
86
93
|
|
87
|
-
|
94
|
+
def test_to_xml_without_custom_height
|
88
95
|
doc = Nokogiri::XML.parse(@row.to_xml_string(0))
|
89
96
|
assert_equal(0, doc.xpath(".//row[@ht]").size)
|
90
97
|
assert_equal(0, doc.xpath(".//row[@customHeight]").size)
|
91
98
|
end
|
92
99
|
|
93
100
|
def test_to_xml_string
|
101
|
+
@row.height = 20
|
102
|
+
@row.s = 1
|
103
|
+
@row.outlineLevel = 2
|
104
|
+
@row.collapsed = true
|
105
|
+
@row.hidden = true
|
94
106
|
r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
|
95
107
|
assert_equal(r_s_xml.xpath(".//row[@r=1]").size, 1)
|
96
108
|
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'tc_helper.rb'
|
3
|
+
|
4
|
+
# <xsd:complexType name="CT_SheetProtection">
|
5
|
+
# <xsd:attribute name="sheet" type="xsd:boolean" use="optional" default="false"/>
|
6
|
+
# <xsd:attribute name="objects" type="xsd:boolean" use="optional" default="false"/>
|
7
|
+
# <xsd:attribute name="scenarios" type="xsd:boolean" use="optional" default="false"/>
|
8
|
+
# <xsd:attribute name="formatCells" type="xsd:boolean" use="optional" default="true"/>
|
9
|
+
# <xsd:attribute name="formatColumns" type="xsd:boolean" use="optional" default="true"/>
|
10
|
+
# <xsd:attribute name="formatRows" type="xsd:boolean" use="optional" default="true"/>
|
11
|
+
# <xsd:attribute name="insertColumns" type="xsd:boolean" use="optional" default="true"/>
|
12
|
+
# <xsd:attribute name="insertRows" type="xsd:boolean" use="optional" default="true"/>
|
13
|
+
# <xsd:attribute name="insertHyperlinks" type="xsd:boolean" use="optional" default="true"/>
|
14
|
+
# <xsd:attribute name="deleteColumns" type="xsd:boolean" use="optional" default="true"/>
|
15
|
+
# <xsd:attribute name="deleteRows" type="xsd:boolean" use="optional" default="true"/>
|
16
|
+
# <xsd:attribute name="selectLockedCells" type="xsd:boolean" use="optional" default="false"/>
|
17
|
+
# <xsd:attribute name="sort" type="xsd:boolean" use="optional" default="true"/>
|
18
|
+
# <xsd:attribute name="autoFilter" type="xsd:boolean" use="optional" default="true"/>
|
19
|
+
# <xsd:attribute name="pivotTables" type="xsd:boolean" use="optional" default="true"/>
|
20
|
+
# <xsd:attribute name="selectUnlockedCells" type="xsd:boolean" use="optional" default="false"/>
|
21
|
+
# <xsd:attribute name="password" type="xsd:string" use="optional" default="nil"/>
|
22
|
+
# </xsd:complexType>
|
23
|
+
|
24
|
+
class TestSheetProtection < Test::Unit::TestCase
|
25
|
+
def setup
|
26
|
+
#inverse defaults
|
27
|
+
@boolean_options = { :sheet => false, :objects => true, :scenarios => true, :format_cells => false,
|
28
|
+
:format_columns => false, :format_rows => false, :insert_columns => false, :insert_rows => false,
|
29
|
+
:insert_hyperlinks => false, :delete_columns => false, :delete_rows => false, :select_locked_cells => true,
|
30
|
+
:sort => false, :auto_filter => false, :pivot_tables => false, :select_unlocked_cells => true }
|
31
|
+
|
32
|
+
@string_options = { :password => nil }
|
33
|
+
|
34
|
+
@options = @boolean_options.merge(@string_options)
|
35
|
+
|
36
|
+
@sp = Axlsx::SheetProtection.new(@options)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_initialize
|
40
|
+
sp = Axlsx::SheetProtection.new
|
41
|
+
@boolean_options.each do |key, value|
|
42
|
+
assert_equal(!value, sp.send(key.to_sym), "initialized default #{key} should be #{!value}")
|
43
|
+
assert_equal(value, @sp.send(key.to_sym), "initialized options #{key} should be #{value}")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_boolean_attribute_validation
|
48
|
+
@boolean_options.each do |key, value|
|
49
|
+
assert_raise(ArgumentError, "#{key} must be boolean") { @sp.send("#{key}=".to_sym, 'A') }
|
50
|
+
assert_nothing_raised { @sp.send("#{key}=".to_sym, true) }
|
51
|
+
assert_nothing_raised { @sp.send("#{key}=".to_sym, true) }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_to_xml_string
|
56
|
+
@sp.password = 'fish' # -> CA3F
|
57
|
+
doc = Nokogiri::XML(@sp.to_xml_string)
|
58
|
+
@options.each do |key, value|
|
59
|
+
assert(doc.xpath("//sheetProtection[@#{key.to_s.gsub(/_(.)/){ $1.upcase }}='#{value}']"))
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
@@ -180,10 +180,16 @@ class TestWorksheet < Test::Unit::TestCase
|
|
180
180
|
end
|
181
181
|
assert_equal(@ws.rows[1].cells[0].style, 0)
|
182
182
|
assert_equal(@ws.rows[2].cells[1].style, 0)
|
183
|
+
@ws.row_style( 1..2, 1, :col_offset => 2)
|
184
|
+
@ws.rows[(1..2)].each do |r|
|
185
|
+
r.cells[(2..-1)].each do |c|
|
186
|
+
assert_equal(c.style, 1)
|
187
|
+
end
|
188
|
+
end
|
183
189
|
end
|
184
190
|
|
185
191
|
def test_to_xml_string_fit_to_page
|
186
|
-
@ws.
|
192
|
+
@ws.page_setup.fit_to_width = 1
|
187
193
|
doc = Nokogiri::XML(@ws.to_xml_string)
|
188
194
|
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:pageSetUpPr[@fitToPage="true"]').size, 1)
|
189
195
|
end
|
@@ -194,6 +200,11 @@ class TestWorksheet < Test::Unit::TestCase
|
|
194
200
|
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:dimension[@ref="A1:C1"]').size, 1)
|
195
201
|
end
|
196
202
|
|
203
|
+
def test_fit_to_page_assignation_does_nothing
|
204
|
+
@ws.fit_to_page = false
|
205
|
+
assert_equal(@ws.fit_to_page, false)
|
206
|
+
end
|
207
|
+
|
197
208
|
def test_to_xml_string_selected
|
198
209
|
@ws.selected = true
|
199
210
|
doc = Nokogiri::XML(@ws.to_xml_string)
|
@@ -241,6 +252,12 @@ class TestWorksheet < Test::Unit::TestCase
|
|
241
252
|
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:mergeCells/xmlns:mergeCell[@ref="E1:F1"]').size, 1)
|
242
253
|
end
|
243
254
|
|
255
|
+
def test_to_xml_string_sheet_protection
|
256
|
+
@ws.sheet_protection.password = 'fish'
|
257
|
+
doc = Nokogiri::XML(@ws.to_xml_string)
|
258
|
+
assert(doc.xpath('//sheetProtection'))
|
259
|
+
end
|
260
|
+
|
244
261
|
def test_to_xml_string_page_margins
|
245
262
|
@ws.page_margins do |pm|
|
246
263
|
pm.left = 9
|
@@ -269,7 +286,7 @@ class TestWorksheet < Test::Unit::TestCase
|
|
269
286
|
end
|
270
287
|
|
271
288
|
def test_to_xml_string_drawing
|
272
|
-
|
289
|
+
@ws.add_chart Axlsx::Pie3DChart
|
273
290
|
doc = Nokogiri::XML(@ws.to_xml_string)
|
274
291
|
assert_equal(doc.xpath('//xmlns:worksheet/xmlns:drawing[@r:id="rId1"]').size, 1)
|
275
292
|
end
|
@@ -336,7 +353,7 @@ class TestWorksheet < Test::Unit::TestCase
|
|
336
353
|
|
337
354
|
|
338
355
|
def test_name_unique
|
339
|
-
assert_raise(ArgumentError, "worksheet name must be unique") { n = @ws.name; @ws.workbook.add_worksheet(:name=>
|
356
|
+
assert_raise(ArgumentError, "worksheet name must be unique") { n = @ws.name; @ws.workbook.add_worksheet(:name=> n) }
|
340
357
|
end
|
341
358
|
|
342
359
|
def test_name_size
|
@@ -376,7 +393,15 @@ class TestWorksheet < Test::Unit::TestCase
|
|
376
393
|
assert_equal(@ws.merged_cells.size, 3)
|
377
394
|
assert_equal(@ws.merged_cells.last, "A3:B3")
|
378
395
|
end
|
379
|
-
|
396
|
+
|
397
|
+
def test_merge_cells_sorts_correctly_by_row_when_given_array
|
398
|
+
10.times do |i|
|
399
|
+
@ws.add_row [i]
|
400
|
+
end
|
401
|
+
@ws.merge_cells [@ws.rows[8].cells.first, @ws.rows[9].cells.first]
|
402
|
+
assert_equal "A9:A10", @ws.merged_cells.first
|
403
|
+
end
|
404
|
+
|
380
405
|
def test_auto_filter
|
381
406
|
assert(@ws.auto_filter.nil?)
|
382
407
|
assert_raise(ArgumentError) { @ws.auto_filter = 123 }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: axlsx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &2151817600 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.4.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2151817600
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rubyzip
|
27
|
-
requirement: &
|
27
|
+
requirement: &2151816420 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.5
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2151816420
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &2151814900 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.8.7
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2151814900
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: cover_me
|
49
|
-
requirement: &
|
49
|
+
requirement: &2151814060 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2151814060
|
58
58
|
description: ! ' xlsx generation with charts, images, automated column width, customizable
|
59
59
|
styles and full schema validation. Axlsx excels at helping you generate beautiful
|
60
60
|
Office Open XML Spreadsheet documents without having to understand the entire ECMA
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb
|
174
174
|
- lib/axlsx/workbook/worksheet/data_bar.rb
|
175
175
|
- lib/axlsx/workbook/worksheet/data_bar.rb~
|
176
|
+
- lib/axlsx/workbook/worksheet/data_validation.rb
|
176
177
|
- lib/axlsx/workbook/worksheet/date_time_converter.rb
|
177
178
|
- lib/axlsx/workbook/worksheet/icon_set.rb
|
178
179
|
- lib/axlsx/workbook/worksheet/icon_set.rb~
|
@@ -181,6 +182,7 @@ files:
|
|
181
182
|
- lib/axlsx/workbook/worksheet/print_options.rb
|
182
183
|
- lib/axlsx/workbook/worksheet/row.rb
|
183
184
|
- lib/axlsx/workbook/worksheet/shared_strings_table.rb~
|
185
|
+
- lib/axlsx/workbook/worksheet/sheet_protection.rb
|
184
186
|
- lib/axlsx/workbook/worksheet/table.rb
|
185
187
|
- lib/axlsx/workbook/worksheet/table.rb~
|
186
188
|
- lib/axlsx/workbook/worksheet/worksheet.rb
|
@@ -231,6 +233,7 @@ files:
|
|
231
233
|
- examples/conditional_formatting/hitting_the_high_notes.rb
|
232
234
|
- examples/conditional_formatting/scaled_colors.rb
|
233
235
|
- examples/conditional_formatting/stop_and_go.rb
|
236
|
+
- examples/data_validation.rb
|
234
237
|
- examples/doc/_index.html
|
235
238
|
- examples/doc/class_list.html
|
236
239
|
- examples/doc/css/common.css
|
@@ -247,13 +250,27 @@ files:
|
|
247
250
|
- examples/example.rb
|
248
251
|
- examples/example.xlsx
|
249
252
|
- examples/example_streamed.xlsx
|
253
|
+
- examples/examples_saved.xlsx
|
250
254
|
- examples/extractive.rb
|
255
|
+
- examples/fish.xlsx
|
251
256
|
- examples/image1.gif
|
252
257
|
- examples/image1.jpeg
|
253
258
|
- examples/image1.jpg
|
254
259
|
- examples/image1.png
|
260
|
+
- examples/no-use_autowidth.xlsx
|
261
|
+
- examples/pareto.rb
|
262
|
+
- examples/pareto.xlsx
|
263
|
+
- examples/pie_chart.rb
|
264
|
+
- examples/pie_chart.xlsx
|
265
|
+
- examples/pie_chart_saved.xlsx
|
255
266
|
- examples/sample.png
|
267
|
+
- examples/shared_strings_example.xlsx
|
268
|
+
- examples/sheet_protection.rb
|
269
|
+
- examples/sheet_protection.xlsx
|
256
270
|
- examples/skydrive/real_example.rb
|
271
|
+
- examples/two_cell_anchor_image.rb
|
272
|
+
- examples/two_cell_anchor_image.xlsx
|
273
|
+
- examples/~$pie_chart_saved.xlsx
|
257
274
|
- LICENSE
|
258
275
|
- README.md
|
259
276
|
- Rakefile
|
@@ -348,6 +365,7 @@ files:
|
|
348
365
|
- test/workbook/worksheet/tc_conditional_formatting.rb
|
349
366
|
- test/workbook/worksheet/tc_data_bar.rb
|
350
367
|
- test/workbook/worksheet/tc_data_bar.rb~
|
368
|
+
- test/workbook/worksheet/tc_data_validation.rb
|
351
369
|
- test/workbook/worksheet/tc_date_time_converter.rb
|
352
370
|
- test/workbook/worksheet/tc_icon_set.rb
|
353
371
|
- test/workbook/worksheet/tc_icon_set.rb~
|
@@ -355,6 +373,7 @@ files:
|
|
355
373
|
- test/workbook/worksheet/tc_page_setup.rb
|
356
374
|
- test/workbook/worksheet/tc_print_options.rb
|
357
375
|
- test/workbook/worksheet/tc_row.rb
|
376
|
+
- test/workbook/worksheet/tc_sheet_protection.rb
|
358
377
|
- test/workbook/worksheet/tc_worksheet.rb
|
359
378
|
homepage: https://github.com/randym/axlsx
|
360
379
|
licenses: []
|
@@ -470,6 +489,7 @@ test_files:
|
|
470
489
|
- test/workbook/worksheet/tc_conditional_formatting.rb
|
471
490
|
- test/workbook/worksheet/tc_data_bar.rb
|
472
491
|
- test/workbook/worksheet/tc_data_bar.rb~
|
492
|
+
- test/workbook/worksheet/tc_data_validation.rb
|
473
493
|
- test/workbook/worksheet/tc_date_time_converter.rb
|
474
494
|
- test/workbook/worksheet/tc_icon_set.rb
|
475
495
|
- test/workbook/worksheet/tc_icon_set.rb~
|
@@ -477,5 +497,6 @@ test_files:
|
|
477
497
|
- test/workbook/worksheet/tc_page_setup.rb
|
478
498
|
- test/workbook/worksheet/tc_print_options.rb
|
479
499
|
- test/workbook/worksheet/tc_row.rb
|
500
|
+
- test/workbook/worksheet/tc_sheet_protection.rb
|
480
501
|
- test/workbook/worksheet/tc_worksheet.rb
|
481
502
|
has_rdoc: axlsx
|