write_xlsx 1.02.0 → 1.04.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/Changes +22 -0
  3. data/README.md +1 -1
  4. data/examples/chart_line.rb +85 -10
  5. data/examples/tables.rb +77 -42
  6. data/lib/write_xlsx/chart/line.rb +15 -1
  7. data/lib/write_xlsx/format.rb +5 -5
  8. data/lib/write_xlsx/package/comments.rb +4 -4
  9. data/lib/write_xlsx/package/relationships.rb +2 -2
  10. data/lib/write_xlsx/package/styles.rb +26 -8
  11. data/lib/write_xlsx/package/table.rb +8 -7
  12. data/lib/write_xlsx/package/vml.rb +20 -19
  13. data/lib/write_xlsx/sheets.rb +12 -20
  14. data/lib/write_xlsx/version.rb +1 -1
  15. data/lib/write_xlsx/workbook.rb +53 -35
  16. data/lib/write_xlsx/worksheet.rb +37 -20
  17. data/test/perl_output/chart_line.xlsx +0 -0
  18. data/test/perl_output/comments2.xlsx +0 -0
  19. data/test/perl_output/tables.xlsx +0 -0
  20. data/test/regression/images/red2.png +0 -0
  21. data/test/regression/test_chart_line05.rb +43 -0
  22. data/test/regression/test_chart_line06.rb +43 -0
  23. data/test/regression/test_comment15.rb +28 -0
  24. data/test/regression/test_comment16.rb +34 -0
  25. data/test/regression/test_header_image15.rb +36 -0
  26. data/test/regression/test_header_image16.rb +42 -0
  27. data/test/regression/test_header_image17.rb +46 -0
  28. data/test/regression/test_header_image18.rb +48 -0
  29. data/test/regression/test_header_image19.rb +36 -0
  30. data/test/regression/test_hyperlink48.rb +31 -0
  31. data/test/regression/test_hyperlink49.rb +29 -0
  32. data/test/regression/test_image45.rb +2 -1
  33. data/test/regression/test_image46.rb +1 -1
  34. data/test/regression/test_image48.rb +32 -0
  35. data/test/regression/test_image49.rb +38 -0
  36. data/test/regression/test_image50.rb +24 -0
  37. data/test/regression/test_image51.rb +30 -0
  38. data/test/regression/test_object_position12.rb +25 -0
  39. data/test/regression/test_object_position13.rb +25 -0
  40. data/test/regression/test_object_position14.rb +25 -0
  41. data/test/regression/test_object_position15.rb +29 -0
  42. data/test/regression/test_object_position16.rb +29 -0
  43. data/test/regression/test_object_position17.rb +29 -0
  44. data/test/regression/test_object_position18.rb +29 -0
  45. data/test/regression/test_object_position19.rb +29 -0
  46. data/test/regression/test_object_position20.rb +29 -0
  47. data/test/regression/test_table24.rb +27 -0
  48. data/test/regression/test_table25.rb +27 -0
  49. data/test/regression/xlsx_files/chart_line05.xlsx +0 -0
  50. data/test/regression/xlsx_files/chart_line06.xlsx +0 -0
  51. data/test/regression/xlsx_files/comment15.xlsx +0 -0
  52. data/test/regression/xlsx_files/comment16.xlsx +0 -0
  53. data/test/regression/xlsx_files/header_image15.xlsx +0 -0
  54. data/test/regression/xlsx_files/header_image16.xlsx +0 -0
  55. data/test/regression/xlsx_files/header_image17.xlsx +0 -0
  56. data/test/regression/xlsx_files/header_image18.xlsx +0 -0
  57. data/test/regression/xlsx_files/header_image19.xlsx +0 -0
  58. data/test/regression/xlsx_files/hyperlink46.xlsx +0 -0
  59. data/test/regression/xlsx_files/image45.xlsx +0 -0
  60. data/test/regression/xlsx_files/image46.xlsx +0 -0
  61. data/test/regression/xlsx_files/image48.xlsx +0 -0
  62. data/test/regression/xlsx_files/image49.xlsx +0 -0
  63. data/test/regression/xlsx_files/image50.xlsx +0 -0
  64. data/test/regression/xlsx_files/image51.xlsx +0 -0
  65. data/test/regression/xlsx_files/object_position12.xlsx +0 -0
  66. data/test/regression/xlsx_files/object_position13.xlsx +0 -0
  67. data/test/regression/xlsx_files/object_position14.xlsx +0 -0
  68. data/test/regression/xlsx_files/object_position15.xlsx +0 -0
  69. data/test/regression/xlsx_files/object_position16.xlsx +0 -0
  70. data/test/regression/xlsx_files/object_position17.xlsx +0 -0
  71. data/test/regression/xlsx_files/object_position18.xlsx +0 -0
  72. data/test/regression/xlsx_files/object_position19.xlsx +0 -0
  73. data/test/regression/xlsx_files/object_position20.xlsx +0 -0
  74. data/test/regression/xlsx_files/table24.xlsx +0 -0
  75. data/test/regression/xlsx_files/table25.xlsx +0 -0
  76. data/test/test_example_match.rb +119 -9
  77. data/test/workbook/test_check_sheetname.rb +0 -10
  78. data/write_xlsx.gemspec +1 -0
  79. metadata +120 -2
@@ -18,7 +18,7 @@ def test_image46
18
18
  worksheet.insert_image(
19
19
  'E9',
20
20
  File.join(@test_dir, 'regression', 'images/red.png'),
21
- 0, 4
21
+ :object_position => 4, :y_offset => 4
22
22
  )
23
23
 
24
24
  worksheet.set_row(8, 30, nil, 1)
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionImage48 < 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_image48
14
+ @xlsx = 'image48.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet1 = workbook.add_worksheet
17
+ worksheet2 = workbook.add_worksheet
18
+
19
+ worksheet1.insert_image(
20
+ 'E9',
21
+ File.join(@test_dir, 'regression', 'images/red.png')
22
+ )
23
+
24
+ worksheet2.insert_image(
25
+ 'E9',
26
+ File.join(@test_dir, 'regression', 'images/red.png')
27
+ )
28
+
29
+ workbook.close
30
+ compare_for_regression
31
+ end
32
+ end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionImage49 < 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_image49
14
+ @xlsx = 'image49.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet1 = workbook.add_worksheet
17
+ worksheet2 = workbook.add_worksheet
18
+ worksheet3 = workbook.add_worksheet
19
+
20
+ worksheet1.insert_image('A1', 'test/regression/images/blue.png')
21
+ worksheet1.insert_image('B3', 'test/regression/images/red.jpg')
22
+ worksheet1.insert_image('D5', 'test/regression/images/yellow.jpg')
23
+ worksheet1.insert_image('F9', 'test/regression/images/grey.png')
24
+
25
+ worksheet2.insert_image('A1', 'test/regression/images/blue.png')
26
+ worksheet2.insert_image('B3', 'test/regression/images/red.jpg')
27
+ worksheet2.insert_image('D5', 'test/regression/images/yellow.jpg')
28
+ worksheet2.insert_image('F9', 'test/regression/images/grey.png')
29
+
30
+ worksheet3.insert_image('A1', 'test/regression/images/blue.png')
31
+ worksheet3.insert_image('B3', 'test/regression/images/red.jpg')
32
+ worksheet3.insert_image('D5', 'test/regression/images/yellow.jpg')
33
+ worksheet3.insert_image('F9', 'test/regression/images/grey.png')
34
+
35
+ workbook.close
36
+ compare_for_regression
37
+ end
38
+ end
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionImage50 < 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_image50
14
+ @xlsx = 'image50.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.insert_image('E9', 'test/regression/images/red.png')
19
+ worksheet.insert_image('E13', 'test/regression/images/red.png')
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 TestRegressionImage51 < 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_image51
14
+ @xlsx = 'image51.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://duckduckgo.com/?q=1'
21
+ )
22
+ worksheet.insert_image(
23
+ 'E13', 'test/regression/images/red2.png',
24
+ :url => 'https://duckduckgo.com/?q=2'
25
+ )
26
+
27
+ workbook.close
28
+ compare_for_regression
29
+ end
30
+ end
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition12 < 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_object_position12
14
+ @xlsx = 'object_position12.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, 5, nil)
19
+
20
+ worksheet.insert_image('E9', 'test/regression/images/red.png')
21
+
22
+ workbook.close
23
+ compare_for_regression
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition13 < 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_object_position13
14
+ @xlsx = 'object_position13.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, nil, nil, 1)
19
+
20
+ worksheet.insert_image('E9', 'test/regression/images/red.png')
21
+
22
+ workbook.close
23
+ compare_for_regression
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition14 < 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_object_position14
14
+ @xlsx = 'object_position14.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, 5, nil, 1)
19
+
20
+ worksheet.insert_image('E9', 'test/regression/images/red.png')
21
+
22
+ workbook.close
23
+ compare_for_regression
24
+ end
25
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition15 < 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_object_position15
14
+ @xlsx = 'object_position15.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, 5, nil)
19
+
20
+ # Same as testcase test_object_position12 except with an offset.
21
+ worksheet.insert_image(
22
+ 'A9', 'test/regression/images/red.png',
23
+ :x_offset => 232
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition16 < 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_object_position16
14
+ @xlsx = 'object_position16.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, nil, nil, 1)
19
+
20
+ # Same as testcase test_object_position13 except with an offset.
21
+ worksheet.insert_image(
22
+ 'A9', 'test/regression/images/red.png',
23
+ :x_offset => 192
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition17 < 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_object_position17
14
+ @xlsx = 'object_position17.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, 5, nil, 1)
19
+
20
+ # Same as testcase test_object_position14 except with an offset.
21
+ worksheet.insert_image(
22
+ 'A9', 'test/regression/images/red.png',
23
+ :x_offset => 192
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition18 < 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_object_position18
14
+ @xlsx = 'object_position18.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, 5, nil)
19
+
20
+ # Same as testcase test_object_position12 except with an offset.
21
+ worksheet.insert_image(
22
+ 'B9', 'test/regression/images/red.png',
23
+ :x_offset => 168
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition19 < 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_object_position19
14
+ @xlsx = 'object_position19.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, nil, nil, 1)
19
+
20
+ # Same as testcase test_object_position13 except with an offset.
21
+ worksheet.insert_image(
22
+ 'B9', 'test/regression/images/red.png',
23
+ :x_offset => 128
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionObjectPosition20 < 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_object_position20
14
+ @xlsx = 'object_position20.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(1, 1, 5, nil, 1)
19
+
20
+ # Same as testcase test_object_position14 except with an offset.
21
+ worksheet.insert_image(
22
+ 'B9', 'test/regression/images/red.png',
23
+ :x_offset => 128
24
+ )
25
+
26
+ workbook.close
27
+ compare_for_regression
28
+ end
29
+ end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionTable24 < 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_table24
14
+ @xlsx = 'table24.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:F', 10.288)
20
+
21
+ # Add the table.
22
+ worksheet.add_table('C3:F13', {:style => 'Table Style Medium 10'})
23
+
24
+ workbook.close
25
+ compare_for_regression
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionTable25 < 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_table25
14
+ @xlsx = 'table25.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:F', 10.288)
20
+
21
+ # Add the table.
22
+ worksheet.add_table('C3:F13', {:style => 'None'})
23
+
24
+ workbook.close
25
+ compare_for_regression
26
+ end
27
+ end