caxlsx 2.0.2 → 3.0.4

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.
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