write_xlsx 0.85.7 → 0.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +5 -5
  2. data/Changes +29 -0
  3. data/README.md +1 -1
  4. data/examples/colors.rb +47 -0
  5. data/examples/comments2.rb +1 -1
  6. data/examples/conditional_format.rb +60 -9
  7. data/examples/data_validate.rb +7 -7
  8. data/examples/panes.rb +1 -1
  9. data/examples/tab_colors.rb +1 -1
  10. data/examples/update_range_format_with_params.rb +33 -0
  11. data/lib/write_xlsx/chart.rb +1 -1
  12. data/lib/write_xlsx/format.rb +4 -5
  13. data/lib/write_xlsx/package/app.rb +12 -0
  14. data/lib/write_xlsx/package/comments.rb +4 -2
  15. data/lib/write_xlsx/package/conditional_format.rb +8 -2
  16. data/lib/write_xlsx/package/shared_strings.rb +12 -10
  17. data/lib/write_xlsx/package/styles.rb +1 -1
  18. data/lib/write_xlsx/package/table.rb +17 -5
  19. data/lib/write_xlsx/package/xml_writer_simple.rb +9 -8
  20. data/lib/write_xlsx/utility.rb +4 -2
  21. data/lib/write_xlsx/version.rb +1 -1
  22. data/lib/write_xlsx/workbook.rb +17 -14
  23. data/lib/write_xlsx/worksheet.rb +117 -15
  24. data/lib/write_xlsx/worksheet/cell_data.rb +3 -1
  25. data/lib/write_xlsx/worksheet/data_validation.rb +23 -11
  26. data/lib/write_xlsx/worksheet/hyperlink.rb +14 -10
  27. data/test/regression/images/red_208.png +0 -0
  28. data/test/regression/test_data_validation08.rb +24 -0
  29. data/test/regression/test_hyperlink22.rb +24 -0
  30. data/test/regression/test_hyperlink23.rb +24 -0
  31. data/test/regression/test_hyperlink24.rb +24 -0
  32. data/test/regression/test_image28.rb +27 -0
  33. data/test/regression/test_image29.rb +27 -0
  34. data/test/regression/test_image30.rb +27 -0
  35. data/test/regression/test_image31.rb +30 -0
  36. data/test/regression/test_image32.rb +28 -0
  37. data/test/regression/test_image33.rb +32 -0
  38. data/test/regression/test_properties02.rb +28 -0
  39. data/test/regression/test_update_range_format_with_params.rb +42 -0
  40. data/test/regression/xlsx_files/data_validation08.xlsx +0 -0
  41. data/test/regression/xlsx_files/hyperlink22.xlsx +0 -0
  42. data/test/regression/xlsx_files/hyperlink23.xlsx +0 -0
  43. data/test/regression/xlsx_files/hyperlink24.xlsx +0 -0
  44. data/test/regression/xlsx_files/image28.xlsx +0 -0
  45. data/test/regression/xlsx_files/image29.xlsx +0 -0
  46. data/test/regression/xlsx_files/image30.xlsx +0 -0
  47. data/test/regression/xlsx_files/image31.xlsx +0 -0
  48. data/test/regression/xlsx_files/image32.xlsx +0 -0
  49. data/test/regression/xlsx_files/image33.xlsx +0 -0
  50. data/test/regression/xlsx_files/properties02.xlsx +0 -0
  51. data/test/regression/xlsx_files/table18.xlsx +0 -0
  52. data/test/regression/xlsx_files/table19.xlsx +0 -0
  53. data/test/regression/xlsx_files/update_range_format_with_params.xlsx +0 -0
  54. data/test/run_test.rb +9 -0
  55. data/test/test_xml_writer_simple.rb +3 -3
  56. data/test/worksheet/test_cond_format_21.rb +90 -0
  57. data/test/worksheet/test_format.rb +17 -0
  58. data/test/worksheet/test_sparkline_12.rb +94 -0
  59. data/test/worksheet/test_update_format_methods.rb +111 -0
  60. data/test/worksheet/test_write_data_validation_02.rb +14 -1
  61. data/write_xlsx.gemspec +1 -1
  62. metadata +69 -6
@@ -0,0 +1,9 @@
1
+ base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
2
+ lib_dir = File.join(base_dir, "lib")
3
+ test_dir = File.join(base_dir, "test")
4
+
5
+ $LOAD_PATH.unshift(lib_dir)
6
+
7
+ require 'test/unit'
8
+
9
+ exit Test::Unit::AutoRunner.run(true, test_dir)
@@ -23,11 +23,11 @@ def test_empty_tag_with_xml_decl
23
23
  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
24
24
  <foo/>
25
25
  EOS
26
- assert_equal(expected, @obj.xml_decl << @obj.empty_tag('foo') << "\n")
26
+ assert_equal(expected, @obj.xml_decl + @obj.empty_tag('foo') + "\n")
27
27
  end
28
28
 
29
29
  def test_start_end_tag
30
- assert_equal("<foo></foo>", @obj.start_tag('foo') << @obj.end_tag('foo'))
30
+ assert_equal("<foo></foo>", @obj.start_tag('foo') + @obj.end_tag('foo'))
31
31
  end
32
32
 
33
33
  def test_attribute
@@ -39,7 +39,7 @@ def test_attribute
39
39
  def test_character_data
40
40
  assert_equal(
41
41
  "<foo>&lt;tag&gt;&amp;amp;&lt;/tag&gt;</foo>",
42
- @obj.start_tag('foo') << @obj.characters("<tag>&amp;</tag>") << @obj.end_tag('foo')
42
+ @obj.start_tag('foo') + @obj.characters("<tag>&amp;</tag>") + @obj.end_tag('foo')
43
43
  )
44
44
  end
45
45
 
@@ -0,0 +1,90 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestCondFormat21 < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ ###############################################################################
13
+ #
14
+ # Tests for Excel::Writer::XLSX::Worksheet methods.
15
+ #
16
+
17
+ ###############################################################################
18
+ #
19
+ # Test the _assemble_xml_file() method.
20
+ #
21
+ # Test conditional formats.
22
+ #
23
+ def test_conditional_formats
24
+ @worksheet.select
25
+
26
+ # Start test code.
27
+ @worksheet.write('A1', 10)
28
+ @worksheet.write('A2', 20)
29
+ @worksheet.write('A3', 30)
30
+ @worksheet.write('A4', 40)
31
+
32
+ @worksheet.conditional_formatting('A1',
33
+ {
34
+ :type => 'cell',
35
+ :format => nil,
36
+ :criteria => 'greater than',
37
+ :value => 5,
38
+ :stop_if_true => 1
39
+ }
40
+ )
41
+ # End test code.
42
+
43
+ @worksheet.assemble_xml_file
44
+ result = got_to_array(@worksheet.instance_variable_get(:@writer).string)
45
+
46
+ expected = expected_to_array(expected_xml)
47
+ assert_equal(expected, result)
48
+ end
49
+
50
+ def expected_xml
51
+ <<EOS
52
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
53
+ <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
54
+ <dimension ref="A1:A4"/>
55
+ <sheetViews>
56
+ <sheetView tabSelected="1" workbookViewId="0"/>
57
+ </sheetViews>
58
+ <sheetFormatPr defaultRowHeight="15"/>
59
+ <sheetData>
60
+ <row r="1" spans="1:1">
61
+ <c r="A1">
62
+ <v>10</v>
63
+ </c>
64
+ </row>
65
+ <row r="2" spans="1:1">
66
+ <c r="A2">
67
+ <v>20</v>
68
+ </c>
69
+ </row>
70
+ <row r="3" spans="1:1">
71
+ <c r="A3">
72
+ <v>30</v>
73
+ </c>
74
+ </row>
75
+ <row r="4" spans="1:1">
76
+ <c r="A4">
77
+ <v>40</v>
78
+ </c>
79
+ </row>
80
+ </sheetData>
81
+ <conditionalFormatting sqref="A1">
82
+ <cfRule type="cellIs" priority="1" stopIfTrue="1" operator="greaterThan">
83
+ <formula>5</formula>
84
+ </cfRule>
85
+ </conditionalFormatting>
86
+ <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
87
+ </worksheet>
88
+ EOS
89
+ end
90
+ end
@@ -0,0 +1,17 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestFormat < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @format = @workbook.add_format
10
+ end
11
+
12
+ def test_set_align_with_frozen_parameter
13
+ assert_nothing_raised do
14
+ @format.set_align('LEFT'.freeze)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,94 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestSparkline12 < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('Sheet1')
10
+ end
11
+
12
+ def test_sparkline12
13
+ @worksheet.excel_version = 2010
14
+ @worksheet.select
15
+
16
+ data = [-2, 2, 3, -1, 0]
17
+
18
+ @worksheet.write('A1', data)
19
+
20
+ # Set up sparklines
21
+
22
+ @worksheet.add_sparkline(
23
+ {
24
+ :location => 'F1',
25
+ :range => 'Sheet1!A1:E1',
26
+ :max => 4,
27
+ :min => 0
28
+ }
29
+ )
30
+
31
+ # End sparkline
32
+
33
+ @worksheet.assemble_xml_file
34
+ result = got_to_array(@worksheet.instance_variable_get(:@writer).string)
35
+
36
+ expected = expected_to_array(expected_xml)
37
+ assert_equal(expected, result)
38
+ end
39
+
40
+ def expected_xml
41
+ <<EOS
42
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
43
+ <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" mc:Ignorable="x14ac">
44
+ <dimension ref="A1:E1"/>
45
+ <sheetViews>
46
+ <sheetView tabSelected="1" workbookViewId="0"/>
47
+ </sheetViews>
48
+ <sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>
49
+ <sheetData>
50
+ <row r="1" spans="1:5" x14ac:dyDescent="0.25">
51
+ <c r="A1">
52
+ <v>-2</v>
53
+ </c>
54
+ <c r="B1">
55
+ <v>2</v>
56
+ </c>
57
+ <c r="C1">
58
+ <v>3</v>
59
+ </c>
60
+ <c r="D1">
61
+ <v>-1</v>
62
+ </c>
63
+ <c r="E1">
64
+ <v>0</v>
65
+ </c>
66
+ </row>
67
+ </sheetData>
68
+ <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
69
+ <extLst>
70
+ <ext xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" uri="{05C60535-1F16-4fd2-B633-F4F36F0B64E0}">
71
+ <x14:sparklineGroups xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main">
72
+ <x14:sparklineGroup manualMax="4" manualMin="0" displayEmptyCellsAs="gap" minAxisType="custom" maxAxisType="custom">
73
+ <x14:colorSeries theme="4" tint="-0.499984740745262"/>
74
+ <x14:colorNegative theme="5"/>
75
+ <x14:colorAxis rgb="FF000000"/>
76
+ <x14:colorMarkers theme="4" tint="-0.499984740745262"/>
77
+ <x14:colorFirst theme="4" tint="0.39997558519241921"/>
78
+ <x14:colorLast theme="4" tint="0.39997558519241921"/>
79
+ <x14:colorHigh theme="4"/>
80
+ <x14:colorLow theme="4"/>
81
+ <x14:sparklines>
82
+ <x14:sparkline>
83
+ <xm:f>Sheet1!A1:E1</xm:f>
84
+ <xm:sqref>F1</xm:sqref>
85
+ </x14:sparkline>
86
+ </x14:sparklines>
87
+ </x14:sparklineGroup>
88
+ </x14:sparklineGroups>
89
+ </ext>
90
+ </extLst>
91
+ </worksheet>
92
+ EOS
93
+ end
94
+ end
@@ -0,0 +1,111 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestUpdateFormatMethods < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_update_format_with_params_with_insufficient_args_raise_InsufficientArgumentError
13
+ assert_raise(WriteXLSXInsufficientArgumentError) do
14
+ @worksheet.update_format_with_params
15
+ end
16
+ assert_raise(WriteXLSXInsufficientArgumentError) do
17
+ @worksheet.update_format_with_params(0)
18
+ end
19
+ assert_raise(WriteXLSXInsufficientArgumentError) do
20
+ @worksheet.update_format_with_params('A1')
21
+ end
22
+ end
23
+
24
+ def test_update_format_with_params_with_valid_arg_not_raise
25
+ assert_nothing_raised do
26
+ @worksheet.update_format_with_params(0, 0, color: 'red', border: 2)
27
+ end
28
+ assert_nothing_raised do
29
+ @worksheet.update_format_with_params('B2', align: 'center')
30
+ end
31
+ end
32
+
33
+ def test_update_format_with_params_should_write_blank_when_there_is_no_CellData
34
+ assert_nil(@worksheet.instance_variable_get(:@cell_data_table)[0])
35
+ @worksheet.update_format_with_params(0, 0, left: 4)
36
+ assert @worksheet.instance_variable_get(:@cell_data_table)[0][0] != nil
37
+ end
38
+
39
+ def test_update_format_with_params_should_keep_data_when_updating_format
40
+ number = 153
41
+ @worksheet.write(0, 0, number)
42
+ @worksheet.update_format_with_params(0, 0, bg_color: 'gray')
43
+ assert_equal(@worksheet.instance_variable_get(:@cell_data_table)[0][0].data, number)
44
+
45
+ string = 'Hello, World!'
46
+ @worksheet.write(0, 0, string)
47
+ @worksheet.update_format_with_params(0, 0, bg_color: 'gray')
48
+ written_string = @workbook.shared_strings.string(@worksheet.instance_variable_get(:@cell_data_table)[0][0].data[:sst_id])
49
+ assert_equal(written_string, string)
50
+
51
+ formula = '=1+1'
52
+ @worksheet.write(0, 0, formula)
53
+ @worksheet.update_format_with_params(0, 0, bg_color: 'gray')
54
+ assert_equal(@worksheet.instance_variable_get(:@cell_data_table)[0][0].token, '1+1')
55
+
56
+ array_formula = '{=SUM(B1:C1*B2:C2)}'
57
+ @worksheet.write('A1', array_formula)
58
+ @worksheet.update_format_with_params(0, 0, bg_color: 'gray')
59
+ assert_equal(@worksheet.instance_variable_get(:@cell_data_table)[0][0].token, 'SUM(B1:C1*B2:C2)')
60
+
61
+ url = 'https://www.writexlsx.io'
62
+ @worksheet.write(0, 0, url)
63
+ @worksheet.update_format_with_params(0, 0, bg_color: 'gray')
64
+ written_string = @workbook.shared_strings.string(@worksheet.instance_variable_get(:@cell_data_table)[0][0].data[:sst_id])
65
+ assert_equal(written_string, url)
66
+
67
+ string = 'Hello, World!'
68
+ format = @workbook.add_format(color: 'white')
69
+ @worksheet.write(0, 0, string, format)
70
+ @worksheet.update_format_with_params(0, 0, bg_color: 'gray')
71
+ written_string = @workbook.shared_strings.string(@worksheet.instance_variable_get(:@cell_data_table)[0][0].data[:sst_id])
72
+ assert_equal(written_string, string)
73
+ end
74
+
75
+ def test_update_format_with_params_should_not_update_other_cells_format
76
+ format = @workbook.add_format(bold: 1)
77
+ @worksheet.write_row(0, 0, ['', '', '', '', ''], format)
78
+ @worksheet.update_format_with_params(0, 0, bold: 0)
79
+ assert_not_equal(@worksheet.instance_variable_get(:@cell_data_table)[0][0].xf,
80
+ @worksheet.instance_variable_get(:@cell_data_table)[0][1].xf )
81
+ assert_equal(@worksheet.instance_variable_get(:@cell_data_table)[0][0].xf.bold, 0)
82
+ assert_equal(@worksheet.instance_variable_get(:@cell_data_table)[0][1].xf.bold, 1)
83
+ end
84
+
85
+ def test_update_range_format_with_params_with_insufficient_args_raise_InsufficientArgumentError
86
+ assert_raise(WriteXLSXInsufficientArgumentError) do
87
+ @worksheet.update_range_format_with_params
88
+ end
89
+ assert_raise(WriteXLSXInsufficientArgumentError) do
90
+ @worksheet.update_range_format_with_params(0, 0)
91
+ end
92
+ assert_raise(WriteXLSXInsufficientArgumentError) do
93
+ @worksheet.update_range_format_with_params('A1')
94
+ end
95
+ assert_raise(WriteXLSXInsufficientArgumentError) do
96
+ @worksheet.update_range_format_with_params(0, 0, 3, 3)
97
+ end
98
+ assert_raise(WriteXLSXInsufficientArgumentError) do
99
+ @worksheet.update_range_format_with_params('A2:C2')
100
+ end
101
+ end
102
+
103
+ def test_update_range_format_with_params_with_valid_arg_not_raise
104
+ assert_nothing_raised do
105
+ @worksheet.update_range_format_with_params(0, 0, 3, 3, bold: 1)
106
+ end
107
+ assert_nothing_raised do
108
+ @worksheet.update_range_format_with_params('A2:D5', bold: 1)
109
+ end
110
+ end
111
+ end
@@ -272,7 +272,7 @@ def test_write_data_validations_integer_between_1_and_10_with_input_title_and_in
272
272
  assert_equal(expected, result)
273
273
  end
274
274
 
275
- def test_write_data_validation_validate_any
275
+ def test_write_data_validation_validate_any_value_on_its_own_shouldnt_produce_a_DV_record
276
276
  @worksheet.data_validation('B5', :validate => 'any')
277
277
  @worksheet.__send__('write_data_validations')
278
278
  result = @worksheet.instance_variable_get(:@writer).string
@@ -525,4 +525,17 @@ def test_write_data_validations_multiple_validation
525
525
  expected = '<dataValidations count="2"><dataValidation type="whole" operator="greaterThan" allowBlank="1" showInputMessage="1" showErrorMessage="1" sqref="B5"><formula1>10</formula1></dataValidation><dataValidation type="whole" operator="lessThan" allowBlank="1" showInputMessage="1" showErrorMessage="1" sqref="C10"><formula1>10</formula1></dataValidation></dataValidations>'
526
526
  assert_equal(expected, result)
527
527
  end
528
+
529
+ def test_write_data_validations_any_with_an_input_message_should_produce_a_DV_record
530
+ @worksheet.data_validation(
531
+ 'B5',
532
+ :validate => 'any',
533
+ :input_title => 'Input title January',
534
+ :input_message => 'Input message February'
535
+ )
536
+ @worksheet.__send__('write_data_validations')
537
+ result = @worksheet.instance_variable_get(:@writer).string
538
+ expected = '<dataValidations count="1"><dataValidation allowBlank="1" showInputMessage="1" showErrorMessage="1" promptTitle="Input title January" prompt="Input message February" sqref="B5"/></dataValidations>'
539
+ assert_equal(expected, result)
540
+ end
528
541
  end
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.name = "write_xlsx"
8
8
  gem.version = WriteXLSX_VERSION
9
9
  gem.authors = ["Hideo NAKAMURA"]
10
- gem.email = ["cxn03651@msj.biglobe.ne.jp"]
10
+ gem.email = ["nakamura.hideo@gmail.com"]
11
11
  gem.description = "write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format."
12
12
  gem.summary = "write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format."
13
13
  gem.homepage = "http://github.com/cxn03651/write_xlsx#readme"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: write_xlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.85.7
4
+ version: 0.86.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hideo NAKAMURA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-20 00:00:00.000000000 Z
11
+ date: 2020-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -68,7 +68,7 @@ dependencies:
68
68
  version: '0'
69
69
  description: write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
70
70
  email:
71
- - cxn03651@msj.biglobe.ne.jp
71
+ - nakamura.hideo@gmail.com
72
72
  executables:
73
73
  - extract_vba.rb
74
74
  extensions: []
@@ -154,6 +154,7 @@ files:
154
154
  - examples/stocks.rb
155
155
  - examples/tab_colors.rb
156
156
  - examples/tables.rb
157
+ - examples/update_range_format_with_params.rb
157
158
  - examples/vbaProject.bin
158
159
  - lib/write_xlsx.rb
159
160
  - lib/write_xlsx/chart.rb
@@ -395,6 +396,7 @@ files:
395
396
  - test/regression/images/red.bmp
396
397
  - test/regression/images/red.jpg
397
398
  - test/regression/images/red.png
399
+ - test/regression/images/red_208.png
398
400
  - test/regression/images/red_64x20.png
399
401
  - test/regression/images/train.jpg
400
402
  - test/regression/images/yellow.jpg
@@ -741,6 +743,7 @@ files:
741
743
  - test/regression/test_data_validation03.rb
742
744
  - test/regression/test_data_validation04.rb
743
745
  - test/regression/test_data_validation05.rb
746
+ - test/regression/test_data_validation08.rb
744
747
  - test/regression/test_date_1904_01.rb
745
748
  - test/regression/test_date_1904_02.rb
746
749
  - test/regression/test_date_examples01.rb
@@ -822,6 +825,9 @@ files:
822
825
  - test/regression/test_hyperlink18.rb
823
826
  - test/regression/test_hyperlink20.rb
824
827
  - test/regression/test_hyperlink21.rb
828
+ - test/regression/test_hyperlink22.rb
829
+ - test/regression/test_hyperlink23.rb
830
+ - test/regression/test_hyperlink24.rb
825
831
  - test/regression/test_image01.rb
826
832
  - test/regression/test_image02.rb
827
833
  - test/regression/test_image03.rb
@@ -847,6 +853,12 @@ files:
847
853
  - test/regression/test_image25.rb
848
854
  - test/regression/test_image26.rb
849
855
  - test/regression/test_image27.rb
856
+ - test/regression/test_image28.rb
857
+ - test/regression/test_image29.rb
858
+ - test/regression/test_image30.rb
859
+ - test/regression/test_image31.rb
860
+ - test/regression/test_image32.rb
861
+ - test/regression/test_image33.rb
850
862
  - test/regression/test_landscape01.rb
851
863
  - test/regression/test_macro01.rb
852
864
  - test/regression/test_merge_cells01.rb
@@ -887,6 +899,7 @@ files:
887
899
  - test/regression/test_print_scale01.rb
888
900
  - test/regression/test_print_scale02.rb
889
901
  - test/regression/test_properties01.rb
902
+ - test/regression/test_properties02.rb
890
903
  - test/regression/test_protect01.rb
891
904
  - test/regression/test_protect02.rb
892
905
  - test/regression/test_protect03.rb
@@ -978,6 +991,7 @@ files:
978
991
  - test/regression/test_tutorial01.rb
979
992
  - test/regression/test_tutorial02.rb
980
993
  - test/regression/test_tutorial03.rb
994
+ - test/regression/test_update_range_format_with_params.rb
981
995
  - test/regression/test_urls_as_strings.rb
982
996
  - test/regression/test_utf8_01.rb
983
997
  - test/regression/test_utf8_03.rb
@@ -1324,6 +1338,7 @@ files:
1324
1338
  - test/regression/xlsx_files/data_validation01.xlsx
1325
1339
  - test/regression/xlsx_files/data_validation02.xlsx
1326
1340
  - test/regression/xlsx_files/data_validation03.xlsx
1341
+ - test/regression/xlsx_files/data_validation08.xlsx
1327
1342
  - test/regression/xlsx_files/date_1904_01.xlsx
1328
1343
  - test/regression/xlsx_files/date_1904_02.xlsx
1329
1344
  - test/regression/xlsx_files/date_examples01.xlsx
@@ -1406,6 +1421,9 @@ files:
1406
1421
  - test/regression/xlsx_files/hyperlink18.xlsx
1407
1422
  - test/regression/xlsx_files/hyperlink20.xlsx
1408
1423
  - test/regression/xlsx_files/hyperlink21.xlsx
1424
+ - test/regression/xlsx_files/hyperlink22.xlsx
1425
+ - test/regression/xlsx_files/hyperlink23.xlsx
1426
+ - test/regression/xlsx_files/hyperlink24.xlsx
1409
1427
  - test/regression/xlsx_files/image01.xlsx
1410
1428
  - test/regression/xlsx_files/image02.xlsx
1411
1429
  - test/regression/xlsx_files/image03.xlsx
@@ -1431,6 +1449,12 @@ files:
1431
1449
  - test/regression/xlsx_files/image25.xlsx
1432
1450
  - test/regression/xlsx_files/image26.xlsx
1433
1451
  - test/regression/xlsx_files/image27.xlsx
1452
+ - test/regression/xlsx_files/image28.xlsx
1453
+ - test/regression/xlsx_files/image29.xlsx
1454
+ - test/regression/xlsx_files/image30.xlsx
1455
+ - test/regression/xlsx_files/image31.xlsx
1456
+ - test/regression/xlsx_files/image32.xlsx
1457
+ - test/regression/xlsx_files/image33.xlsx
1434
1458
  - test/regression/xlsx_files/landscape01.xlsx
1435
1459
  - test/regression/xlsx_files/macro01.xlsm
1436
1460
  - test/regression/xlsx_files/merge_cells01.xlsx
@@ -1471,6 +1495,7 @@ files:
1471
1495
  - test/regression/xlsx_files/print_scale01.xlsx
1472
1496
  - test/regression/xlsx_files/print_scale02.xlsx
1473
1497
  - test/regression/xlsx_files/properties01.xlsx
1498
+ - test/regression/xlsx_files/properties02.xlsx
1474
1499
  - test/regression/xlsx_files/protect01.xlsx
1475
1500
  - test/regression/xlsx_files/protect02.xlsx
1476
1501
  - test/regression/xlsx_files/protect03.xlsx
@@ -1558,9 +1583,12 @@ files:
1558
1583
  - test/regression/xlsx_files/table14.xlsx
1559
1584
  - test/regression/xlsx_files/table15.xlsx
1560
1585
  - test/regression/xlsx_files/table17.xlsx
1586
+ - test/regression/xlsx_files/table18.xlsx
1587
+ - test/regression/xlsx_files/table19.xlsx
1561
1588
  - test/regression/xlsx_files/tutorial01.xlsx
1562
1589
  - test/regression/xlsx_files/tutorial02.xlsx
1563
1590
  - test/regression/xlsx_files/tutorial03.xlsx
1591
+ - test/regression/xlsx_files/update_range_format_with_params.xlsx
1564
1592
  - test/regression/xlsx_files/urls_as_strings.xlsx
1565
1593
  - test/regression/xlsx_files/utf8_01.xlsx
1566
1594
  - test/regression/xlsx_files/utf8_03.xlsx
@@ -1578,6 +1606,7 @@ files:
1578
1606
  - test/regression/xlsx_files/vml03.xlsx
1579
1607
  - test/regression/xlsx_files/vml04.xlsx
1580
1608
  - test/republic.png
1609
+ - test/run_test.rb
1581
1610
  - test/test_col_name.rb
1582
1611
  - test/test_delete_files.rb
1583
1612
  - test/test_example_match.rb
@@ -1615,11 +1644,13 @@ files:
1615
1644
  - test/worksheet/test_cond_format_18.rb
1616
1645
  - test/worksheet/test_cond_format_19.rb
1617
1646
  - test/worksheet/test_cond_format_20.rb
1647
+ - test/worksheet/test_cond_format_21.rb
1618
1648
  - test/worksheet/test_convert_date_time_01.rb
1619
1649
  - test/worksheet/test_convert_date_time_02.rb
1620
1650
  - test/worksheet/test_convert_date_time_03.rb
1621
1651
  - test/worksheet/test_convert_date_time_04.rb
1622
1652
  - test/worksheet/test_extract_filter_tokens.rb
1653
+ - test/worksheet/test_format.rb
1623
1654
  - test/worksheet/test_parse_filter_expression.rb
1624
1655
  - test/worksheet/test_position_object.rb
1625
1656
  - test/worksheet/test_repeat_formula.rb
@@ -1634,6 +1665,8 @@ files:
1634
1665
  - test/worksheet/test_sparkline_09.rb
1635
1666
  - test/worksheet/test_sparkline_10.rb
1636
1667
  - test/worksheet/test_sparkline_11.rb
1668
+ - test/worksheet/test_sparkline_12.rb
1669
+ - test/worksheet/test_update_format_methods.rb
1637
1670
  - test/worksheet/test_worksheet_01.rb
1638
1671
  - test/worksheet/test_worksheet_02.rb
1639
1672
  - test/worksheet/test_worksheet_03.rb
@@ -1709,8 +1742,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1709
1742
  - !ruby/object:Gem::Version
1710
1743
  version: '0'
1711
1744
  requirements: []
1712
- rubyforge_project:
1713
- rubygems_version: 2.6.8
1745
+ rubygems_version: 3.0.3
1714
1746
  signing_key:
1715
1747
  specification_version: 4
1716
1748
  summary: write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
@@ -1907,6 +1939,7 @@ test_files:
1907
1939
  - test/regression/images/red.bmp
1908
1940
  - test/regression/images/red.jpg
1909
1941
  - test/regression/images/red.png
1942
+ - test/regression/images/red_208.png
1910
1943
  - test/regression/images/red_64x20.png
1911
1944
  - test/regression/images/train.jpg
1912
1945
  - test/regression/images/yellow.jpg
@@ -2253,6 +2286,7 @@ test_files:
2253
2286
  - test/regression/test_data_validation03.rb
2254
2287
  - test/regression/test_data_validation04.rb
2255
2288
  - test/regression/test_data_validation05.rb
2289
+ - test/regression/test_data_validation08.rb
2256
2290
  - test/regression/test_date_1904_01.rb
2257
2291
  - test/regression/test_date_1904_02.rb
2258
2292
  - test/regression/test_date_examples01.rb
@@ -2334,6 +2368,9 @@ test_files:
2334
2368
  - test/regression/test_hyperlink18.rb
2335
2369
  - test/regression/test_hyperlink20.rb
2336
2370
  - test/regression/test_hyperlink21.rb
2371
+ - test/regression/test_hyperlink22.rb
2372
+ - test/regression/test_hyperlink23.rb
2373
+ - test/regression/test_hyperlink24.rb
2337
2374
  - test/regression/test_image01.rb
2338
2375
  - test/regression/test_image02.rb
2339
2376
  - test/regression/test_image03.rb
@@ -2359,6 +2396,12 @@ test_files:
2359
2396
  - test/regression/test_image25.rb
2360
2397
  - test/regression/test_image26.rb
2361
2398
  - test/regression/test_image27.rb
2399
+ - test/regression/test_image28.rb
2400
+ - test/regression/test_image29.rb
2401
+ - test/regression/test_image30.rb
2402
+ - test/regression/test_image31.rb
2403
+ - test/regression/test_image32.rb
2404
+ - test/regression/test_image33.rb
2362
2405
  - test/regression/test_landscape01.rb
2363
2406
  - test/regression/test_macro01.rb
2364
2407
  - test/regression/test_merge_cells01.rb
@@ -2399,6 +2442,7 @@ test_files:
2399
2442
  - test/regression/test_print_scale01.rb
2400
2443
  - test/regression/test_print_scale02.rb
2401
2444
  - test/regression/test_properties01.rb
2445
+ - test/regression/test_properties02.rb
2402
2446
  - test/regression/test_protect01.rb
2403
2447
  - test/regression/test_protect02.rb
2404
2448
  - test/regression/test_protect03.rb
@@ -2490,6 +2534,7 @@ test_files:
2490
2534
  - test/regression/test_tutorial01.rb
2491
2535
  - test/regression/test_tutorial02.rb
2492
2536
  - test/regression/test_tutorial03.rb
2537
+ - test/regression/test_update_range_format_with_params.rb
2493
2538
  - test/regression/test_urls_as_strings.rb
2494
2539
  - test/regression/test_utf8_01.rb
2495
2540
  - test/regression/test_utf8_03.rb
@@ -2836,6 +2881,7 @@ test_files:
2836
2881
  - test/regression/xlsx_files/data_validation01.xlsx
2837
2882
  - test/regression/xlsx_files/data_validation02.xlsx
2838
2883
  - test/regression/xlsx_files/data_validation03.xlsx
2884
+ - test/regression/xlsx_files/data_validation08.xlsx
2839
2885
  - test/regression/xlsx_files/date_1904_01.xlsx
2840
2886
  - test/regression/xlsx_files/date_1904_02.xlsx
2841
2887
  - test/regression/xlsx_files/date_examples01.xlsx
@@ -2918,6 +2964,9 @@ test_files:
2918
2964
  - test/regression/xlsx_files/hyperlink18.xlsx
2919
2965
  - test/regression/xlsx_files/hyperlink20.xlsx
2920
2966
  - test/regression/xlsx_files/hyperlink21.xlsx
2967
+ - test/regression/xlsx_files/hyperlink22.xlsx
2968
+ - test/regression/xlsx_files/hyperlink23.xlsx
2969
+ - test/regression/xlsx_files/hyperlink24.xlsx
2921
2970
  - test/regression/xlsx_files/image01.xlsx
2922
2971
  - test/regression/xlsx_files/image02.xlsx
2923
2972
  - test/regression/xlsx_files/image03.xlsx
@@ -2943,6 +2992,12 @@ test_files:
2943
2992
  - test/regression/xlsx_files/image25.xlsx
2944
2993
  - test/regression/xlsx_files/image26.xlsx
2945
2994
  - test/regression/xlsx_files/image27.xlsx
2995
+ - test/regression/xlsx_files/image28.xlsx
2996
+ - test/regression/xlsx_files/image29.xlsx
2997
+ - test/regression/xlsx_files/image30.xlsx
2998
+ - test/regression/xlsx_files/image31.xlsx
2999
+ - test/regression/xlsx_files/image32.xlsx
3000
+ - test/regression/xlsx_files/image33.xlsx
2946
3001
  - test/regression/xlsx_files/landscape01.xlsx
2947
3002
  - test/regression/xlsx_files/macro01.xlsm
2948
3003
  - test/regression/xlsx_files/merge_cells01.xlsx
@@ -2983,6 +3038,7 @@ test_files:
2983
3038
  - test/regression/xlsx_files/print_scale01.xlsx
2984
3039
  - test/regression/xlsx_files/print_scale02.xlsx
2985
3040
  - test/regression/xlsx_files/properties01.xlsx
3041
+ - test/regression/xlsx_files/properties02.xlsx
2986
3042
  - test/regression/xlsx_files/protect01.xlsx
2987
3043
  - test/regression/xlsx_files/protect02.xlsx
2988
3044
  - test/regression/xlsx_files/protect03.xlsx
@@ -3070,9 +3126,12 @@ test_files:
3070
3126
  - test/regression/xlsx_files/table14.xlsx
3071
3127
  - test/regression/xlsx_files/table15.xlsx
3072
3128
  - test/regression/xlsx_files/table17.xlsx
3129
+ - test/regression/xlsx_files/table18.xlsx
3130
+ - test/regression/xlsx_files/table19.xlsx
3073
3131
  - test/regression/xlsx_files/tutorial01.xlsx
3074
3132
  - test/regression/xlsx_files/tutorial02.xlsx
3075
3133
  - test/regression/xlsx_files/tutorial03.xlsx
3134
+ - test/regression/xlsx_files/update_range_format_with_params.xlsx
3076
3135
  - test/regression/xlsx_files/urls_as_strings.xlsx
3077
3136
  - test/regression/xlsx_files/utf8_01.xlsx
3078
3137
  - test/regression/xlsx_files/utf8_03.xlsx
@@ -3090,6 +3149,7 @@ test_files:
3090
3149
  - test/regression/xlsx_files/vml03.xlsx
3091
3150
  - test/regression/xlsx_files/vml04.xlsx
3092
3151
  - test/republic.png
3152
+ - test/run_test.rb
3093
3153
  - test/test_col_name.rb
3094
3154
  - test/test_delete_files.rb
3095
3155
  - test/test_example_match.rb
@@ -3127,11 +3187,13 @@ test_files:
3127
3187
  - test/worksheet/test_cond_format_18.rb
3128
3188
  - test/worksheet/test_cond_format_19.rb
3129
3189
  - test/worksheet/test_cond_format_20.rb
3190
+ - test/worksheet/test_cond_format_21.rb
3130
3191
  - test/worksheet/test_convert_date_time_01.rb
3131
3192
  - test/worksheet/test_convert_date_time_02.rb
3132
3193
  - test/worksheet/test_convert_date_time_03.rb
3133
3194
  - test/worksheet/test_convert_date_time_04.rb
3134
3195
  - test/worksheet/test_extract_filter_tokens.rb
3196
+ - test/worksheet/test_format.rb
3135
3197
  - test/worksheet/test_parse_filter_expression.rb
3136
3198
  - test/worksheet/test_position_object.rb
3137
3199
  - test/worksheet/test_repeat_formula.rb
@@ -3146,6 +3208,8 @@ test_files:
3146
3208
  - test/worksheet/test_sparkline_09.rb
3147
3209
  - test/worksheet/test_sparkline_10.rb
3148
3210
  - test/worksheet/test_sparkline_11.rb
3211
+ - test/worksheet/test_sparkline_12.rb
3212
+ - test/worksheet/test_update_format_methods.rb
3149
3213
  - test/worksheet/test_worksheet_01.rb
3150
3214
  - test/worksheet/test_worksheet_02.rb
3151
3215
  - test/worksheet/test_worksheet_03.rb
@@ -3201,4 +3265,3 @@ test_files:
3201
3265
  - test/worksheet/test_write_tab_color.rb
3202
3266
  - test/worksheet/test_write_url.rb
3203
3267
  - test/worksheet/test_write_worksheet_attributes.rb
3204
- has_rdoc: