caxlsx 2.0.2 → 3.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +125 -30
  3. data/README.md +65 -151
  4. data/Rakefile +9 -11
  5. data/examples/{image1.jpeg → assets/image1.jpeg} +0 -0
  6. data/examples/generate.rb +15 -0
  7. data/lib/axlsx.rb +35 -17
  8. data/lib/axlsx/content_type/abstract_content_type.rb +1 -1
  9. data/lib/axlsx/content_type/content_type.rb +1 -1
  10. data/lib/axlsx/doc_props/app.rb +1 -1
  11. data/lib/axlsx/doc_props/core.rb +5 -5
  12. data/lib/axlsx/drawing/area_chart.rb +99 -0
  13. data/lib/axlsx/drawing/area_series.rb +110 -0
  14. data/lib/axlsx/drawing/axes.rb +1 -1
  15. data/lib/axlsx/drawing/axis.rb +12 -9
  16. data/lib/axlsx/drawing/bar_3D_chart.rb +13 -13
  17. data/lib/axlsx/drawing/bar_chart.rb +143 -0
  18. data/lib/axlsx/drawing/bar_series.rb +12 -14
  19. data/lib/axlsx/drawing/bubble_chart.rb +59 -0
  20. data/lib/axlsx/drawing/bubble_series.rb +63 -0
  21. data/lib/axlsx/drawing/cat_axis.rb +5 -5
  22. data/lib/axlsx/drawing/chart.rb +52 -8
  23. data/lib/axlsx/drawing/d_lbls.rb +4 -4
  24. data/lib/axlsx/drawing/drawing.rb +6 -1
  25. data/lib/axlsx/drawing/graphic_frame.rb +3 -3
  26. data/lib/axlsx/drawing/hyperlink.rb +1 -3
  27. data/lib/axlsx/drawing/line_3D_chart.rb +2 -2
  28. data/lib/axlsx/drawing/line_chart.rb +10 -10
  29. data/lib/axlsx/drawing/line_series.rb +32 -3
  30. data/lib/axlsx/drawing/marker.rb +1 -1
  31. data/lib/axlsx/drawing/num_data.rb +4 -4
  32. data/lib/axlsx/drawing/num_data_source.rb +6 -6
  33. data/lib/axlsx/drawing/num_val.rb +3 -1
  34. data/lib/axlsx/drawing/one_cell_anchor.rb +3 -2
  35. data/lib/axlsx/drawing/pic.rb +25 -19
  36. data/lib/axlsx/drawing/picture_locking.rb +1 -3
  37. data/lib/axlsx/drawing/pie_3D_chart.rb +5 -6
  38. data/lib/axlsx/drawing/pie_series.rb +6 -6
  39. data/lib/axlsx/drawing/scaling.rb +6 -6
  40. data/lib/axlsx/drawing/scatter_chart.rb +10 -10
  41. data/lib/axlsx/drawing/scatter_series.rb +40 -7
  42. data/lib/axlsx/drawing/ser_axis.rb +2 -2
  43. data/lib/axlsx/drawing/series.rb +3 -3
  44. data/lib/axlsx/drawing/series_title.rb +4 -2
  45. data/lib/axlsx/drawing/str_data.rb +3 -3
  46. data/lib/axlsx/drawing/str_val.rb +3 -1
  47. data/lib/axlsx/drawing/title.rb +23 -4
  48. data/lib/axlsx/drawing/two_cell_anchor.rb +6 -1
  49. data/lib/axlsx/drawing/val_axis.rb +1 -1
  50. data/lib/axlsx/drawing/view_3D.rb +2 -2
  51. data/lib/axlsx/drawing/vml_drawing.rb +1 -1
  52. data/lib/axlsx/package.rb +58 -47
  53. data/lib/axlsx/rels/relationship.rb +27 -26
  54. data/lib/axlsx/rels/relationships.rb +7 -4
  55. data/lib/axlsx/stylesheet/border_pr.rb +2 -2
  56. data/lib/axlsx/stylesheet/cell_alignment.rb +1 -3
  57. data/lib/axlsx/stylesheet/cell_protection.rb +1 -3
  58. data/lib/axlsx/stylesheet/cell_style.rb +1 -3
  59. data/lib/axlsx/stylesheet/color.rb +1 -3
  60. data/lib/axlsx/stylesheet/font.rb +11 -3
  61. data/lib/axlsx/stylesheet/gradient_stop.rb +1 -1
  62. data/lib/axlsx/stylesheet/num_fmt.rb +10 -3
  63. data/lib/axlsx/stylesheet/pattern_fill.rb +1 -1
  64. data/lib/axlsx/stylesheet/styles.rb +7 -7
  65. data/lib/axlsx/stylesheet/table_style_element.rb +1 -3
  66. data/lib/axlsx/util/accessors.rb +6 -6
  67. data/lib/axlsx/util/constants.rb +108 -99
  68. data/lib/axlsx/util/mime_type_utils.rb +11 -0
  69. data/lib/axlsx/util/options_parser.rb +2 -1
  70. data/lib/axlsx/util/serialized_attributes.rb +16 -6
  71. data/lib/axlsx/util/simple_typed_list.rb +28 -52
  72. data/lib/axlsx/util/storage.rb +4 -4
  73. data/lib/axlsx/util/validators.rb +31 -19
  74. data/lib/axlsx/util/zip_command.rb +73 -0
  75. data/lib/axlsx/version.rb +1 -1
  76. data/lib/axlsx/workbook/defined_name.rb +11 -12
  77. data/lib/axlsx/workbook/defined_names.rb +2 -2
  78. data/lib/axlsx/workbook/shared_strings_table.rb +5 -5
  79. data/lib/axlsx/workbook/workbook.rb +36 -20
  80. data/lib/axlsx/workbook/workbook_view.rb +80 -0
  81. data/lib/axlsx/workbook/workbook_views.rb +22 -0
  82. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +2 -2
  83. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +1 -3
  84. data/lib/axlsx/workbook/worksheet/break.rb +1 -3
  85. data/lib/axlsx/workbook/worksheet/cell.rb +164 -75
  86. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +63 -43
  87. data/lib/axlsx/workbook/worksheet/cfvo.rb +1 -3
  88. data/lib/axlsx/workbook/worksheet/cfvos.rb +4 -1
  89. data/lib/axlsx/workbook/worksheet/col.rb +14 -13
  90. data/lib/axlsx/workbook/worksheet/col_breaks.rb +2 -2
  91. data/lib/axlsx/workbook/worksheet/cols.rb +5 -2
  92. data/lib/axlsx/workbook/worksheet/comment.rb +5 -6
  93. data/lib/axlsx/workbook/worksheet/comments.rb +9 -12
  94. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +1 -1
  95. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +1 -1
  96. data/lib/axlsx/workbook/worksheet/data_bar.rb +4 -6
  97. data/lib/axlsx/workbook/worksheet/data_validation.rb +8 -6
  98. data/lib/axlsx/workbook/worksheet/dimension.rb +2 -2
  99. data/lib/axlsx/workbook/worksheet/header_footer.rb +6 -8
  100. data/lib/axlsx/workbook/worksheet/icon_set.rb +3 -5
  101. data/lib/axlsx/workbook/worksheet/merged_cells.rb +4 -2
  102. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -0
  103. data/lib/axlsx/workbook/worksheet/page_margins.rb +1 -3
  104. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +1 -1
  105. data/lib/axlsx/workbook/worksheet/page_setup.rb +21 -23
  106. data/lib/axlsx/workbook/worksheet/pane.rb +1 -3
  107. data/lib/axlsx/workbook/worksheet/pivot_table.rb +44 -28
  108. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +4 -4
  109. data/lib/axlsx/workbook/worksheet/print_options.rb +1 -3
  110. data/lib/axlsx/workbook/worksheet/protected_range.rb +1 -3
  111. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +5 -2
  112. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -0
  113. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -0
  114. data/lib/axlsx/workbook/worksheet/row.rb +42 -52
  115. data/lib/axlsx/workbook/worksheet/row_breaks.rb +2 -2
  116. data/lib/axlsx/workbook/worksheet/selection.rb +1 -3
  117. data/lib/axlsx/workbook/worksheet/sheet_data.rb +3 -1
  118. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +21 -3
  119. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +1 -3
  120. data/lib/axlsx/workbook/worksheet/table.rb +6 -6
  121. data/lib/axlsx/workbook/worksheet/table_style_info.rb +1 -3
  122. data/lib/axlsx/workbook/worksheet/tables.rb +4 -1
  123. data/lib/axlsx/workbook/worksheet/worksheet.rb +76 -81
  124. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +10 -10
  125. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +3 -3
  126. data/lib/caxlsx.rb +2 -0
  127. data/test/drawing/tc_area_chart.rb +39 -0
  128. data/test/drawing/tc_area_series.rb +71 -0
  129. data/test/drawing/tc_axis.rb +27 -0
  130. data/test/drawing/tc_bar_chart.rb +71 -0
  131. data/test/drawing/tc_bubble_chart.rb +44 -0
  132. data/test/drawing/tc_bubble_series.rb +21 -0
  133. data/test/drawing/tc_chart.rb +23 -10
  134. data/test/drawing/tc_data_source.rb +6 -0
  135. data/test/drawing/tc_drawing.rb +4 -4
  136. data/test/drawing/tc_hyperlink.rb +1 -1
  137. data/test/drawing/tc_line_chart.rb +5 -5
  138. data/test/drawing/tc_line_series.rb +47 -6
  139. data/test/drawing/tc_one_cell_anchor.rb +1 -1
  140. data/test/drawing/tc_pic.rb +11 -15
  141. data/test/drawing/tc_pie_series.rb +2 -1
  142. data/test/drawing/tc_scatter_series.rb +36 -1
  143. data/test/drawing/tc_series_title.rb +21 -0
  144. data/test/drawing/tc_str_val.rb +9 -0
  145. data/test/drawing/tc_title.rb +21 -0
  146. data/test/fixtures/image1.gif +0 -0
  147. data/test/fixtures/image1.jpeg +0 -0
  148. data/test/fixtures/image1.jpg +0 -0
  149. data/test/fixtures/image1.png +0 -0
  150. data/test/fixtures/image1_fake.jpg +0 -0
  151. data/test/rels/tc_relationship.rb +8 -0
  152. data/test/stylesheet/tc_font.rb +14 -2
  153. data/test/stylesheet/tc_styles.rb +29 -3
  154. data/test/tc_axlsx.rb +37 -0
  155. data/test/tc_helper.rb +2 -0
  156. data/test/tc_package.rb +50 -13
  157. data/test/util/tc_mime_type_utils.rb +13 -0
  158. data/test/util/tc_simple_typed_list.rb +2 -3
  159. data/test/util/tc_validators.rb +35 -11
  160. data/test/workbook/tc_defined_name.rb +12 -4
  161. data/test/workbook/tc_shared_strings_table.rb +16 -1
  162. data/test/workbook/tc_workbook.rb +38 -3
  163. data/test/workbook/tc_workbook_view.rb +50 -0
  164. data/test/workbook/worksheet/auto_filter/tc_filters.rb +1 -1
  165. data/test/workbook/worksheet/tc_break.rb +1 -1
  166. data/test/workbook/worksheet/tc_cell.rb +143 -9
  167. data/test/workbook/worksheet/tc_col.rb +18 -3
  168. data/test/workbook/worksheet/tc_conditional_formatting.rb +2 -2
  169. data/test/workbook/worksheet/tc_data_bar.rb +1 -1
  170. data/test/workbook/worksheet/tc_data_validation.rb +11 -11
  171. data/test/workbook/worksheet/tc_header_footer.rb +2 -2
  172. data/test/workbook/worksheet/tc_icon_set.rb +1 -1
  173. data/test/workbook/worksheet/tc_outline_pr.rb +19 -0
  174. data/test/workbook/worksheet/tc_page_setup.rb +3 -3
  175. data/test/workbook/worksheet/tc_pivot_table.rb +21 -6
  176. data/test/workbook/worksheet/tc_print_options.rb +1 -1
  177. data/test/workbook/worksheet/tc_rich_text.rb +44 -0
  178. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -0
  179. data/test/workbook/worksheet/tc_row.rb +24 -2
  180. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +1 -1
  181. data/test/workbook/worksheet/tc_sheet_format_pr.rb +4 -4
  182. data/test/workbook/worksheet/tc_sheet_pr.rb +26 -4
  183. data/test/workbook/worksheet/tc_sheet_protection.rb +5 -5
  184. data/test/workbook/worksheet/tc_sheet_view.rb +4 -4
  185. data/test/workbook/worksheet/tc_table.rb +2 -3
  186. data/test/workbook/worksheet/tc_worksheet.rb +123 -60
  187. metadata +180 -128
  188. data/examples/2010_comments.rb +0 -17
  189. data/examples/anchor_swapping.rb +0 -28
  190. data/examples/auto_filter.rb +0 -16
  191. data/examples/basic_charts.rb +0 -58
  192. data/examples/chart_colors.rb +0 -88
  193. data/examples/colored_links.rb +0 -59
  194. data/examples/conditional_formatting/example_conditional_formatting.rb +0 -74
  195. data/examples/conditional_formatting/getting_barred.rb +0 -37
  196. data/examples/conditional_formatting/hitting_the_high_notes.rb +0 -37
  197. data/examples/conditional_formatting/scaled_colors.rb +0 -39
  198. data/examples/conditional_formatting/stop_and_go.rb +0 -37
  199. data/examples/data_validation.rb +0 -50
  200. data/examples/example.rb +0 -777
  201. data/examples/extractive.rb +0 -45
  202. data/examples/ios_preview.rb +0 -14
  203. data/examples/page_setup.rb +0 -11
  204. data/examples/pivot_table.rb +0 -39
  205. data/examples/sheet_protection.rb +0 -10
  206. data/examples/skydrive/real_example.rb +0 -63
  207. data/examples/styles.rb +0 -66
  208. data/examples/underline.rb +0 -13
  209. data/examples/wrap_text.rb +0 -21
  210. data/lib/axlsx/util/parser.rb +0 -44
@@ -2,9 +2,9 @@
2
2
  require 'tc_helper.rb'
3
3
 
4
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"/>
5
+ # <xsd:attribute name="sheet" type="xsd:boolean" use="optional" default=0/>
6
+ # <xsd:attribute name="objects" type="xsd:boolean" use="optional" default=0/>
7
+ # <xsd:attribute name="scenarios" type="xsd:boolean" use="optional" default=0/>
8
8
  # <xsd:attribute name="formatCells" type="xsd:boolean" use="optional" default="true"/>
9
9
  # <xsd:attribute name="formatColumns" type="xsd:boolean" use="optional" default="true"/>
10
10
  # <xsd:attribute name="formatRows" type="xsd:boolean" use="optional" default="true"/>
@@ -13,11 +13,11 @@ require 'tc_helper.rb'
13
13
  # <xsd:attribute name="insertHyperlinks" type="xsd:boolean" use="optional" default="true"/>
14
14
  # <xsd:attribute name="deleteColumns" type="xsd:boolean" use="optional" default="true"/>
15
15
  # <xsd:attribute name="deleteRows" type="xsd:boolean" use="optional" default="true"/>
16
- # <xsd:attribute name="selectLockedCells" type="xsd:boolean" use="optional" default="false"/>
16
+ # <xsd:attribute name="selectLockedCells" type="xsd:boolean" use="optional" default=0/>
17
17
  # <xsd:attribute name="sort" type="xsd:boolean" use="optional" default="true"/>
18
18
  # <xsd:attribute name="autoFilter" type="xsd:boolean" use="optional" default="true"/>
19
19
  # <xsd:attribute name="pivotTables" type="xsd:boolean" use="optional" default="true"/>
20
- # <xsd:attribute name="selectUnlockedCells" type="xsd:boolean" use="optional" default="false"/>
20
+ # <xsd:attribute name="selectUnlockedCells" type="xsd:boolean" use="optional" default=0/>
21
21
  # <xsd:attribute name="password" type="xsd:string" use="optional" default="nil"/>
22
22
  # </xsd:complexType>
23
23
 
@@ -197,11 +197,11 @@ class TestSheetView < Test::Unit::TestCase
197
197
 
198
198
  doc = Nokogiri::XML.parse(@ws.sheet_view.to_xml_string)
199
199
 
200
- assert_equal(1, doc.xpath("//sheetView[@tabSelected='false']").size)
200
+ assert_equal(1, doc.xpath("//sheetView[@tabSelected=0]").size)
201
201
 
202
- assert_equal(1, doc.xpath("//sheetView[@tabSelected='false'][@showWhiteSpace='false'][@showOutlineSymbols='false'][@showFormulas='false']
203
- [@rightToLeft='false'][@windowProtection='false'][@showZeros='true'][@showRuler='true']
204
- [@showRowColHeaders='true'][@showGridLines='true'][@defaultGridColor='true']
202
+ assert_equal(1, doc.xpath("//sheetView[@tabSelected=0][@showWhiteSpace=0][@showOutlineSymbols=0][@showFormulas=0]
203
+ [@rightToLeft=0][@windowProtection=0][@showZeros=1][@showRuler=1]
204
+ [@showRowColHeaders=1][@showGridLines=1][@defaultGridColor=1]
205
205
  [@zoomScale='100'][@workbookViewId='0'][@zoomScaleSheetLayoutView='0'][@zoomScalePageLayoutView='0']
206
206
  [@zoomScaleNormal='0'][@view='pageBreakPreview']").size)
207
207
  end
@@ -47,9 +47,9 @@ class TestTable < Test::Unit::TestCase
47
47
 
48
48
  def test_relationships
49
49
  assert(@ws.relationships.empty?)
50
- table = @ws.add_table("A1:D5")
50
+ @ws.add_table("A1:D5")
51
51
  assert_equal(@ws.relationships.size, 1, "adding a table adds a relationship")
52
- table = @ws.add_table("F1:J5")
52
+ @ws.add_table("F1:J5")
53
53
  assert_equal(@ws.relationships.size, 2, "adding a table adds a relationship")
54
54
  end
55
55
 
@@ -64,5 +64,4 @@ class TestTable < Test::Unit::TestCase
64
64
  end
65
65
  assert(errors.empty?, "error free validation")
66
66
  end
67
-
68
67
  end
@@ -29,6 +29,30 @@ class TestWorksheet < Test::Unit::TestCase
29
29
  assert_raises(ArgumentError) { @ws.name = 'foo?bar' }
30
30
  end
31
31
 
32
+ def test_name_unique
33
+ assert_raise(ArgumentError, "worksheet name must be unique") { n = @ws.name; @ws.workbook.add_worksheet(:name=> n) }
34
+ end
35
+
36
+ def test_name_unique_only_checks_other_worksheet_names
37
+ assert_nothing_raised { @ws.name = @ws.name }
38
+ assert_nothing_raised { Axlsx::Package.new.workbook.add_worksheet :name => 'Sheet1' }
39
+ end
40
+
41
+ def test_exception_if_name_too_long
42
+ assert_nothing_raised { @ws.name = 'x' * 31 }
43
+ assert_raises(ArgumentError) { @ws.name = 'x' * 32 }
44
+ end
45
+
46
+ def test_exception_if_name_too_long_because_of_multibyte_characters
47
+ four_characters_for_excel = "\u{1F1EB 1F1F7}" # french flag emoji
48
+ assert_raises(ArgumentError, "name too long!") do
49
+ @ws.name = four_characters_for_excel + "x" * 28
50
+ end
51
+ assert_nothing_raised { @ws.name = "#{four_characters_for_excel}123456789012345678901234567" }
52
+ assert_nothing_raised { @ws.name = "123456789012345678901234567890…" }
53
+ assert_nothing_raised { @ws.name = "123456789012345678901234567890✔" }
54
+ end
55
+
32
56
  def test_page_margins
33
57
  assert(@ws.page_margins.is_a? Axlsx::PageMargins)
34
58
  end
@@ -73,6 +97,15 @@ class TestWorksheet < Test::Unit::TestCase
73
97
  end
74
98
  end
75
99
 
100
+ def test_state
101
+ assert_equal(:visible, @ws.state)
102
+ end
103
+
104
+ def test_state_validation
105
+ assert_raise(ArgumentError) { @ws.state = :dead }
106
+ assert_nothing_raised { @ws.state = :very_hidden }
107
+ end
108
+
76
109
  def test_no_autowidth
77
110
  @ws.workbook.use_autowidth = false
78
111
  @ws.add_row [1,2,3,4]
@@ -84,7 +117,7 @@ class TestWorksheet < Test::Unit::TestCase
84
117
  page_setup = {:fit_to_height => 1, :fit_to_width => 1, :orientation => :landscape, :paper_width => "210mm", :paper_height => "297mm", :scale => 80}
85
118
  print_options = {:grid_lines => true, :headings => true, :horizontal_centered => true, :vertical_centered => true}
86
119
  header_footer = {:different_first => false, :different_odd_even => false, :odd_header => 'Header'}
87
- optioned = @ws.workbook.add_worksheet(:name => 'bob', :page_margins => page_margins, :page_setup => page_setup, :print_options => print_options, :header_footer => header_footer, :selected => true, :show_gridlines => false)
120
+ optioned = @ws.workbook.add_worksheet(:name => 'bob', :page_margins => page_margins, :page_setup => page_setup, :print_options => print_options, :header_footer => header_footer)
88
121
  page_margins.keys.each do |key|
89
122
  assert_equal(page_margins[key], optioned.page_margins.send(key))
90
123
  end
@@ -98,23 +131,21 @@ class TestWorksheet < Test::Unit::TestCase
98
131
  assert_equal(header_footer[key], optioned.header_footer.send(key))
99
132
  end
100
133
  assert_equal(optioned.name, 'bob')
101
- assert_equal(optioned.selected, true)
102
- assert_equal(optioned.show_gridlines, false)
103
134
 
104
135
  end
105
136
 
106
137
 
107
- def test_use_gridlines
108
- assert_raise(ArgumentError) { @ws.show_gridlines = -1.1 }
109
- assert_nothing_raised { @ws.show_gridlines = false }
110
- assert_equal(@ws.show_gridlines, false)
111
- end
138
+ # def test_use_gridlines
139
+ # assert_raise(ArgumentError) { @ws.show_gridlines = -1.1 }
140
+ # assert_nothing_raised { @ws.show_gridlines = false }
141
+ # assert_equal(@ws.show_gridlines, false)
142
+ # end
112
143
 
113
- def test_selected
114
- assert_raise(ArgumentError) { @ws.selected = -1.1 }
115
- assert_nothing_raised { @ws.selected = true }
116
- assert_equal(@ws.selected, true)
117
- end
144
+ # def test_selected
145
+ # assert_raise(ArgumentError) { @ws.selected = -1.1 }
146
+ # assert_nothing_raised { @ws.selected = true }
147
+ # assert_equal(@ws.selected, true)
148
+ # end
118
149
 
119
150
  def test_rels_pn
120
151
  assert_equal(@ws.rels_pn, "worksheets/_rels/sheet1.xml.rels")
@@ -257,11 +288,11 @@ class TestWorksheet < Test::Unit::TestCase
257
288
  end
258
289
  end
259
290
 
260
- def test_to_xml_string_fit_to_page
261
- @ws.page_setup.fit_to_width = 1
262
- doc = Nokogiri::XML(@ws.to_xml_string)
263
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:pageSetUpPr[@fitToPage="true"]').size, 1)
264
- end
291
+ # def test_to_xml_string_fit_to_page
292
+ # @ws.page_setup.fit_to_width = 1
293
+ # doc = Nokogiri::XML(@ws.to_xml_string)
294
+ # assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:pageSetUpPr[@fitToPage=1]').size, 1)
295
+ # end
265
296
 
266
297
  def test_to_xml_string_dimensions
267
298
  @ws.add_row [1,2,3]
@@ -269,22 +300,22 @@ class TestWorksheet < Test::Unit::TestCase
269
300
  assert_equal(doc.xpath('//xmlns:worksheet/xmlns:dimension[@ref="A1:C1"]').size, 1)
270
301
  end
271
302
 
272
- def test_fit_to_page_assignation_does_nothing
273
- @ws.fit_to_page = true
274
- assert_equal(@ws.fit_to_page?, false)
275
- end
303
+ # def test_fit_to_page_assignation_does_nothing
304
+ # @ws.fit_to_page = true
305
+ # assert_equal(@ws.fit_to_page?, false)
306
+ # end
276
307
 
277
- def test_to_xml_string_selected
278
- @ws.selected = true
279
- doc = Nokogiri::XML(@ws.to_xml_string)
280
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@tabSelected="true"]').size, 1)
281
- end
308
+ # def test_to_xml_string_selected
309
+ # @ws.selected = true
310
+ # doc = Nokogiri::XML(@ws.to_xml_string)
311
+ # assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@tabSelected=1]').size, 1)
312
+ # end
282
313
 
283
- def test_to_xml_string_show_gridlines
284
- @ws.show_gridlines = false
285
- doc = Nokogiri::XML(@ws.to_xml_string)
286
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@showGridLines="false"]').size, 1)
287
- end
314
+ # def test_to_xml_string_show_gridlines
315
+ # @ws.show_gridlines = false
316
+ # doc = Nokogiri::XML(@ws.to_xml_string)
317
+ # assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@showGridLines=0]').size, 1)
318
+ # end
288
319
 
289
320
  def test_to_xml_string_auto_fit_data
290
321
  @ws.add_row [1, "two"]
@@ -314,6 +345,13 @@ class TestWorksheet < Test::Unit::TestCase
314
345
  assert_equal(doc.xpath('//xmlns:worksheet/xmlns:mergeCells/xmlns:mergeCell[@ref="E1:F1"]').size, 1)
315
346
  end
316
347
 
348
+ def test_to_xml_string_merge_cells_row
349
+ row = @ws.add_row [1, "two"]
350
+ @ws.merge_cells row
351
+ doc = Nokogiri::XML(@ws.to_xml_string)
352
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:mergeCells/xmlns:mergeCell[@ref="A1:B1"]').size, 1)
353
+ end
354
+
317
355
  def test_to_xml_string_row_breaks
318
356
  @ws.add_page_break("A1")
319
357
  doc = Nokogiri::XML(@ws.to_xml_string)
@@ -350,7 +388,7 @@ class TestWorksheet < Test::Unit::TestCase
350
388
  po.horizontal_centered = true
351
389
  end
352
390
  doc = Nokogiri::XML(@ws.to_xml_string)
353
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:printOptions[@gridLines="true"][@horizontalCentered="true"]').size, 1)
391
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:printOptions[@gridLines=1][@horizontalCentered=1]').size, 1)
354
392
  end
355
393
 
356
394
  def test_to_xml_string_header_footer
@@ -360,7 +398,7 @@ class TestWorksheet < Test::Unit::TestCase
360
398
  hf.odd_header = 'Test Header'
361
399
  end
362
400
  doc = Nokogiri::XML(@ws.to_xml_string)
363
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:headerFooter[@differentFirst="false"][@differentOddEven="false"]').size, 1)
401
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:headerFooter[@differentFirst=0][@differentOddEven=0]').size, 1)
364
402
  end
365
403
 
366
404
  def test_to_xml_string_drawing
@@ -389,10 +427,13 @@ class TestWorksheet < Test::Unit::TestCase
389
427
  end
390
428
 
391
429
  def test_to_xml_string_with_illegal_chars
430
+ old = Axlsx::trust_input
431
+ Axlsx::trust_input = false
392
432
  nasties = "\v\u2028\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u001f"
393
433
  @ws.add_row [nasties]
394
434
  assert_equal(0, @ws.rows.last.cells.last.value.index("\v"))
395
- assert_equal(nil,@ws.to_xml_string.index("\v"))
435
+ assert_equal(nil, @ws.to_xml_string.index("\v"))
436
+ Axlsx::trust_input = old
396
437
  end
397
438
 
398
439
  def test_to_xml_string_with_newlines
@@ -420,31 +461,16 @@ class TestWorksheet < Test::Unit::TestCase
420
461
  def test_relationships
421
462
  @ws.add_row [1,2,3]
422
463
  assert(@ws.relationships.empty?, "No Drawing relationship until you add a chart")
423
- c = @ws.add_chart Axlsx::Pie3DChart
464
+ @ws.add_chart Axlsx::Pie3DChart
424
465
  assert_equal(@ws.relationships.size, 1, "adding a chart creates the relationship")
425
- c = @ws.add_chart Axlsx::Pie3DChart
466
+ @ws.add_chart Axlsx::Pie3DChart
426
467
  assert_equal(@ws.relationships.size, 1, "multiple charts still only result in one relationship")
427
- c = @ws.add_comment :text => 'builder', :author => 'bob', :ref => @ws.rows.last.cells.last
428
- assert_equal(@ws.relationships.size, 4, "adding a comment adds 3 relationships")
429
- c = @ws.add_comment :text => 'not that is a comment!', :author => 'travis', :ref => "A1"
430
- assert_equal(@ws.relationships.size, 4, "adding multiple comments in the same worksheet should not add any additional comment relationships")
431
- c = @ws.add_pivot_table 'G5:G6', 'A1:D10'
432
- assert_equal(@ws.relationships.size, 5, "adding a pivot table adds 1 relationship")
433
- end
434
-
435
-
436
- def test_name_unique
437
- assert_raise(ArgumentError, "worksheet name must be unique") { n = @ws.name; @ws.workbook.add_worksheet(:name=> n) }
438
- end
439
-
440
- def test_name_unique_only_checks_other_worksheet_names
441
- assert_nothing_raised { @ws.name = @ws.name }
442
- assert_nothing_raised { Axlsx::Package.new.workbook.add_worksheet :name => 'Sheet1' }
443
- end
444
-
445
- def test_name_size
446
- assert_raise(ArgumentError, "name too long!") { @ws.name = Array.new(32, "A").join() }
447
- assert_nothing_raised { @ws.name = Array.new(31, "A").join() }
468
+ @ws.add_comment :text => 'builder', :author => 'bob', :ref => @ws.rows.last.cells.last
469
+ assert_equal(@ws.relationships.size, 3, "adding a comment adds 2 relationships")
470
+ @ws.add_comment :text => 'not that is a comment!', :author => 'travis', :ref => "A1"
471
+ assert_equal(@ws.relationships.size, 3, "adding multiple comments in the same worksheet should not add any additional comment relationships")
472
+ @ws.add_pivot_table 'G5:G6', 'A1:D10'
473
+ assert_equal(@ws.relationships.size, 4, "adding a pivot table adds 1 relationship")
448
474
  end
449
475
 
450
476
  def test_set_fixed_width_column
@@ -464,7 +490,7 @@ class TestWorksheet < Test::Unit::TestCase
464
490
  @ws.column_widths nil, 0.5
465
491
  assert_equal(@ws.column_info[1].width, 0.5, 'eat my width')
466
492
  assert_raise(ArgumentError, 'only accept unsigned ints') { @ws.column_widths 2, 7, -1 }
467
- assert_raise(ArgumentError, 'only accept Integer, Float or Fixnum') { @ws.column_widths 2, 7, "-1" }
493
+ assert_raise(ArgumentError, 'only accept Integer or Float') { @ws.column_widths 2, 7, "-1" }
468
494
  end
469
495
 
470
496
  def test_protect_range
@@ -501,16 +527,43 @@ class TestWorksheet < Test::Unit::TestCase
501
527
 
502
528
  def test_auto_filter
503
529
  assert(@ws.auto_filter.range.nil?)
530
+ assert(@wb.defined_names.none?{|defined_name| defined_name.name=='_xlnm._FilterDatabase'})
504
531
  assert_raise(ArgumentError) { @ws.auto_filter = 123 }
505
532
  @ws.auto_filter.range = "A1:D9"
506
533
  assert_equal(@ws.auto_filter.range, "A1:D9")
534
+ @ws.to_xml_string
535
+ assert(@wb.defined_names.any?{|defined_name| defined_name.name=='_xlnm._FilterDatabase'})
507
536
  end
508
537
 
538
+ def test_auto_filter_assign
539
+ other_ws = @wb.add_worksheet
540
+
541
+ assert(@ws.auto_filter.range.nil?)
542
+ assert(other_ws.auto_filter.range.nil?)
543
+ assert(@wb.defined_names.none?{|defined_name| defined_name.name=='_xlnm._FilterDatabase'})
544
+ assert_raise(ArgumentError) { @ws.auto_filter = 123 }
545
+
546
+ @ws.auto_filter = "A1:D9"
547
+ assert_equal(@ws.auto_filter.range, "A1:D9")
548
+
549
+ other_ws.auto_filter = "A1:D2"
550
+ assert_equal(other_ws.auto_filter.range, "A1:D2")
551
+
552
+ @ws.to_xml_string
553
+ other_ws.to_xml_string
554
+
555
+ filter_database = @wb.defined_names.select{|defined_name| defined_name.name=='_xlnm._FilterDatabase'}
556
+ assert_equal(2, filter_database.size)
557
+ assert_equal(@ws.index, filter_database[0].local_sheet_id)
558
+ assert_equal(other_ws.index, filter_database[1].local_sheet_id)
559
+ end
560
+
561
+
509
562
  def test_sheet_pr_for_auto_filter
510
563
  @ws.auto_filter.range = 'A1:D9'
511
564
  @ws.auto_filter.add_column 0, :filters, :filter_items => [1]
512
565
  doc = Nokogiri::XML(@ws.to_xml_string)
513
- assert(doc.xpath('//sheetPr[@filterMode="true"]'))
566
+ assert(doc.xpath('//sheetPr[@filterMode=1]'))
514
567
  end
515
568
 
516
569
  def test_outline_level_rows
@@ -535,4 +588,14 @@ class TestWorksheet < Test::Unit::TestCase
535
588
  assert_equal(1, @wb.worksheets.size)
536
589
  end
537
590
 
591
+ def test_worksheet_only_includes_outline_pr_when_set
592
+ doc = Nokogiri::XML(@ws.to_xml_string)
593
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:outlinePr').size, 0)
594
+
595
+ @ws.sheet_pr.outline_pr.summary_below = false
596
+ @ws.sheet_pr.outline_pr.summary_right = true
597
+ doc = Nokogiri::XML(@ws.to_xml_string)
598
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:outlinePr').size, 1)
599
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:sheetPr/xmlns:outlinePr[@summaryBelow=0][@summaryRight=1]').size, 1)
600
+ end
538
601
  end
metadata CHANGED
@@ -1,101 +1,132 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caxlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 3.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Randy Morgan
8
8
  - Jurriaan Pruis
9
- - Noel Peden
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2019-10-04 00:00:00.000000000 Z
12
+ date: 2021-01-05 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: nokogiri
17
16
  requirement: !ruby/object:Gem::Requirement
18
17
  requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.10'
19
21
  - - ">="
20
22
  - !ruby/object:Gem::Version
21
- version: 1.4.1
23
+ version: 1.10.4
22
24
  type: :runtime
23
25
  prerelease: false
24
26
  version_requirements: !ruby/object:Gem::Requirement
25
27
  requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '1.10'
26
31
  - - ">="
27
32
  - !ruby/object:Gem::Version
28
- version: 1.4.1
33
+ version: 1.10.4
29
34
  - !ruby/object:Gem::Dependency
30
35
  name: rubyzip
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.3.0
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '3'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.3.0
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '3'
54
+ - !ruby/object:Gem::Dependency
55
+ name: htmlentities
31
56
  requirement: !ruby/object:Gem::Requirement
32
57
  requirements:
33
58
  - - "~>"
34
59
  - !ruby/object:Gem::Version
35
- version: '1.2'
60
+ version: '4.3'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 4.3.4
36
64
  type: :runtime
37
65
  prerelease: false
38
66
  version_requirements: !ruby/object:Gem::Requirement
39
67
  requirements:
40
68
  - - "~>"
41
69
  - !ruby/object:Gem::Version
42
- version: '1.2'
70
+ version: '4.3'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 4.3.4
43
74
  - !ruby/object:Gem::Dependency
44
- name: htmlentities
75
+ name: mimemagic
45
76
  requirement: !ruby/object:Gem::Requirement
46
77
  requirements:
47
78
  - - "~>"
48
79
  - !ruby/object:Gem::Version
49
- version: 4.3.1
80
+ version: '0.3'
50
81
  type: :runtime
51
82
  prerelease: false
52
83
  version_requirements: !ruby/object:Gem::Requirement
53
84
  requirements:
54
85
  - - "~>"
55
86
  - !ruby/object:Gem::Version
56
- version: 4.3.1
87
+ version: '0.3'
57
88
  - !ruby/object:Gem::Dependency
58
89
  name: yard
59
90
  requirement: !ruby/object:Gem::Requirement
60
91
  requirements:
61
- - - ">="
92
+ - - "~>"
62
93
  - !ruby/object:Gem::Version
63
- version: '0'
94
+ version: 0.9.8
64
95
  type: :development
65
96
  prerelease: false
66
97
  version_requirements: !ruby/object:Gem::Requirement
67
98
  requirements:
68
- - - ">="
99
+ - - "~>"
69
100
  - !ruby/object:Gem::Version
70
- version: '0'
101
+ version: 0.9.8
71
102
  - !ruby/object:Gem::Dependency
72
103
  name: kramdown
73
104
  requirement: !ruby/object:Gem::Requirement
74
105
  requirements:
75
- - - ">="
106
+ - - "~>"
76
107
  - !ruby/object:Gem::Version
77
- version: '0'
108
+ version: '2.3'
78
109
  type: :development
79
110
  prerelease: false
80
111
  version_requirements: !ruby/object:Gem::Requirement
81
112
  requirements:
82
- - - ">="
113
+ - - "~>"
83
114
  - !ruby/object:Gem::Version
84
- version: '0'
115
+ version: '2.3'
85
116
  - !ruby/object:Gem::Dependency
86
117
  name: timecop
87
118
  requirement: !ruby/object:Gem::Requirement
88
119
  requirements:
89
120
  - - "~>"
90
121
  - !ruby/object:Gem::Version
91
- version: 0.6.1
122
+ version: 0.8.1
92
123
  type: :development
93
124
  prerelease: false
94
125
  version_requirements: !ruby/object:Gem::Requirement
95
126
  requirements:
96
127
  - - "~>"
97
128
  - !ruby/object:Gem::Version
98
- version: 0.6.1
129
+ version: 0.8.1
99
130
  description: " xlsx spreadsheet generation with charts, images, automated column
100
131
  width, customizable styles and full schema validation. Axlsx helps you create beautiful
101
132
  Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice)
@@ -114,29 +145,8 @@ files:
114
145
  - LICENSE
115
146
  - README.md
116
147
  - Rakefile
117
- - examples/2010_comments.rb
118
- - examples/anchor_swapping.rb
119
- - examples/auto_filter.rb
120
- - examples/basic_charts.rb
121
- - examples/chart_colors.rb
122
- - examples/colored_links.rb
123
- - examples/conditional_formatting/example_conditional_formatting.rb
124
- - examples/conditional_formatting/getting_barred.rb
125
- - examples/conditional_formatting/hitting_the_high_notes.rb
126
- - examples/conditional_formatting/scaled_colors.rb
127
- - examples/conditional_formatting/stop_and_go.rb
128
- - examples/data_validation.rb
129
- - examples/example.rb
130
- - examples/extractive.rb
131
- - examples/image1.jpeg
132
- - examples/ios_preview.rb
133
- - examples/page_setup.rb
134
- - examples/pivot_table.rb
135
- - examples/sheet_protection.rb
136
- - examples/skydrive/real_example.rb
137
- - examples/styles.rb
138
- - examples/underline.rb
139
- - examples/wrap_text.rb
148
+ - examples/assets/image1.jpeg
149
+ - examples/generate.rb
140
150
  - lib/axlsx.rb
141
151
  - lib/axlsx/content_type/abstract_content_type.rb
142
152
  - lib/axlsx/content_type/content_type.rb
@@ -144,11 +154,16 @@ files:
144
154
  - lib/axlsx/content_type/override.rb
145
155
  - lib/axlsx/doc_props/app.rb
146
156
  - lib/axlsx/doc_props/core.rb
157
+ - lib/axlsx/drawing/area_chart.rb
158
+ - lib/axlsx/drawing/area_series.rb
147
159
  - lib/axlsx/drawing/ax_data_source.rb
148
160
  - lib/axlsx/drawing/axes.rb
149
161
  - lib/axlsx/drawing/axis.rb
150
162
  - lib/axlsx/drawing/bar_3D_chart.rb
163
+ - lib/axlsx/drawing/bar_chart.rb
151
164
  - lib/axlsx/drawing/bar_series.rb
165
+ - lib/axlsx/drawing/bubble_chart.rb
166
+ - lib/axlsx/drawing/bubble_series.rb
152
167
  - lib/axlsx/drawing/cat_axis.rb
153
168
  - lib/axlsx/drawing/chart.rb
154
169
  - lib/axlsx/drawing/d_lbls.rb
@@ -204,17 +219,20 @@ files:
204
219
  - lib/axlsx/stylesheet/xf.rb
205
220
  - lib/axlsx/util/accessors.rb
206
221
  - lib/axlsx/util/constants.rb
222
+ - lib/axlsx/util/mime_type_utils.rb
207
223
  - lib/axlsx/util/options_parser.rb
208
- - lib/axlsx/util/parser.rb
209
224
  - lib/axlsx/util/serialized_attributes.rb
210
225
  - lib/axlsx/util/simple_typed_list.rb
211
226
  - lib/axlsx/util/storage.rb
212
227
  - lib/axlsx/util/validators.rb
228
+ - lib/axlsx/util/zip_command.rb
213
229
  - lib/axlsx/version.rb
214
230
  - lib/axlsx/workbook/defined_name.rb
215
231
  - lib/axlsx/workbook/defined_names.rb
216
232
  - lib/axlsx/workbook/shared_strings_table.rb
217
233
  - lib/axlsx/workbook/workbook.rb
234
+ - lib/axlsx/workbook/workbook_view.rb
235
+ - lib/axlsx/workbook/workbook_views.rb
218
236
  - lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb
219
237
  - lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb
220
238
  - lib/axlsx/workbook/worksheet/auto_filter/filters.rb
@@ -240,6 +258,7 @@ files:
240
258
  - lib/axlsx/workbook/worksheet/header_footer.rb
241
259
  - lib/axlsx/workbook/worksheet/icon_set.rb
242
260
  - lib/axlsx/workbook/worksheet/merged_cells.rb
261
+ - lib/axlsx/workbook/worksheet/outline_pr.rb
243
262
  - lib/axlsx/workbook/worksheet/page_margins.rb
244
263
  - lib/axlsx/workbook/worksheet/page_set_up_pr.rb
245
264
  - lib/axlsx/workbook/worksheet/page_setup.rb
@@ -250,6 +269,8 @@ files:
250
269
  - lib/axlsx/workbook/worksheet/print_options.rb
251
270
  - lib/axlsx/workbook/worksheet/protected_range.rb
252
271
  - lib/axlsx/workbook/worksheet/protected_ranges.rb
272
+ - lib/axlsx/workbook/worksheet/rich_text.rb
273
+ - lib/axlsx/workbook/worksheet/rich_text_run.rb
253
274
  - lib/axlsx/workbook/worksheet/row.rb
254
275
  - lib/axlsx/workbook/worksheet/row_breaks.rb
255
276
  - lib/axlsx/workbook/worksheet/selection.rb
@@ -267,6 +288,7 @@ files:
267
288
  - lib/axlsx/workbook/worksheet/worksheet_drawing.rb
268
289
  - lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb
269
290
  - lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb
291
+ - lib/caxlsx.rb
270
292
  - lib/schema/dc.xsd
271
293
  - lib/schema/dcmitype.xsd
272
294
  - lib/schema/dcterms.xsd
@@ -308,10 +330,15 @@ files:
308
330
  - test/content_type/tc_override.rb
309
331
  - test/doc_props/tc_app.rb
310
332
  - test/doc_props/tc_core.rb
333
+ - test/drawing/tc_area_chart.rb
334
+ - test/drawing/tc_area_series.rb
311
335
  - test/drawing/tc_axes.rb
312
336
  - test/drawing/tc_axis.rb
313
337
  - test/drawing/tc_bar_3D_chart.rb
338
+ - test/drawing/tc_bar_chart.rb
314
339
  - test/drawing/tc_bar_series.rb
340
+ - test/drawing/tc_bubble_chart.rb
341
+ - test/drawing/tc_bubble_series.rb
315
342
  - test/drawing/tc_cat_axis.rb
316
343
  - test/drawing/tc_cat_axis_data.rb
317
344
  - test/drawing/tc_chart.rb
@@ -346,6 +373,11 @@ files:
346
373
  - test/drawing/tc_view_3D.rb
347
374
  - test/drawing/tc_vml_drawing.rb
348
375
  - test/drawing/tc_vml_shape.rb
376
+ - test/fixtures/image1.gif
377
+ - test/fixtures/image1.jpeg
378
+ - test/fixtures/image1.jpg
379
+ - test/fixtures/image1.png
380
+ - test/fixtures/image1_fake.jpg
349
381
  - test/profile.rb
350
382
  - test/rels/tc_relationship.rb
351
383
  - test/rels/tc_relationships.rb
@@ -370,12 +402,14 @@ files:
370
402
  - test/tc_axlsx.rb
371
403
  - test/tc_helper.rb
372
404
  - test/tc_package.rb
405
+ - test/util/tc_mime_type_utils.rb
373
406
  - test/util/tc_serialized_attributes.rb
374
407
  - test/util/tc_simple_typed_list.rb
375
408
  - test/util/tc_validators.rb
376
409
  - test/workbook/tc_defined_name.rb
377
410
  - test/workbook/tc_shared_strings_table.rb
378
411
  - test/workbook/tc_workbook.rb
412
+ - test/workbook/tc_workbook_view.rb
379
413
  - test/workbook/worksheet/auto_filter/tc_auto_filter.rb
380
414
  - test/workbook/worksheet/auto_filter/tc_filter_column.rb
381
415
  - test/workbook/worksheet/auto_filter/tc_filters.rb
@@ -392,6 +426,7 @@ files:
392
426
  - test/workbook/worksheet/tc_date_time_converter.rb
393
427
  - test/workbook/worksheet/tc_header_footer.rb
394
428
  - test/workbook/worksheet/tc_icon_set.rb
429
+ - test/workbook/worksheet/tc_outline_pr.rb
395
430
  - test/workbook/worksheet/tc_page_margins.rb
396
431
  - test/workbook/worksheet/tc_page_set_up_pr.rb
397
432
  - test/workbook/worksheet/tc_page_setup.rb
@@ -400,6 +435,8 @@ files:
400
435
  - test/workbook/worksheet/tc_pivot_table_cache_definition.rb
401
436
  - test/workbook/worksheet/tc_print_options.rb
402
437
  - test/workbook/worksheet/tc_protected_range.rb
438
+ - test/workbook/worksheet/tc_rich_text.rb
439
+ - test/workbook/worksheet/tc_rich_text_run.rb
403
440
  - test/workbook/worksheet/tc_row.rb
404
441
  - test/workbook/worksheet/tc_selection.rb
405
442
  - test/workbook/worksheet/tc_sheet_calc_pr.rb
@@ -423,124 +460,139 @@ required_ruby_version: !ruby/object:Gem::Requirement
423
460
  requirements:
424
461
  - - ">="
425
462
  - !ruby/object:Gem::Version
426
- version: 1.9.2
463
+ version: '2.3'
427
464
  required_rubygems_version: !ruby/object:Gem::Requirement
428
465
  requirements:
429
466
  - - ">="
430
467
  - !ruby/object:Gem::Version
431
468
  version: '0'
432
469
  requirements: []
433
- rubygems_version: 3.0.4
470
+ rubygems_version: 3.0.3
434
471
  signing_key:
435
472
  specification_version: 4
436
- summary: excel OOXML (xlsx) with charts, styles, images and autowidth columns.
473
+ summary: Excel OOXML (xlsx) with charts, styles, images and autowidth columns.
437
474
  test_files:
438
- - test/drawing/tc_num_data.rb
439
- - test/drawing/tc_two_cell_anchor.rb
440
- - test/drawing/tc_view_3D.rb
441
- - test/drawing/tc_series_title.rb
475
+ - test/benchmark.rb
476
+ - test/content_type/tc_content_type.rb
477
+ - test/content_type/tc_default.rb
478
+ - test/content_type/tc_override.rb
479
+ - test/doc_props/tc_app.rb
480
+ - test/doc_props/tc_core.rb
481
+ - test/drawing/tc_area_chart.rb
482
+ - test/drawing/tc_area_series.rb
483
+ - test/drawing/tc_axes.rb
484
+ - test/drawing/tc_axis.rb
485
+ - test/drawing/tc_bar_3D_chart.rb
486
+ - test/drawing/tc_bar_chart.rb
487
+ - test/drawing/tc_bar_series.rb
488
+ - test/drawing/tc_bubble_chart.rb
489
+ - test/drawing/tc_bubble_series.rb
442
490
  - test/drawing/tc_cat_axis.rb
491
+ - test/drawing/tc_cat_axis_data.rb
443
492
  - test/drawing/tc_chart.rb
444
- - test/drawing/tc_num_val.rb
445
- - test/drawing/tc_axis.rb
446
- - test/drawing/tc_line_chart.rb
447
- - test/drawing/tc_marker.rb
448
493
  - test/drawing/tc_d_lbls.rb
449
- - test/drawing/tc_str_val.rb
494
+ - test/drawing/tc_data_source.rb
495
+ - test/drawing/tc_drawing.rb
496
+ - test/drawing/tc_graphic_frame.rb
497
+ - test/drawing/tc_hyperlink.rb
450
498
  - test/drawing/tc_line_3d_chart.rb
451
- - test/drawing/tc_cat_axis_data.rb
499
+ - test/drawing/tc_line_chart.rb
452
500
  - test/drawing/tc_line_series.rb
453
- - test/drawing/tc_scatter_series.rb
454
- - test/drawing/tc_bar_series.rb
455
- - test/drawing/tc_hyperlink.rb
456
- - test/drawing/tc_pic.rb
501
+ - test/drawing/tc_marker.rb
457
502
  - test/drawing/tc_named_axis_data.rb
458
- - test/drawing/tc_str_data.rb
459
- - test/drawing/tc_drawing.rb
503
+ - test/drawing/tc_num_data.rb
504
+ - test/drawing/tc_num_val.rb
505
+ - test/drawing/tc_one_cell_anchor.rb
506
+ - test/drawing/tc_pic.rb
507
+ - test/drawing/tc_picture_locking.rb
508
+ - test/drawing/tc_pie_3D_chart.rb
509
+ - test/drawing/tc_pie_series.rb
510
+ - test/drawing/tc_scaling.rb
460
511
  - test/drawing/tc_scatter_chart.rb
512
+ - test/drawing/tc_scatter_series.rb
513
+ - test/drawing/tc_ser_axis.rb
461
514
  - test/drawing/tc_series.rb
515
+ - test/drawing/tc_series_title.rb
516
+ - test/drawing/tc_str_data.rb
517
+ - test/drawing/tc_str_val.rb
462
518
  - test/drawing/tc_title.rb
463
- - test/drawing/tc_ser_axis.rb
464
- - test/drawing/tc_picture_locking.rb
465
- - test/drawing/tc_pie_series.rb
466
- - test/drawing/tc_vml_shape.rb
467
- - test/drawing/tc_axes.rb
468
- - test/drawing/tc_vml_drawing.rb
469
- - test/drawing/tc_pie_3D_chart.rb
470
- - test/drawing/tc_graphic_frame.rb
471
- - test/drawing/tc_one_cell_anchor.rb
472
- - test/drawing/tc_data_source.rb
519
+ - test/drawing/tc_two_cell_anchor.rb
473
520
  - test/drawing/tc_val_axis.rb
474
- - test/drawing/tc_scaling.rb
475
- - test/drawing/tc_bar_3D_chart.rb
476
- - test/util/tc_simple_typed_list.rb
477
- - test/util/tc_validators.rb
478
- - test/util/tc_serialized_attributes.rb
479
- - test/tc_axlsx.rb
480
- - test/stylesheet/tc_fill.rb
521
+ - test/drawing/tc_view_3D.rb
522
+ - test/drawing/tc_vml_drawing.rb
523
+ - test/drawing/tc_vml_shape.rb
524
+ - test/fixtures/image1.gif
525
+ - test/fixtures/image1.jpeg
526
+ - test/fixtures/image1.jpg
527
+ - test/fixtures/image1.png
528
+ - test/fixtures/image1_fake.jpg
529
+ - test/profile.rb
530
+ - test/rels/tc_relationship.rb
531
+ - test/rels/tc_relationships.rb
481
532
  - test/stylesheet/tc_border.rb
482
- - test/stylesheet/tc_gradient_stop.rb
483
- - test/stylesheet/tc_gradient_fill.rb
484
- - test/stylesheet/tc_table_style.rb
485
- - test/stylesheet/tc_font.rb
486
- - test/stylesheet/tc_pattern_fill.rb
487
- - test/stylesheet/tc_color.rb
488
- - test/stylesheet/tc_num_fmt.rb
489
- - test/stylesheet/tc_styles.rb
490
533
  - test/stylesheet/tc_border_pr.rb
534
+ - test/stylesheet/tc_cell_alignment.rb
491
535
  - test/stylesheet/tc_cell_protection.rb
492
- - test/stylesheet/tc_xf.rb
493
536
  - test/stylesheet/tc_cell_style.rb
494
- - test/stylesheet/tc_table_styles.rb
537
+ - test/stylesheet/tc_color.rb
495
538
  - test/stylesheet/tc_dxf.rb
539
+ - test/stylesheet/tc_fill.rb
540
+ - test/stylesheet/tc_font.rb
541
+ - test/stylesheet/tc_gradient_fill.rb
542
+ - test/stylesheet/tc_gradient_stop.rb
543
+ - test/stylesheet/tc_num_fmt.rb
544
+ - test/stylesheet/tc_pattern_fill.rb
545
+ - test/stylesheet/tc_styles.rb
546
+ - test/stylesheet/tc_table_style.rb
496
547
  - test/stylesheet/tc_table_style_element.rb
497
- - test/stylesheet/tc_cell_alignment.rb
548
+ - test/stylesheet/tc_table_styles.rb
549
+ - test/stylesheet/tc_xf.rb
550
+ - test/tc_axlsx.rb
498
551
  - test/tc_helper.rb
499
- - test/doc_props/tc_core.rb
500
- - test/doc_props/tc_app.rb
501
- - test/content_type/tc_override.rb
502
- - test/content_type/tc_content_type.rb
503
- - test/content_type/tc_default.rb
504
- - test/rels/tc_relationship.rb
505
- - test/rels/tc_relationships.rb
506
- - test/profile.rb
507
- - test/benchmark.rb
508
552
  - test/tc_package.rb
553
+ - test/util/tc_mime_type_utils.rb
554
+ - test/util/tc_serialized_attributes.rb
555
+ - test/util/tc_simple_typed_list.rb
556
+ - test/util/tc_validators.rb
509
557
  - test/workbook/tc_defined_name.rb
558
+ - test/workbook/tc_shared_strings_table.rb
559
+ - test/workbook/tc_workbook.rb
560
+ - test/workbook/tc_workbook_view.rb
561
+ - test/workbook/worksheet/auto_filter/tc_auto_filter.rb
562
+ - test/workbook/worksheet/auto_filter/tc_filter_column.rb
563
+ - test/workbook/worksheet/auto_filter/tc_filters.rb
564
+ - test/workbook/worksheet/tc_break.rb
565
+ - test/workbook/worksheet/tc_cell.rb
566
+ - test/workbook/worksheet/tc_cfvo.rb
567
+ - test/workbook/worksheet/tc_col.rb
568
+ - test/workbook/worksheet/tc_color_scale.rb
569
+ - test/workbook/worksheet/tc_comment.rb
570
+ - test/workbook/worksheet/tc_comments.rb
571
+ - test/workbook/worksheet/tc_conditional_formatting.rb
510
572
  - test/workbook/worksheet/tc_data_bar.rb
511
- - test/workbook/worksheet/tc_worksheet_hyperlink.rb
512
573
  - test/workbook/worksheet/tc_data_validation.rb
574
+ - test/workbook/worksheet/tc_date_time_converter.rb
575
+ - test/workbook/worksheet/tc_header_footer.rb
576
+ - test/workbook/worksheet/tc_icon_set.rb
577
+ - test/workbook/worksheet/tc_outline_pr.rb
578
+ - test/workbook/worksheet/tc_page_margins.rb
579
+ - test/workbook/worksheet/tc_page_set_up_pr.rb
580
+ - test/workbook/worksheet/tc_page_setup.rb
581
+ - test/workbook/worksheet/tc_pane.rb
582
+ - test/workbook/worksheet/tc_pivot_table.rb
513
583
  - test/workbook/worksheet/tc_pivot_table_cache_definition.rb
584
+ - test/workbook/worksheet/tc_print_options.rb
514
585
  - test/workbook/worksheet/tc_protected_range.rb
586
+ - test/workbook/worksheet/tc_rich_text.rb
587
+ - test/workbook/worksheet/tc_rich_text_run.rb
588
+ - test/workbook/worksheet/tc_row.rb
515
589
  - test/workbook/worksheet/tc_selection.rb
516
- - test/workbook/worksheet/tc_date_time_converter.rb
517
- - test/workbook/worksheet/tc_table_style_info.rb
518
- - test/workbook/worksheet/tc_conditional_formatting.rb
519
- - test/workbook/worksheet/tc_page_setup.rb
520
- - test/workbook/worksheet/tc_comments.rb
521
- - test/workbook/worksheet/tc_sheet_view.rb
522
590
  - test/workbook/worksheet/tc_sheet_calc_pr.rb
523
- - test/workbook/worksheet/tc_color_scale.rb
524
- - test/workbook/worksheet/tc_worksheet.rb
591
+ - test/workbook/worksheet/tc_sheet_format_pr.rb
525
592
  - test/workbook/worksheet/tc_sheet_pr.rb
526
- - test/workbook/worksheet/auto_filter/tc_filters.rb
527
- - test/workbook/worksheet/auto_filter/tc_auto_filter.rb
528
- - test/workbook/worksheet/auto_filter/tc_filter_column.rb
529
- - test/workbook/worksheet/tc_cell.rb
530
593
  - test/workbook/worksheet/tc_sheet_protection.rb
531
- - test/workbook/worksheet/tc_pane.rb
532
- - test/workbook/worksheet/tc_header_footer.rb
594
+ - test/workbook/worksheet/tc_sheet_view.rb
533
595
  - test/workbook/worksheet/tc_table.rb
534
- - test/workbook/worksheet/tc_page_margins.rb
535
- - test/workbook/worksheet/tc_cfvo.rb
536
- - test/workbook/worksheet/tc_col.rb
537
- - test/workbook/worksheet/tc_pivot_table.rb
538
- - test/workbook/worksheet/tc_break.rb
539
- - test/workbook/worksheet/tc_sheet_format_pr.rb
540
- - test/workbook/worksheet/tc_print_options.rb
541
- - test/workbook/worksheet/tc_comment.rb
542
- - test/workbook/worksheet/tc_row.rb
543
- - test/workbook/worksheet/tc_icon_set.rb
544
- - test/workbook/worksheet/tc_page_set_up_pr.rb
545
- - test/workbook/tc_shared_strings_table.rb
546
- - test/workbook/tc_workbook.rb
596
+ - test/workbook/worksheet/tc_table_style_info.rb
597
+ - test/workbook/worksheet/tc_worksheet.rb
598
+ - test/workbook/worksheet/tc_worksheet_hyperlink.rb