axlsx 1.3.6 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts_guide +19 -0
  3. data/CHANGELOG.md +8 -0
  4. data/README.md +52 -79
  5. data/Rakefile +0 -5
  6. data/examples/2010_comments.rb +17 -0
  7. data/examples/anchor_swapping.rb +28 -0
  8. data/examples/example.rb +16 -1
  9. data/examples/pivot_table.rb +2 -0
  10. data/examples/underline.rb +13 -0
  11. data/lib/axlsx.rb +8 -0
  12. data/lib/axlsx/doc_props/core.rb +6 -1
  13. data/lib/axlsx/drawing/axes.rb +7 -3
  14. data/lib/axlsx/drawing/bar_3D_chart.rb +2 -2
  15. data/lib/axlsx/drawing/chart.rb +20 -4
  16. data/lib/axlsx/drawing/drawing.rb +2 -17
  17. data/lib/axlsx/drawing/graphic_frame.rb +3 -8
  18. data/lib/axlsx/drawing/hyperlink.rb +5 -12
  19. data/lib/axlsx/drawing/marker.rb +25 -5
  20. data/lib/axlsx/drawing/one_cell_anchor.rb +9 -0
  21. data/lib/axlsx/drawing/pic.rb +17 -23
  22. data/lib/axlsx/drawing/two_cell_anchor.rb +7 -27
  23. data/lib/axlsx/package.rb +31 -11
  24. data/lib/axlsx/rels/relationship.rb +73 -8
  25. data/lib/axlsx/rels/relationships.rb +8 -1
  26. data/lib/axlsx/stylesheet/color.rb +1 -1
  27. data/lib/axlsx/stylesheet/num_fmt.rb +2 -2
  28. data/lib/axlsx/stylesheet/styles.rb +5 -3
  29. data/lib/axlsx/util/serialized_attributes.rb +11 -8
  30. data/lib/axlsx/util/simple_typed_list.rb +34 -13
  31. data/lib/axlsx/util/validators.rb +7 -0
  32. data/lib/axlsx/version.rb +1 -1
  33. data/lib/axlsx/workbook/defined_name.rb +1 -1
  34. data/lib/axlsx/workbook/shared_strings_table.rb +12 -3
  35. data/lib/axlsx/workbook/workbook.rb +31 -8
  36. data/lib/axlsx/workbook/worksheet/break.rb +37 -0
  37. data/lib/axlsx/workbook/worksheet/cell.rb +5 -5
  38. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +1 -1
  39. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -0
  40. data/lib/axlsx/workbook/worksheet/comment.rb +6 -5
  41. data/lib/axlsx/workbook/worksheet/comments.rb +3 -3
  42. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +1 -1
  43. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +6 -5
  44. data/lib/axlsx/workbook/worksheet/pivot_table.rb +32 -18
  45. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +4 -3
  46. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +1 -1
  47. data/lib/axlsx/workbook/worksheet/row.rb +1 -1
  48. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
  49. data/lib/axlsx/workbook/worksheet/table.rb +3 -2
  50. data/lib/axlsx/workbook/worksheet/tables.rb +1 -1
  51. data/lib/axlsx/workbook/worksheet/worksheet.rb +61 -26
  52. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +6 -5
  53. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +3 -9
  54. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +5 -10
  55. data/lib/schema/sml.xsd +4 -0
  56. data/test/axlsx.qcachegrind +2226 -0
  57. data/test/doc_props/tc_core.rb +7 -0
  58. data/test/drawing/tc_axes.rb +8 -0
  59. data/test/drawing/tc_bar_3D_chart.rb +6 -0
  60. data/test/drawing/tc_chart.rb +13 -0
  61. data/test/drawing/tc_drawing.rb +0 -5
  62. data/test/drawing/tc_graphic_frame.rb +4 -7
  63. data/test/drawing/tc_hyperlink.rb +0 -4
  64. data/test/drawing/tc_pic.rb +14 -3
  65. data/test/drawing/tc_two_cell_anchor.rb +3 -3
  66. data/test/profile.rb +7 -3
  67. data/test/rels/tc_relationship.rb +29 -11
  68. data/test/rels/tc_relationships.rb +12 -1
  69. data/test/stylesheet/tc_color.rb +6 -0
  70. data/test/stylesheet/tc_styles.rb +2 -2
  71. data/test/tc_helper.rb +1 -0
  72. data/test/tc_package.rb +30 -0
  73. data/test/util/tc_serialized_attributes.rb +19 -0
  74. data/test/workbook/tc_shared_strings_table.rb +6 -0
  75. data/test/workbook/tc_workbook.rb +23 -1
  76. data/test/workbook/worksheet/tc_break.rb +49 -0
  77. data/test/workbook/worksheet/tc_comment.rb +17 -6
  78. data/test/workbook/worksheet/tc_conditional_formatting.rb +2 -2
  79. data/test/workbook/worksheet/tc_date_time_converter.rb +3 -11
  80. data/test/workbook/worksheet/tc_pivot_table.rb +40 -22
  81. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +9 -1
  82. data/test/workbook/worksheet/tc_sheet_view.rb +39 -39
  83. data/test/workbook/worksheet/tc_table.rb +2 -2
  84. data/test/workbook/worksheet/tc_worksheet.rb +39 -7
  85. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +2 -11
  86. metadata +37 -10
  87. data/test/example.xlsx +0 -0
@@ -36,8 +36,8 @@ class TestTable < Test::Unit::TestCase
36
36
  end
37
37
 
38
38
  def test_rId
39
- @ws.add_table("A1:D5")
40
- assert_equal(@ws.tables.first.rId, "rId1")
39
+ table = @ws.add_table("A1:D5")
40
+ assert_equal @ws.relationships.for(table).Id, table.rId
41
41
  end
42
42
 
43
43
  def test_index
@@ -123,9 +123,7 @@ class TestWorksheet < Test::Unit::TestCase
123
123
  end
124
124
 
125
125
  def test_rId
126
- assert_equal(@ws.rId, "rId1")
127
- ws = @ws.workbook.add_worksheet
128
- assert_equal(ws.rId, "rId2")
126
+ assert_equal @ws.workbook.relationships.for(@ws).Id, @ws.rId
129
127
  end
130
128
 
131
129
  def test_index
@@ -169,6 +167,27 @@ class TestWorksheet < Test::Unit::TestCase
169
167
  assert_equal(@ws.workbook.charts.size, 1, "add_chart adds a chart to the workbook")
170
168
  end
171
169
 
170
+ def test_add_page_break_with_string_cell_ref
171
+ assert(@ws.row_breaks.empty?)
172
+ assert(@ws.col_breaks.empty?)
173
+ @ws.add_page_break("B1")
174
+ assert_equal(1, @ws.row_breaks.size)
175
+ assert_equal(1, @ws.col_breaks.size)
176
+ end
177
+
178
+ def test_add_page_break_with_cell
179
+ @ws.add_row [1, 2, 3, 4]
180
+ @ws.add_row [1, 2, 3, 4]
181
+
182
+
183
+ assert(@ws.row_breaks.empty?)
184
+ assert(@ws.col_breaks.empty?)
185
+ @ws.add_page_break(@ws.rows.last.cells[1])
186
+ assert_equal(1, @ws.row_breaks.size)
187
+ assert_equal(1, @ws.col_breaks.size)
188
+ end
189
+
190
+
172
191
  def test_drawing
173
192
  assert @ws.drawing == nil
174
193
  @ws.add_chart(Axlsx::Pie3DChart)
@@ -205,13 +224,20 @@ class TestWorksheet < Test::Unit::TestCase
205
224
  def test_cols
206
225
  @ws.add_row [1,2,3,4]
207
226
  @ws.add_row [1,2,3,4]
208
- @ws.add_row [1,2,3,4]
227
+ @ws.add_row [1,2,3]
209
228
  @ws.add_row [1,2,3,4]
210
229
  c = @ws.cols[1]
211
230
  assert_equal(c.size, 4)
212
231
  assert_equal(c[0].value, 2)
213
232
  end
214
233
 
234
+ def test_cols_with_block
235
+ @ws.add_row [1,2,3]
236
+ @ws.add_row [1]
237
+ cols = @ws.cols {|row, column| :foo }
238
+ assert_equal(:foo, cols[1][1])
239
+ end
240
+
215
241
  def test_row_style
216
242
  @ws.add_row [1,2,3,4]
217
243
  @ws.add_row [1,2,3,4]
@@ -288,6 +314,12 @@ class TestWorksheet < Test::Unit::TestCase
288
314
  assert_equal(doc.xpath('//xmlns:worksheet/xmlns:mergeCells/xmlns:mergeCell[@ref="E1:F1"]').size, 1)
289
315
  end
290
316
 
317
+ def test_to_xml_string_row_breaks
318
+ @ws.add_page_break("A1")
319
+ doc = Nokogiri::XML(@ws.to_xml_string)
320
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:rowBreaks/xmlns:brk[@id="0"]').size, 1)
321
+ end
322
+
291
323
  def test_to_xml_string_sheet_protection
292
324
  @ws.sheet_protection.password = 'fish'
293
325
  doc = Nokogiri::XML(@ws.to_xml_string)
@@ -334,16 +366,16 @@ class TestWorksheet < Test::Unit::TestCase
334
366
  def test_to_xml_string_drawing
335
367
  @ws.add_chart Axlsx::Pie3DChart
336
368
  doc = Nokogiri::XML(@ws.to_xml_string)
337
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:drawing[@r:id="rId1"]').size, 1)
369
+ assert_equal @ws.send(:worksheet_drawing).relationship.Id, doc.xpath('//xmlns:worksheet/xmlns:drawing').first["r:id"]
338
370
  end
339
371
 
340
372
  def test_to_xml_string_tables
341
373
  @ws.add_row ["one", "two"]
342
374
  @ws.add_row [1, 2]
343
- @ws.add_table "A1:B2"
375
+ table = @ws.add_table "A1:B2"
344
376
  doc = Nokogiri::XML(@ws.to_xml_string)
345
377
  assert_equal(doc.xpath('//xmlns:worksheet/xmlns:tableParts[@count="1"]').size, 1)
346
- assert_equal(doc.xpath('//xmlns:worksheet/xmlns:tableParts/xmlns:tablePart[@r:id="rId1"]').size, 1)
378
+ assert_equal table.rId, doc.xpath('//xmlns:worksheet/xmlns:tableParts/xmlns:tablePart').first["r:id"]
347
379
  end
348
380
 
349
381
  def test_to_xml_string
@@ -32,22 +32,13 @@ class TestWorksheetHyperlink < Test::Unit::TestCase
32
32
  assert_equal(@options[:ref], @a.ref)
33
33
  end
34
34
 
35
- def test_id
36
- @a.target = :external
37
-
38
- assert_equal("rId1", @a.id)
39
- @a.target = :internal
40
- assert_equal(nil, @a.id)
41
- end
42
-
43
-
44
35
  def test_to_xml_string_with_non_external
45
36
  doc = Nokogiri::XML(@ws.to_xml_string)
46
37
  assert_equal(doc.xpath("//xmlns:hyperlink[@ref='#{@a.ref}']").size, 1)
47
38
  assert_equal(doc.xpath("//xmlns:hyperlink[@tooltip='#{@a.tooltip}']").size, 1)
48
39
  assert_equal(doc.xpath("//xmlns:hyperlink[@location='#{@a.location}']").size, 1)
49
40
  assert_equal(doc.xpath("//xmlns:hyperlink[@display='#{@a.display}']").size, 1)
50
- assert_equal(doc.xpath("//xmlns:hyperlink[@r:id='#{@a.id}']").size, 0)
41
+ assert_equal(doc.xpath("//xmlns:hyperlink[@r:id]").size, 0)
51
42
  end
52
43
 
53
44
  def test_to_xml_stirng_with_external
@@ -57,7 +48,7 @@ class TestWorksheetHyperlink < Test::Unit::TestCase
57
48
  assert_equal(doc.xpath("//xmlns:hyperlink[@tooltip='#{@a.tooltip}']").size, 1)
58
49
  assert_equal(doc.xpath("//xmlns:hyperlink[@display='#{@a.display}']").size, 1)
59
50
  assert_equal(doc.xpath("//xmlns:hyperlink[@location='#{@a.location}']").size, 0)
60
- assert_equal(doc.xpath("//xmlns:hyperlink[@r:id='#{@a.id}']").size, 1)
51
+ assert_equal(doc.xpath("//xmlns:hyperlink[@r:id='#{@a.relationship.Id}']").size, 1)
61
52
  end
62
53
  end
63
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Randy Morgan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-23 00:00:00.000000000 Z
11
+ date: 2013-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rubyzip
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.5
33
+ version: 0.9.9
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.5
40
+ version: 0.9.9
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: htmlentities
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: timecop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 0.6.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 0.6.1
83
97
  description: |2
84
98
  xlsx spreadsheet generation with charts, images, automated column width, customizable styles and full schema validation. Axlsx helps you create beautiful Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice) without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.
85
99
  email: digital.ipseity@gmail.com
@@ -167,11 +181,13 @@ files:
167
181
  - lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb
168
182
  - lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb
169
183
  - lib/axlsx/workbook/worksheet/auto_filter/filters.rb
184
+ - lib/axlsx/workbook/worksheet/break.rb
170
185
  - lib/axlsx/workbook/worksheet/cell.rb
171
186
  - lib/axlsx/workbook/worksheet/cell_serializer.rb
172
187
  - lib/axlsx/workbook/worksheet/cfvo.rb
173
188
  - lib/axlsx/workbook/worksheet/cfvos.rb
174
189
  - lib/axlsx/workbook/worksheet/col.rb
190
+ - lib/axlsx/workbook/worksheet/col_breaks.rb
175
191
  - lib/axlsx/workbook/worksheet/color_scale.rb
176
192
  - lib/axlsx/workbook/worksheet/cols.rb
177
193
  - lib/axlsx/workbook/worksheet/comment.rb
@@ -198,6 +214,7 @@ files:
198
214
  - lib/axlsx/workbook/worksheet/protected_range.rb
199
215
  - lib/axlsx/workbook/worksheet/protected_ranges.rb
200
216
  - lib/axlsx/workbook/worksheet/row.rb
217
+ - lib/axlsx/workbook/worksheet/row_breaks.rb
201
218
  - lib/axlsx/workbook/worksheet/selection.rb
202
219
  - lib/axlsx/workbook/worksheet/sheet_calc_pr.rb
203
220
  - lib/axlsx/workbook/worksheet/sheet_data.rb
@@ -249,6 +266,8 @@ files:
249
266
  - lib/schema/vml-wordprocessingDrawing.xsd
250
267
  - lib/schema/wml.xsd
251
268
  - lib/schema/xml.xsd
269
+ - examples/2010_comments.rb
270
+ - examples/anchor_swapping.rb
252
271
  - examples/auto_filter.rb
253
272
  - examples/basic_charts.rb
254
273
  - examples/chart_colors.rb
@@ -267,6 +286,7 @@ files:
267
286
  - examples/sheet_protection.rb
268
287
  - examples/skydrive/real_example.rb
269
288
  - examples/styles.rb
289
+ - examples/underline.rb
270
290
  - examples/wrap_text.rb
271
291
  - examples/image1.jpeg
272
292
  - LICENSE
@@ -274,12 +294,15 @@ files:
274
294
  - Rakefile
275
295
  - CHANGELOG.md
276
296
  - .yardopts
297
+ - .yardopts_guide
298
+ - test/axlsx.qcachegrind
277
299
  - test/benchmark.rb
278
300
  - test/content_type/tc_content_type.rb
279
301
  - test/content_type/tc_default.rb
280
302
  - test/content_type/tc_override.rb
281
303
  - test/doc_props/tc_app.rb
282
304
  - test/doc_props/tc_core.rb
305
+ - test/drawing/tc_axes.rb
283
306
  - test/drawing/tc_axis.rb
284
307
  - test/drawing/tc_bar_3D_chart.rb
285
308
  - test/drawing/tc_bar_series.rb
@@ -317,7 +340,6 @@ files:
317
340
  - test/drawing/tc_view_3D.rb
318
341
  - test/drawing/tc_vml_drawing.rb
319
342
  - test/drawing/tc_vml_shape.rb
320
- - test/example.xlsx
321
343
  - test/profile.rb
322
344
  - test/rels/tc_relationship.rb
323
345
  - test/rels/tc_relationships.rb
@@ -342,6 +364,7 @@ files:
342
364
  - test/tc_axlsx.rb
343
365
  - test/tc_helper.rb
344
366
  - test/tc_package.rb
367
+ - test/util/tc_serialized_attributes.rb
345
368
  - test/util/tc_simple_typed_list.rb
346
369
  - test/util/tc_validators.rb
347
370
  - test/workbook/tc_defined_name.rb
@@ -350,6 +373,7 @@ files:
350
373
  - test/workbook/worksheet/auto_filter/tc_auto_filter.rb
351
374
  - test/workbook/worksheet/auto_filter/tc_filter_column.rb
352
375
  - test/workbook/worksheet/auto_filter/tc_filters.rb
376
+ - test/workbook/worksheet/tc_break.rb
353
377
  - test/workbook/worksheet/tc_cell.rb
354
378
  - test/workbook/worksheet/tc_cfvo.rb
355
379
  - test/workbook/worksheet/tc_col.rb
@@ -392,7 +416,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
392
416
  requirements:
393
417
  - - '>='
394
418
  - !ruby/object:Gem::Version
395
- version: 1.8.7
419
+ version: 1.9.2
396
420
  required_rubygems_version: !ruby/object:Gem::Requirement
397
421
  requirements:
398
422
  - - '>='
@@ -400,17 +424,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
400
424
  version: '0'
401
425
  requirements: []
402
426
  rubyforge_project:
403
- rubygems_version: 2.0.3
427
+ rubygems_version: 2.0.2
404
428
  signing_key:
405
429
  specification_version: 4
406
430
  summary: excel OOXML (xlsx) with charts, styles, images and autowidth columns.
407
431
  test_files:
432
+ - test/axlsx.qcachegrind
408
433
  - test/benchmark.rb
409
434
  - test/content_type/tc_content_type.rb
410
435
  - test/content_type/tc_default.rb
411
436
  - test/content_type/tc_override.rb
412
437
  - test/doc_props/tc_app.rb
413
438
  - test/doc_props/tc_core.rb
439
+ - test/drawing/tc_axes.rb
414
440
  - test/drawing/tc_axis.rb
415
441
  - test/drawing/tc_bar_3D_chart.rb
416
442
  - test/drawing/tc_bar_series.rb
@@ -448,7 +474,6 @@ test_files:
448
474
  - test/drawing/tc_view_3D.rb
449
475
  - test/drawing/tc_vml_drawing.rb
450
476
  - test/drawing/tc_vml_shape.rb
451
- - test/example.xlsx
452
477
  - test/profile.rb
453
478
  - test/rels/tc_relationship.rb
454
479
  - test/rels/tc_relationships.rb
@@ -473,6 +498,7 @@ test_files:
473
498
  - test/tc_axlsx.rb
474
499
  - test/tc_helper.rb
475
500
  - test/tc_package.rb
501
+ - test/util/tc_serialized_attributes.rb
476
502
  - test/util/tc_simple_typed_list.rb
477
503
  - test/util/tc_validators.rb
478
504
  - test/workbook/tc_defined_name.rb
@@ -481,6 +507,7 @@ test_files:
481
507
  - test/workbook/worksheet/auto_filter/tc_auto_filter.rb
482
508
  - test/workbook/worksheet/auto_filter/tc_filter_column.rb
483
509
  - test/workbook/worksheet/auto_filter/tc_filters.rb
510
+ - test/workbook/worksheet/tc_break.rb
484
511
  - test/workbook/worksheet/tc_cell.rb
485
512
  - test/workbook/worksheet/tc_cfvo.rb
486
513
  - test/workbook/worksheet/tc_col.rb
Binary file