write_xlsx 1.08.0 → 1.08.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0bce1d8cc8f140d38ac7d9149e644d8b1d5133c80933fc2faa2a33d25dcbd168
4
- data.tar.gz: 4edf0897d13ec8cee0b545177fe4117286067ba2e14b89c2866192885414633b
3
+ metadata.gz: 9ab3f33d51239105a5d5c8e0765ada850496c199a370e713353c56d0e0764e4b
4
+ data.tar.gz: 4b379953050d7a9a5c4151742825c7672c66e60b7c37146531f8d0075d32b634
5
5
  SHA512:
6
- metadata.gz: 267233a3a8222f817bc455b5d8723bf29808854a7b5410c090becd44baee604201b53792f03b29db84c2fa82f9a4085e11175893abb11bab50b1a74c9f0526e8
7
- data.tar.gz: bc5138fcae79f92aaa9a5d6d708575e9615cec51e4c229ec46e0e75e45bc1eca37056f27466f321c8ad6376119bd37c61754b8809c991fd2352ca8a1108089f0
6
+ metadata.gz: 128e52ae31ef667b30e8c6649c1747abf75750e48bd1a7a9a95cedd69ab3699f55755c9ef2686da4252642c662ed871b41ebb90cabe6d23e56f319b958db89b9
7
+ data.tar.gz: 31b68e29186266b216aaf8dc2035619292999146e79a9388c1d46dcbdd4704d17688586733dc8bb2b6284865340a68d62c7de6cd738a1ed9f6e68c83f388e94e
@@ -189,6 +189,14 @@ module Writexlsx
189
189
  param[:header_row] ||= 1
190
190
  param[:autofilter] ||= 1
191
191
 
192
+ # Check that there are enough rows.
193
+ num_rows = row2 - row1
194
+ num_rows -= 1 if ptrue?(param[:header_row])
195
+
196
+ if num_rows < 0
197
+ raise "Must have at least one data row in in add_table()"
198
+ end
199
+
192
200
  # If the header row if off the default is to turn autofilter off.
193
201
  param[:autofilter] = 0 if param[:header_row] == 0
194
202
 
@@ -1 +1 @@
1
- WriteXLSX_VERSION = "1.08.0"
1
+ WriteXLSX_VERSION = "1.08.1"
@@ -381,6 +381,7 @@ module Writexlsx
381
381
  @comments = Package::Comments.new(self)
382
382
  @buttons_array = []
383
383
  @header_images_array = []
384
+ @ignore_errors = nil
384
385
 
385
386
  @validations = []
386
387
 
@@ -431,6 +432,7 @@ module Writexlsx
431
432
  write_header_footer
432
433
  write_row_breaks
433
434
  write_col_breaks
435
+ write_ignored_errors
434
436
  write_drawings
435
437
  write_legacy_drawing
436
438
  write_legacy_drawing_hf
@@ -1224,14 +1226,10 @@ module Writexlsx
1224
1226
  # distribution.
1225
1227
  #
1226
1228
  def set_header(string = '', margin = 0.3, options = {})
1227
- raise 'Header string must be less than 255 characters' if string.length >= 255
1229
+ raise 'Header string must be less than 255 characters' if string.length > 255
1228
1230
  # Replace the Excel placeholder &[Picture] with the internal &G.
1229
1231
  @page_setup.header = string.gsub(/&\[Picture\]/, '&G')
1230
1232
 
1231
- if string.size >= 255
1232
- raise 'Header string must be less than 255 characters'
1233
- end
1234
-
1235
1233
  if options[:align_with_margins]
1236
1234
  @page_setup.header_footer_aligns = options[:align_with_margins]
1237
1235
  end
@@ -1272,17 +1270,13 @@ module Writexlsx
1272
1270
  # The syntax of the set_footer() method is the same as set_header()
1273
1271
  #
1274
1272
  def set_footer(string = '', margin = 0.3, options = {})
1275
- raise 'Footer string must be less than 255 characters' if string.length >= 255
1273
+ raise 'Footer string must be less than 255 characters' if string.length > 255
1276
1274
 
1277
1275
  @page_setup.footer = string.dup
1278
1276
 
1279
1277
  # Replace the Excel placeholder &[Picture] with the internal &G.
1280
1278
  @page_setup.footer = string.gsub(/&\[Picture\]/, '&G')
1281
1279
 
1282
- if string.size >= 255
1283
- raise 'Header string must be less than 255 characters'
1284
- end
1285
-
1286
1280
  if options[:align_with_margins]
1287
1281
  @page_setup.header_footer_aligns = options[:align_with_margins]
1288
1282
  end
@@ -6087,6 +6081,30 @@ module Writexlsx
6087
6081
  end
6088
6082
  end
6089
6083
 
6084
+ #
6085
+ # Ignore worksheet errors/warnings in user defined ranges.
6086
+ #
6087
+ def ignore_errors(ignores)
6088
+ # List of valid input parameters.
6089
+ valid_parameter_keys = [
6090
+ :number_stored_as_text,
6091
+ :eval_error,
6092
+ :formula_differs,
6093
+ :formula_range,
6094
+ :formula_unlocked,
6095
+ :empty_cell_reference,
6096
+ :list_data_validation,
6097
+ :calculated_column,
6098
+ :two_digit_text_year
6099
+ ]
6100
+
6101
+ unless (ignores.keys - valid_parameter_keys).empty?
6102
+ raise "Unknown parameter '#{ignores.key - valid_parameter_keys}' in ignore_errors()."
6103
+ end
6104
+
6105
+ @ignore_errors = ignores
6106
+ end
6107
+
6090
6108
  def write_ext(url)
6091
6109
  attributes = [
6092
6110
  ['xmlns:x14', "#{OFFICE_URL}spreadsheetml/2009/9/main"],
@@ -6528,10 +6546,19 @@ module Writexlsx
6528
6546
  target = escape_url(url)
6529
6547
  end
6530
6548
  if url =~ /^external:/
6531
- target = escape_url(url.sub(/^external:/, 'file:///'))
6549
+ target = escape_url(url.sub(/^external:/, ''))
6550
+
6532
6551
  # Additional escape not required in worksheet hyperlinks
6533
6552
  target = target.gsub(/#/, '%23')
6553
+
6554
+ # Prefix absolute paths (not relative) with file:///
6555
+ if target =~ /^\w:/ || target =~ /^\\\\/
6556
+ target = "file:///#{target}"
6557
+ else
6558
+ target = target.gsub(/\\/, '/')
6559
+ end
6534
6560
  end
6561
+
6535
6562
  if url =~ /^internal:/
6536
6563
  target = url.sub(/^internal:/, '#')
6537
6564
  target_mode = nil
@@ -8139,5 +8166,44 @@ EOS
8139
8166
  end
8140
8167
  col
8141
8168
  end
8169
+
8170
+ #
8171
+ # Write the <ignoredErrors> element.
8172
+ #
8173
+ def write_ignored_errors
8174
+ return unless @ignore_errors
8175
+
8176
+ ignore = @ignore_errors
8177
+
8178
+ @writer.tag_elements('ignoredErrors' ) do
8179
+ {
8180
+ :number_stored_as_text => 'numberStoredAsText',
8181
+ :eval_error => 'evalError',
8182
+ :formula_differs => 'formula',
8183
+ :formula_range => 'formulaRange',
8184
+ :formula_unlocked => 'unlockedFormula',
8185
+ :empty_cell_reference => 'emptyCellReference',
8186
+ :list_data_validation => 'listDataValidation',
8187
+ :calculated_column => 'calculatedColumn',
8188
+ :two_digit_text_year => 'twoDigitTextYear'
8189
+ }.each do |key, value|
8190
+ if ignore[key]
8191
+ write_ignored_error(value, ignore[key])
8192
+ end
8193
+ end
8194
+ end
8195
+ end
8196
+
8197
+ #
8198
+ # Write the <ignoredError> element.
8199
+ #
8200
+ def write_ignored_error(type, sqref)
8201
+ attributes = {
8202
+ 'sqref' => sqref,
8203
+ type => 1
8204
+ }
8205
+
8206
+ @writer.empty_tag('ignoredError', attributes)
8207
+ end
8142
8208
  end
8143
8209
  end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionHeader04 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_header04
14
+ @xlsx = 'header04.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_header(
19
+ '&CŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ'
20
+ )
21
+
22
+ workbook.close
23
+
24
+ compare_for_regression(
25
+ [],
26
+ {
27
+ 'xl/worksheets/sheet1.xml' => [ '<pageMargins', '<pageSetup' ]
28
+ })
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionHyperlink50 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true) if @tempfile
11
+ end
12
+
13
+ def test_hyperlink50
14
+ @xlsx = 'hyperlink50.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.insert_image(
19
+ 'E9', 'test/regression/images/red.png',
20
+ :url => 'external:..\Book1.xlsx'
21
+ )
22
+
23
+ workbook.close
24
+
25
+ compare_for_regression
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionHyperlink51 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true) if @tempfile
11
+ end
12
+
13
+ def test_hyperlink51
14
+ @xlsx = 'hyperlink51.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.insert_image(
19
+ 'E9', 'test/regression/images/red.png',
20
+ :url => 'external:C:\Temp\Book1.xlsx'
21
+ )
22
+
23
+ workbook.close
24
+
25
+ compare_for_regression
26
+ end
27
+ end
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionIgnoreError01 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_ignore_error01
14
+ @xlsx = 'ignore_error01.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.write_string('A1', '123')
19
+
20
+ workbook.close
21
+ compare_for_regression
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionIgnoreError02 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_ignore_error02
14
+ @xlsx = 'ignore_error02.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.write_string('A1', '123')
19
+ worksheet.ignore_errors(number_stored_as_text: 'A1')
20
+
21
+ workbook.close
22
+ compare_for_regression
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionIgnoreError03 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_ignore_error03
14
+ @xlsx = 'ignore_error03.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ (0..9).each do |row|
19
+ worksheet.write_string(row, 0, '123')
20
+ end
21
+ worksheet.ignore_errors(number_stored_as_text: 'A1:A10')
22
+
23
+ workbook.close
24
+ compare_for_regression
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionIgnoreError04 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_ignore_error04
14
+ @xlsx = 'ignore_error04.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.write_string('A1', '123')
19
+ worksheet.write_string('C3', '123')
20
+ worksheet.write_string('E5', '123')
21
+ worksheet.ignore_errors(number_stored_as_text: 'A1 C3 E5')
22
+
23
+ workbook.close
24
+ compare_for_regression
25
+ end
26
+ end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionIgnoreError05 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_ignore_error05
14
+ @xlsx = 'ignore_error05.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.write_string('A1', '123')
19
+ worksheet.write_formula('A2', '=1/0', nil, '#DIV/0!')
20
+
21
+ worksheet.ignore_errors(
22
+ number_stored_as_text: 'A1',
23
+ eval_error: 'A2'
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression(
28
+ ['xl/calcChain.xml', '[Content_Types].xml', 'xl/_rels/workbook.xml.rels'],
29
+ {}
30
+ )
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionIgnoreError06 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_ignore_error06
14
+ @xlsx = 'ignore_error06.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.write_formula('A1', '=B1')
19
+ worksheet.write_formula('A2', '=B1')
20
+ worksheet.write_formula('A3', '=B3')
21
+
22
+ worksheet.ignore_errors(
23
+ :formula_differs => 'A2'
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression(
28
+ ['xl/calcChain.xml', '[Content_Types].xml', 'xl/_rels/workbook.xml.rels'],
29
+ {}
30
+ )
31
+ end
32
+ end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionTable26 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true) if @tempfile
11
+ end
12
+
13
+ def test_table26
14
+ @xlsx = 'table26.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ # Set the column width to match the target worksheet.
19
+ worksheet.set_column('C:D', 10.288)
20
+ worksheet.set_column('F:G', 10.288)
21
+
22
+ # Add the table.
23
+ worksheet.add_table('C2:D3')
24
+ worksheet.add_table('F3:G3', :header_row => 0)
25
+
26
+ # These tables should be ignored since the ranges are incorrect.
27
+ assert_raises(RuntimeError) do
28
+ worksheet.add_table('I2:J2')
29
+ end
30
+
31
+ assert_raises(RuntimeError) do
32
+ worksheet.add_table('L3:M3', header_row: 1)
33
+ end
34
+
35
+ workbook.close
36
+ compare_for_regression
37
+ end
38
+ end
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: 1.08.0
4
+ version: 1.08.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hideo NAKAMURA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-19 00:00:00.000000000 Z
11
+ date: 2021-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -907,6 +907,7 @@ files:
907
907
  - test/regression/test_header01.rb
908
908
  - test/regression/test_header02.rb
909
909
  - test/regression/test_header03.rb
910
+ - test/regression/test_header04.rb
910
911
  - test/regression/test_header_image01.rb
911
912
  - test/regression/test_header_image02.rb
912
913
  - test/regression/test_header_image03.rb
@@ -973,6 +974,14 @@ files:
973
974
  - test/regression/test_hyperlink47.rb
974
975
  - test/regression/test_hyperlink48.rb
975
976
  - test/regression/test_hyperlink49.rb
977
+ - test/regression/test_hyperlink50.rb
978
+ - test/regression/test_hyperlink51.rb
979
+ - test/regression/test_ignore_error01.rb
980
+ - test/regression/test_ignore_error02.rb
981
+ - test/regression/test_ignore_error03.rb
982
+ - test/regression/test_ignore_error04.rb
983
+ - test/regression/test_ignore_error05.rb
984
+ - test/regression/test_ignore_error06.rb
976
985
  - test/regression/test_image01.rb
977
986
  - test/regression/test_image02.rb
978
987
  - test/regression/test_image03.rb
@@ -1178,6 +1187,7 @@ files:
1178
1187
  - test/regression/test_table23.rb
1179
1188
  - test/regression/test_table24.rb
1180
1189
  - test/regression/test_table25.rb
1190
+ - test/regression/test_table26.rb
1181
1191
  - test/regression/test_tutorial01.rb
1182
1192
  - test/regression/test_tutorial02.rb
1183
1193
  - test/regression/test_tutorial03.rb
@@ -1670,6 +1680,7 @@ files:
1670
1680
  - test/regression/xlsx_files/header01.xlsx
1671
1681
  - test/regression/xlsx_files/header02.xlsx
1672
1682
  - test/regression/xlsx_files/header03.xlsx
1683
+ - test/regression/xlsx_files/header04.xlsx
1673
1684
  - test/regression/xlsx_files/header_image01.xlsx
1674
1685
  - test/regression/xlsx_files/header_image02.xlsx
1675
1686
  - test/regression/xlsx_files/header_image03.xlsx
@@ -1738,6 +1749,14 @@ files:
1738
1749
  - test/regression/xlsx_files/hyperlink47.xlsx
1739
1750
  - test/regression/xlsx_files/hyperlink48.xlsx
1740
1751
  - test/regression/xlsx_files/hyperlink49.xlsx
1752
+ - test/regression/xlsx_files/hyperlink50.xlsx
1753
+ - test/regression/xlsx_files/hyperlink51.xlsx
1754
+ - test/regression/xlsx_files/ignore_error01.xlsx
1755
+ - test/regression/xlsx_files/ignore_error02.xlsx
1756
+ - test/regression/xlsx_files/ignore_error03.xlsx
1757
+ - test/regression/xlsx_files/ignore_error04.xlsx
1758
+ - test/regression/xlsx_files/ignore_error05.xlsx
1759
+ - test/regression/xlsx_files/ignore_error06.xlsx
1741
1760
  - test/regression/xlsx_files/image01.xlsx
1742
1761
  - test/regression/xlsx_files/image02.xlsx
1743
1762
  - test/regression/xlsx_files/image03.xlsx
@@ -1943,6 +1962,7 @@ files:
1943
1962
  - test/regression/xlsx_files/table23.xlsx
1944
1963
  - test/regression/xlsx_files/table24.xlsx
1945
1964
  - test/regression/xlsx_files/table25.xlsx
1965
+ - test/regression/xlsx_files/table26.xlsx
1946
1966
  - test/regression/xlsx_files/tutorial01.xlsx
1947
1967
  - test/regression/xlsx_files/tutorial02.xlsx
1948
1968
  - test/regression/xlsx_files/tutorial03.xlsx
@@ -2807,6 +2827,7 @@ test_files:
2807
2827
  - test/regression/test_header01.rb
2808
2828
  - test/regression/test_header02.rb
2809
2829
  - test/regression/test_header03.rb
2830
+ - test/regression/test_header04.rb
2810
2831
  - test/regression/test_header_image01.rb
2811
2832
  - test/regression/test_header_image02.rb
2812
2833
  - test/regression/test_header_image03.rb
@@ -2873,6 +2894,14 @@ test_files:
2873
2894
  - test/regression/test_hyperlink47.rb
2874
2895
  - test/regression/test_hyperlink48.rb
2875
2896
  - test/regression/test_hyperlink49.rb
2897
+ - test/regression/test_hyperlink50.rb
2898
+ - test/regression/test_hyperlink51.rb
2899
+ - test/regression/test_ignore_error01.rb
2900
+ - test/regression/test_ignore_error02.rb
2901
+ - test/regression/test_ignore_error03.rb
2902
+ - test/regression/test_ignore_error04.rb
2903
+ - test/regression/test_ignore_error05.rb
2904
+ - test/regression/test_ignore_error06.rb
2876
2905
  - test/regression/test_image01.rb
2877
2906
  - test/regression/test_image02.rb
2878
2907
  - test/regression/test_image03.rb
@@ -3078,6 +3107,7 @@ test_files:
3078
3107
  - test/regression/test_table23.rb
3079
3108
  - test/regression/test_table24.rb
3080
3109
  - test/regression/test_table25.rb
3110
+ - test/regression/test_table26.rb
3081
3111
  - test/regression/test_tutorial01.rb
3082
3112
  - test/regression/test_tutorial02.rb
3083
3113
  - test/regression/test_tutorial03.rb
@@ -3570,6 +3600,7 @@ test_files:
3570
3600
  - test/regression/xlsx_files/header01.xlsx
3571
3601
  - test/regression/xlsx_files/header02.xlsx
3572
3602
  - test/regression/xlsx_files/header03.xlsx
3603
+ - test/regression/xlsx_files/header04.xlsx
3573
3604
  - test/regression/xlsx_files/header_image01.xlsx
3574
3605
  - test/regression/xlsx_files/header_image02.xlsx
3575
3606
  - test/regression/xlsx_files/header_image03.xlsx
@@ -3638,6 +3669,14 @@ test_files:
3638
3669
  - test/regression/xlsx_files/hyperlink47.xlsx
3639
3670
  - test/regression/xlsx_files/hyperlink48.xlsx
3640
3671
  - test/regression/xlsx_files/hyperlink49.xlsx
3672
+ - test/regression/xlsx_files/hyperlink50.xlsx
3673
+ - test/regression/xlsx_files/hyperlink51.xlsx
3674
+ - test/regression/xlsx_files/ignore_error01.xlsx
3675
+ - test/regression/xlsx_files/ignore_error02.xlsx
3676
+ - test/regression/xlsx_files/ignore_error03.xlsx
3677
+ - test/regression/xlsx_files/ignore_error04.xlsx
3678
+ - test/regression/xlsx_files/ignore_error05.xlsx
3679
+ - test/regression/xlsx_files/ignore_error06.xlsx
3641
3680
  - test/regression/xlsx_files/image01.xlsx
3642
3681
  - test/regression/xlsx_files/image02.xlsx
3643
3682
  - test/regression/xlsx_files/image03.xlsx
@@ -3843,6 +3882,7 @@ test_files:
3843
3882
  - test/regression/xlsx_files/table23.xlsx
3844
3883
  - test/regression/xlsx_files/table24.xlsx
3845
3884
  - test/regression/xlsx_files/table25.xlsx
3885
+ - test/regression/xlsx_files/table26.xlsx
3846
3886
  - test/regression/xlsx_files/tutorial01.xlsx
3847
3887
  - test/regression/xlsx_files/tutorial02.xlsx
3848
3888
  - test/regression/xlsx_files/tutorial03.xlsx