write_xlsx 1.02.0 → 1.08.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/Changes +72 -0
- data/README.md +1 -1
- data/examples/chart_data_labels.rb +320 -0
- data/examples/chart_line.rb +85 -10
- data/examples/tables.rb +77 -42
- data/lib/write_xlsx/chart/line.rb +15 -1
- data/lib/write_xlsx/chart/series.rb +100 -0
- data/lib/write_xlsx/chart.rb +155 -33
- data/lib/write_xlsx/drawing.rb +80 -17
- data/lib/write_xlsx/format.rb +5 -5
- data/lib/write_xlsx/package/app.rb +3 -3
- data/lib/write_xlsx/package/comments.rb +4 -4
- data/lib/write_xlsx/package/conditional_format.rb +2 -8
- data/lib/write_xlsx/package/packager.rb +1 -0
- data/lib/write_xlsx/package/relationships.rb +2 -2
- data/lib/write_xlsx/package/styles.rb +42 -11
- data/lib/write_xlsx/package/table.rb +16 -7
- data/lib/write_xlsx/package/vml.rb +20 -19
- data/lib/write_xlsx/sheets.rb +12 -20
- data/lib/write_xlsx/utility.rb +9 -3
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/workbook.rb +76 -35
- data/lib/write_xlsx/worksheet/data_validation.rb +1 -6
- data/lib/write_xlsx/worksheet.rb +197 -57
- data/test/drawing/{test_write_ext.rb → test_write_xdr_ext.rb} +2 -2
- data/test/perl_output/chart_data_labels.xlsx +0 -0
- data/test/perl_output/chart_line.xlsx +0 -0
- data/test/perl_output/comments2.xlsx +0 -0
- data/test/perl_output/tables.xlsx +0 -0
- data/test/regression/images/red2.png +0 -0
- data/test/regression/test_array_formula04.rb +31 -0
- data/test/regression/test_chart_crossing01.rb +1 -1
- data/test/regression/test_chart_crossing05.rb +46 -0
- data/test/regression/test_chart_crossing06.rb +46 -0
- data/test/regression/test_chart_data_labels26.rb +44 -0
- data/test/regression/test_chart_data_labels27.rb +44 -0
- data/test/regression/test_chart_data_labels28.rb +52 -0
- data/test/regression/test_chart_data_labels29.rb +43 -0
- data/test/regression/test_chart_data_labels30.rb +46 -0
- data/test/regression/test_chart_data_labels31.rb +49 -0
- data/test/regression/test_chart_data_labels32.rb +54 -0
- data/test/regression/test_chart_data_labels33.rb +52 -0
- data/test/regression/test_chart_data_labels34.rb +54 -0
- data/test/regression/test_chart_data_labels35.rb +46 -0
- data/test/regression/test_chart_data_labels36.rb +54 -0
- data/test/regression/test_chart_data_labels37.rb +51 -0
- data/test/regression/test_chart_data_labels38.rb +54 -0
- data/test/regression/test_chart_data_labels39.rb +53 -0
- data/test/regression/test_chart_data_labels40.rb +53 -0
- data/test/regression/test_chart_data_labels41.rb +54 -0
- data/test/regression/test_chart_data_labels42.rb +58 -0
- data/test/regression/test_chart_data_labels43.rb +58 -0
- data/test/regression/test_chart_data_labels44.rb +56 -0
- data/test/regression/test_chart_data_labels45.rb +57 -0
- data/test/regression/test_chart_data_labels46.rb +61 -0
- data/test/regression/test_chart_data_labels47.rb +61 -0
- data/test/regression/test_chart_data_labels48.rb +55 -0
- data/test/regression/test_chart_data_labels49.rb +55 -0
- data/test/regression/test_chart_data_labels50.rb +57 -0
- data/test/regression/test_chart_line05.rb +43 -0
- data/test/regression/test_chart_line06.rb +43 -0
- data/test/regression/test_comment15.rb +28 -0
- data/test/regression/test_comment16.rb +34 -0
- data/test/regression/test_format16.rb +24 -0
- data/test/regression/test_format17.rb +24 -0
- data/test/regression/test_header04.rb +30 -0
- data/test/regression/test_header_image15.rb +36 -0
- data/test/regression/test_header_image16.rb +42 -0
- data/test/regression/test_header_image17.rb +46 -0
- data/test/regression/test_header_image18.rb +48 -0
- data/test/regression/test_header_image19.rb +36 -0
- data/test/regression/test_hyperlink48.rb +31 -0
- data/test/regression/test_hyperlink49.rb +29 -0
- data/test/regression/test_hyperlink50.rb +27 -0
- data/test/regression/test_hyperlink51.rb +27 -0
- data/test/regression/test_ignore_error01.rb +23 -0
- data/test/regression/test_ignore_error02.rb +24 -0
- data/test/regression/test_ignore_error03.rb +26 -0
- data/test/regression/test_ignore_error04.rb +26 -0
- data/test/regression/test_ignore_error05.rb +32 -0
- data/test/regression/test_ignore_error06.rb +32 -0
- data/test/regression/test_image45.rb +2 -1
- data/test/regression/test_image46.rb +1 -1
- data/test/regression/test_image48.rb +32 -0
- data/test/regression/test_image49.rb +38 -0
- data/test/regression/test_image50.rb +24 -0
- data/test/regression/test_image51.rb +30 -0
- data/test/regression/test_image52.rb +26 -0
- data/test/regression/test_image53.rb +26 -0
- data/test/regression/test_image54.rb +26 -0
- data/test/regression/test_image55.rb +27 -0
- data/test/regression/test_object_position12.rb +25 -0
- data/test/regression/test_object_position13.rb +25 -0
- data/test/regression/test_object_position14.rb +25 -0
- data/test/regression/test_object_position15.rb +29 -0
- data/test/regression/test_object_position16.rb +29 -0
- data/test/regression/test_object_position17.rb +29 -0
- data/test/regression/test_object_position18.rb +29 -0
- data/test/regression/test_object_position19.rb +29 -0
- data/test/regression/test_object_position20.rb +29 -0
- data/test/regression/test_protect04.rb +32 -0
- data/test/regression/test_protect05.rb +35 -0
- data/test/regression/test_protect06.rb +35 -0
- data/test/regression/test_protect07.rb +23 -0
- data/test/regression/test_table24.rb +27 -0
- data/test/regression/test_table25.rb +27 -0
- data/test/regression/test_table26.rb +38 -0
- data/test/regression/xlsx_files/array_formula04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels26.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels27.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels28.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels29.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels30.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels31.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels32.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels33.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels34.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels35.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels36.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels37.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels38.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels39.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels40.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels41.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels42.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels43.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels44.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels45.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels46.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels47.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels48.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels49.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels50.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line06.xlsx +0 -0
- data/test/regression/xlsx_files/comment15.xlsx +0 -0
- data/test/regression/xlsx_files/comment16.xlsx +0 -0
- data/test/regression/xlsx_files/format16.xlsx +0 -0
- data/test/regression/xlsx_files/format17.xlsx +0 -0
- data/test/regression/xlsx_files/header04.xlsx +0 -0
- data/test/regression/xlsx_files/header_image15.xlsx +0 -0
- data/test/regression/xlsx_files/header_image16.xlsx +0 -0
- data/test/regression/xlsx_files/header_image17.xlsx +0 -0
- data/test/regression/xlsx_files/header_image18.xlsx +0 -0
- data/test/regression/xlsx_files/header_image19.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink46.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink50.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink51.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error01.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error02.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error03.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error04.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error05.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error06.xlsx +0 -0
- data/test/regression/xlsx_files/image45.xlsx +0 -0
- data/test/regression/xlsx_files/image46.xlsx +0 -0
- data/test/regression/xlsx_files/image48.xlsx +0 -0
- data/test/regression/xlsx_files/image49.xlsx +0 -0
- data/test/regression/xlsx_files/image50.xlsx +0 -0
- data/test/regression/xlsx_files/image51.xlsx +0 -0
- data/test/regression/xlsx_files/image52.xlsx +0 -0
- data/test/regression/xlsx_files/image53.xlsx +0 -0
- data/test/regression/xlsx_files/image54.xlsx +0 -0
- data/test/regression/xlsx_files/image55.xlsx +0 -0
- data/test/regression/xlsx_files/object_position12.xlsx +0 -0
- data/test/regression/xlsx_files/object_position13.xlsx +0 -0
- data/test/regression/xlsx_files/object_position14.xlsx +0 -0
- data/test/regression/xlsx_files/object_position15.xlsx +0 -0
- data/test/regression/xlsx_files/object_position16.xlsx +0 -0
- data/test/regression/xlsx_files/object_position17.xlsx +0 -0
- data/test/regression/xlsx_files/object_position18.xlsx +0 -0
- data/test/regression/xlsx_files/object_position19.xlsx +0 -0
- data/test/regression/xlsx_files/object_position20.xlsx +0 -0
- data/test/regression/xlsx_files/protect04.xlsx +0 -0
- data/test/regression/xlsx_files/protect05.xlsx +0 -0
- data/test/regression/xlsx_files/protect06.xlsx +0 -0
- data/test/regression/xlsx_files/protect07.xlsx +0 -0
- data/test/regression/xlsx_files/table24.xlsx +0 -0
- data/test/regression/xlsx_files/table25.xlsx +0 -0
- data/test/regression/xlsx_files/table26.xlsx +0 -0
- data/test/test_example_match.rb +433 -10
- data/test/utility/test_range.rb +20 -0
- data/test/workbook/test_check_sheetname.rb +0 -10
- data/write_xlsx.gemspec +1 -0
- metadata +323 -8
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionChartLine06 < 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_chart_line06
|
|
14
|
+
@xlsx = 'chart_line06.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
chart = workbook.add_chart(
|
|
18
|
+
:type => 'line',
|
|
19
|
+
:subtype => 'percent_stacked',
|
|
20
|
+
:embedded => 1
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
# For testing, copy the randomly generated axis ids in the target xlsx file.
|
|
24
|
+
chart.instance_variable_set(:@axis_ids, [108321408, 108634112])
|
|
25
|
+
|
|
26
|
+
data = [
|
|
27
|
+
[1, 2, 3, 4, 5],
|
|
28
|
+
[2, 4, 6, 8, 10],
|
|
29
|
+
[3, 6, 9, 12, 15]
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
worksheet.write('A1', data)
|
|
33
|
+
|
|
34
|
+
chart.add_series(:values => '=Sheet1!$A$1:$A$5')
|
|
35
|
+
chart.add_series(:values => '=Sheet1!$B$1:$B$5')
|
|
36
|
+
chart.add_series(:values => '=Sheet1!$C$1:$C$5')
|
|
37
|
+
|
|
38
|
+
worksheet.insert_chart('E9', chart)
|
|
39
|
+
|
|
40
|
+
workbook.close
|
|
41
|
+
compare_for_regression
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionComment15 < 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_comment15
|
|
14
|
+
@xlsx = 'comment15.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
format1 = workbook.add_format(:bold => 1)
|
|
18
|
+
|
|
19
|
+
worksheet.write('A1', 'Foo', format1)
|
|
20
|
+
worksheet.write_comment('B2', 'Some text')
|
|
21
|
+
|
|
22
|
+
# Set the author to match the target XLSX file.
|
|
23
|
+
worksheet.comments_author = 'John'
|
|
24
|
+
|
|
25
|
+
workbook.close
|
|
26
|
+
compare_for_regression
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionComment16 < 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_comment16
|
|
14
|
+
@xlsx = 'comment16.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
|
|
18
|
+
worksheet.write('A1', 'Foo')
|
|
19
|
+
worksheet.write('C7', 'Bar')
|
|
20
|
+
worksheet.write('G14', 'Baz')
|
|
21
|
+
|
|
22
|
+
worksheet.write_comment('A1', 'Some text')
|
|
23
|
+
worksheet.write_comment('D1', 'Some text')
|
|
24
|
+
worksheet.write_comment('C7', 'Some text')
|
|
25
|
+
worksheet.write_comment('E10', 'Some text')
|
|
26
|
+
worksheet.write_comment('G14', 'Some text')
|
|
27
|
+
|
|
28
|
+
# Set the author to match the target XLSX file.
|
|
29
|
+
worksheet.comments_author = 'John'
|
|
30
|
+
|
|
31
|
+
workbook.close
|
|
32
|
+
compare_for_regression
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionFormat16 < 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_format16
|
|
14
|
+
@xlsx = 'format16.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
pattern = workbook.add_format(:pattern => 2)
|
|
18
|
+
|
|
19
|
+
worksheet.write('A1', '', pattern)
|
|
20
|
+
|
|
21
|
+
workbook.close
|
|
22
|
+
compare_for_regression
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionFormat17 < 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_format17
|
|
14
|
+
@xlsx = 'format17.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
pattern = workbook.add_format(:pattern => 2, :fg_color => 'red')
|
|
18
|
+
|
|
19
|
+
worksheet.write('A1', '', pattern)
|
|
20
|
+
|
|
21
|
+
workbook.close
|
|
22
|
+
compare_for_regression
|
|
23
|
+
end
|
|
24
|
+
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,36 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHeaderImage15 < 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_header_image15
|
|
14
|
+
@xlsx = 'header_image15.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet1 = workbook.add_worksheet
|
|
17
|
+
worksheet2 = workbook.add_worksheet
|
|
18
|
+
|
|
19
|
+
worksheet1.set_header(
|
|
20
|
+
'&L&G', nil, {:image_left => 'test/regression/images/red.jpg'}
|
|
21
|
+
)
|
|
22
|
+
worksheet2.set_header(
|
|
23
|
+
'&L&G', nil, {:image_left => 'test/regression/images/red.jpg'}
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
workbook.close
|
|
28
|
+
compare_for_regression(
|
|
29
|
+
[],
|
|
30
|
+
{
|
|
31
|
+
'xl/worksheets/sheet1.xml' => [ '<pageMargins', '<pageSetup' ],
|
|
32
|
+
'xl/worksheets/sheet2.xml' => [ '<pageMargins', '<pageSetup' ]
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHeaderImage16 < 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_header_image16
|
|
14
|
+
@xlsx = 'header_image16.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet1 = workbook.add_worksheet
|
|
17
|
+
worksheet2 = workbook.add_worksheet
|
|
18
|
+
|
|
19
|
+
worksheet1.set_header(
|
|
20
|
+
'&L&G', nil, {:image_left => 'test/regression/images/red.jpg'}
|
|
21
|
+
)
|
|
22
|
+
worksheet2.set_header(
|
|
23
|
+
'&L&G', nil, {:image_left => 'test/regression/images/red.jpg'}
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
worksheet1.set_footer(
|
|
27
|
+
'&R&G', nil, {:image_right => 'test/regression/images/red.jpg'}
|
|
28
|
+
)
|
|
29
|
+
worksheet2.set_footer(
|
|
30
|
+
'&R&G', nil, {:image_right => 'test/regression/images/red.jpg'}
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
workbook.close
|
|
34
|
+
compare_for_regression(
|
|
35
|
+
[],
|
|
36
|
+
{
|
|
37
|
+
'xl/worksheets/sheet1.xml' => [ '<pageMargins', '<pageSetup' ],
|
|
38
|
+
'xl/worksheets/sheet2.xml' => [ '<pageMargins', '<pageSetup' ]
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHeaderImage17 < 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_header_image17
|
|
14
|
+
@xlsx = 'header_image17.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
|
|
18
|
+
worksheet.set_header(
|
|
19
|
+
'&L&G&C&G&R&G',
|
|
20
|
+
nil,
|
|
21
|
+
{
|
|
22
|
+
:image_left => 'test/regression/images/red.jpg',
|
|
23
|
+
:image_center => 'test/regression/images/blue.jpg',
|
|
24
|
+
:image_right => 'test/regression/images/red.jpg'
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
worksheet.set_footer(
|
|
29
|
+
'&L&G&C&G&R&G',
|
|
30
|
+
nil,
|
|
31
|
+
{
|
|
32
|
+
:image_left => 'test/regression/images/blue.jpg',
|
|
33
|
+
:image_center => 'test/regression/images/red.jpg',
|
|
34
|
+
:image_right => 'test/regression/images/blue.jpg'
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
workbook.close
|
|
39
|
+
compare_for_regression(
|
|
40
|
+
[],
|
|
41
|
+
{
|
|
42
|
+
'xl/worksheets/sheet1.xml' => [ '<pageMargins', '<pageSetup' ]
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHeaderImage18 < 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_header_image18
|
|
14
|
+
@xlsx = 'header_image18.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
|
|
18
|
+
worksheet.insert_image('E9', 'test/regression/images/red.png')
|
|
19
|
+
|
|
20
|
+
worksheet.set_header(
|
|
21
|
+
'&L&G&C&G&R&G',
|
|
22
|
+
nil,
|
|
23
|
+
{
|
|
24
|
+
:image_left => 'test/regression/images/red.jpg',
|
|
25
|
+
:image_center => 'test/regression/images/blue.jpg',
|
|
26
|
+
:image_right => 'test/regression/images/red.jpg'
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
worksheet.set_footer(
|
|
31
|
+
'&L&G&C&G&R&G',
|
|
32
|
+
nil,
|
|
33
|
+
{
|
|
34
|
+
:image_left => 'test/regression/images/blue.jpg',
|
|
35
|
+
:image_center => 'test/regression/images/red.jpg',
|
|
36
|
+
:image_right => 'test/regression/images/blue.jpg'
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
workbook.close
|
|
41
|
+
compare_for_regression(
|
|
42
|
+
[],
|
|
43
|
+
{
|
|
44
|
+
'xl/worksheets/sheet1.xml' => [ '<pageMargins', '<pageSetup' ]
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHeaderImage19 < 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_header_image19
|
|
14
|
+
@xlsx = 'header_image19.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
|
|
18
|
+
worksheet.insert_image('E9', 'test/regression/images/red.jpg')
|
|
19
|
+
|
|
20
|
+
worksheet.set_header(
|
|
21
|
+
'&L&G',
|
|
22
|
+
nil,
|
|
23
|
+
{
|
|
24
|
+
:image_left => 'test/regression/images/red.jpg'
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
workbook.close
|
|
29
|
+
compare_for_regression(
|
|
30
|
+
[],
|
|
31
|
+
{
|
|
32
|
+
'xl/worksheets/sheet1.xml' => [ '<pageMargins', '<pageSetup' ]
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHyperlink48 < 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_hyperlink48
|
|
14
|
+
@xlsx = 'hyperlink48.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 => 'https://github.com/jmcnamara'
|
|
21
|
+
)
|
|
22
|
+
worksheet.insert_image(
|
|
23
|
+
'E13', 'test/regression/images/red.png',
|
|
24
|
+
:url => 'https://github.com/jmcnamara'
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
workbook.close
|
|
28
|
+
|
|
29
|
+
compare_for_regression
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
|
|
4
|
+
class TestRegressionHyperlink49 < 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_hyperlink49
|
|
14
|
+
@xlsx = 'hyperlink49.xlsx'
|
|
15
|
+
workbook = WriteXLSX.new(@io)
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
|
|
18
|
+
worksheet.write_url('A1', 'https://github.com/jmcnamara')
|
|
19
|
+
|
|
20
|
+
worksheet.insert_image(
|
|
21
|
+
'E9', 'test/regression/images/red.png',
|
|
22
|
+
:url => 'https://github.com/jmcnamara'
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
workbook.close
|
|
26
|
+
|
|
27
|
+
compare_for_regression
|
|
28
|
+
end
|
|
29
|
+
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
|