write_xlsx 0.65.0 → 0.65.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +5 -0
  3. data/lib/write_xlsx/chart.rb +1 -1
  4. data/lib/write_xlsx/format.rb +93 -17
  5. data/lib/write_xlsx/package/comments.rb +1 -5
  6. data/lib/write_xlsx/package/styles.rb +2 -58
  7. data/lib/write_xlsx/version.rb +1 -1
  8. data/lib/write_xlsx/workbook.rb +1 -1
  9. data/lib/write_xlsx/worksheet.rb +20 -18
  10. data/lib/write_xlsx/worksheet/page_setup.rb +5 -0
  11. data/test/perl_output/protection.xlsx +0 -0
  12. data/test/regression/test_date_examples01.rb +48 -0
  13. data/test/regression/test_defined_name02.rb +32 -0
  14. data/test/regression/test_defined_name03.rb +32 -0
  15. data/test/regression/test_firstsheet01.rb +48 -0
  16. data/test/regression/test_hide01.rb +30 -0
  17. data/test/regression/test_image08.rb +26 -0
  18. data/test/regression/test_protect01.rb +28 -0
  19. data/test/regression/test_protect02.rb +30 -0
  20. data/test/regression/test_protect03.rb +30 -0
  21. data/test/regression/test_set_print_scale01.rb +36 -0
  22. data/test/regression/test_set_start_page01.rb +36 -0
  23. data/test/regression/test_simple03.rb +39 -0
  24. data/test/regression/test_simple04.rb +29 -0
  25. data/test/regression/test_simple05.rb +40 -0
  26. data/test/regression/test_tutorial01.rb +38 -0
  27. data/test/regression/test_tutorial02.rb +44 -0
  28. data/test/regression/test_tutorial03.rb +49 -0
  29. data/test/regression/xlsx_files/date_examples01.xlsx +0 -0
  30. data/test/regression/xlsx_files/defined_name02.xlsx +0 -0
  31. data/test/regression/xlsx_files/defined_name03.xlsx +0 -0
  32. data/test/regression/xlsx_files/firstsheet01.xlsx +0 -0
  33. data/test/regression/xlsx_files/hide01.xlsx +0 -0
  34. data/test/regression/xlsx_files/image08.xlsx +0 -0
  35. data/test/regression/xlsx_files/protect01.xlsx +0 -0
  36. data/test/regression/xlsx_files/protect02.xlsx +0 -0
  37. data/test/regression/xlsx_files/protect03.xlsx +0 -0
  38. data/test/regression/xlsx_files/set_print_scale01.xlsx +0 -0
  39. data/test/regression/xlsx_files/set_start_page01.xlsx +0 -0
  40. data/test/regression/xlsx_files/simple03.xlsx +0 -0
  41. data/test/regression/xlsx_files/simple04.xlsx +0 -0
  42. data/test/regression/xlsx_files/simple05.xlsx +0 -0
  43. data/test/regression/xlsx_files/tutorial01.xlsx +0 -0
  44. data/test/regression/xlsx_files/tutorial02.xlsx +0 -0
  45. data/test/regression/xlsx_files/tutorial03.xlsx +0 -0
  46. metadata +70 -2
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionDefinedName02 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_defined_name02
14
+ @xlsx = 'defined_name02.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet1 = workbook.add_worksheet('sheet One')
17
+
18
+ workbook.define_name("Sales", "='sheet One'!$G$1:$H$10")
19
+
20
+ workbook.close
21
+ compare_xlsx_for_regression(
22
+ File.join(@regression_output, @xlsx),
23
+ @xlsx,
24
+ ["xl/printerSettings/printerSettings1.bin",
25
+ "xl/worksheets/_rels/sheet1.xml.rels"],
26
+ {
27
+ '[Content_Types].xml' => ['<Default Extension="bin"'],
28
+ 'xl/worksheets/sheet1.xml' => ['<pageMargins', '<pageSetup']
29
+ }
30
+ )
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionDefinedName03 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_defined_name03
14
+ @xlsx = 'defined_name03.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet1 = workbook.add_worksheet('sheet One')
17
+
18
+ workbook.define_name("Sales", "='sheet One'!G1:H10")
19
+
20
+ workbook.close
21
+ compare_xlsx_for_regression(
22
+ File.join(@regression_output, @xlsx),
23
+ @xlsx,
24
+ ["xl/printerSettings/printerSettings1.bin",
25
+ "xl/worksheets/_rels/sheet1.xml.rels"],
26
+ {
27
+ '[Content_Types].xml' => ['<Default Extension="bin"'],
28
+ 'xl/worksheets/sheet1.xml' => ['<pageMargins', '<pageSetup']
29
+ }
30
+ )
31
+ end
32
+ end
@@ -0,0 +1,48 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionFirstsheet01 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_firstsheet01
14
+ @xlsx = 'firstsheet01.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet1 = workbook.add_worksheet
17
+ worksheet2 = workbook.add_worksheet
18
+ worksheet3 = workbook.add_worksheet
19
+ worksheet4 = workbook.add_worksheet
20
+ worksheet5 = workbook.add_worksheet
21
+ worksheet6 = workbook.add_worksheet
22
+ worksheet7 = workbook.add_worksheet
23
+ worksheet8 = workbook.add_worksheet
24
+ worksheet9 = workbook.add_worksheet
25
+ worksheet10 = workbook.add_worksheet
26
+ worksheet11 = workbook.add_worksheet
27
+ worksheet12 = workbook.add_worksheet
28
+ worksheet13 = workbook.add_worksheet
29
+ worksheet14 = workbook.add_worksheet
30
+ worksheet15 = workbook.add_worksheet
31
+ worksheet16 = workbook.add_worksheet
32
+ worksheet17 = workbook.add_worksheet
33
+ worksheet18 = workbook.add_worksheet
34
+ worksheet19 = workbook.add_worksheet
35
+ worksheet20 = workbook.add_worksheet
36
+
37
+ worksheet8.set_first_sheet
38
+ worksheet20.activate
39
+
40
+ workbook.close
41
+ compare_xlsx_for_regression(
42
+ File.join(@regression_output, @xlsx),
43
+ @xlsx,
44
+ [],
45
+ {}
46
+ )
47
+ end
48
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionHide01 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_hide01
14
+ @xlsx = 'hide01.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet1 = workbook.add_worksheet
17
+ worksheet2 = workbook.add_worksheet
18
+ worksheet3 = workbook.add_worksheet
19
+
20
+ worksheet2.hide
21
+
22
+ workbook.close
23
+ compare_xlsx_for_regression(
24
+ File.join(@regression_output, @xlsx),
25
+ @xlsx,
26
+ [],
27
+ {}
28
+ )
29
+ end
30
+ end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionImage08 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_image08
14
+ @xlsx = 'image08.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.insert_image('B3',
19
+ 'test/regression/images/grey.png',
20
+ 0, 0, 0.5, 0.5
21
+ )
22
+
23
+ workbook.close
24
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionProtect01 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_protect01
14
+ @xlsx = 'protect01.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ unlocked = workbook.add_format(:locked => 0, :hidden => 0)
19
+ hidden = workbook.add_format(:locked => 0, :hidden => 1)
20
+
21
+ worksheet.write('A1', 1)
22
+ worksheet.write('A2', 2, unlocked)
23
+ worksheet.write('A3', 3, hidden)
24
+
25
+ workbook.close
26
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionProtect02 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_protect02
14
+ @xlsx = 'protect02.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ unlocked = workbook.add_format(:locked => 0, :hidden => 0)
19
+ hidden = workbook.add_format(:locked => 0, :hidden => 1)
20
+
21
+ worksheet.protect
22
+
23
+ worksheet.write('A1', 1)
24
+ worksheet.write('A2', 2, unlocked)
25
+ worksheet.write('A3', 3, hidden)
26
+
27
+ workbook.close
28
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionProtect03 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_protect03
14
+ @xlsx = 'protect03.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ unlocked = workbook.add_format(:locked => 0, :hidden => 0)
19
+ hidden = workbook.add_format(:locked => 0, :hidden => 1)
20
+
21
+ worksheet.protect('password')
22
+
23
+ worksheet.write('A1', 1)
24
+ worksheet.write('A2', 2, unlocked)
25
+ worksheet.write('A3', 3, hidden)
26
+
27
+ workbook.close
28
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
29
+ end
30
+ end
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionSetPrintScale01 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_set_print_scale01
14
+ @xlsx = 'set_print_scale01.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.print_scale = 110
19
+ worksheet.paper = 9
20
+
21
+ worksheet.write('A1', 'Foo')
22
+
23
+ workbook.close
24
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,
25
+ [
26
+ 'xl/printerSettings/printerSettings1.bin',
27
+ 'xl/worksheets/_rels/sheet1.xml.rels'
28
+ ],
29
+ {
30
+ '[Content_Types].xml' => ['<Default Extension="bin"'],
31
+ 'xl/worksheets/sheet1.xml' => ['<pageMargins']
32
+
33
+ }
34
+ )
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionSetStartPage01 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_set_start_page01
14
+ @xlsx = 'set_start_page01.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.start_page = 1
19
+ worksheet.paper = 9
20
+
21
+ worksheet.write('A1', 'Foo')
22
+
23
+ workbook.close
24
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx,
25
+ [
26
+ 'xl/printerSettings/printerSettings1.bin',
27
+ 'xl/worksheets/_rels/sheet1.xml.rels'
28
+ ],
29
+ {
30
+ '[Content_Types].xml' => ['<Default Extension="bin"'],
31
+ 'xl/worksheets/sheet1.xml' => ['<pageMargins']
32
+
33
+ }
34
+ )
35
+ end
36
+ end
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionSimple03 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_simple03
14
+ @xlsx = 'simple03.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet1 = workbook.add_worksheet
17
+ worksheet2 = workbook.add_worksheet('Data Sheet')
18
+ worksheet3 = workbook.add_worksheet
19
+
20
+ bold = workbook.add_format(:bold => 1)
21
+
22
+ worksheet1.write('A1', 'Foo')
23
+ worksheet1.write('A2', 123)
24
+
25
+ worksheet3.write('B2', 'Foo')
26
+ worksheet3.write('B3', 'Bar', bold)
27
+ worksheet3.write('C4', 234)
28
+
29
+ # This should be overridden by the worksheet3 call below.
30
+ worksheet2.activate
31
+
32
+ worksheet2.select
33
+ worksheet3.select
34
+ worksheet3.activate
35
+
36
+ workbook.close
37
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
38
+ end
39
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionSimple04 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_simple04
14
+ @xlsx = 'simple04.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_column(0, 0, 12)
19
+
20
+ format1 = workbook.add_format(:num_format => 20)
21
+ format2 = workbook.add_format(:num_format => 14)
22
+
23
+ worksheet.write_date_time(0, 0, 'T12:00', format1)
24
+ worksheet.write_date_time(1, 0, '2013-01-27T', format2)
25
+
26
+ workbook.close
27
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
28
+ end
29
+ end
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionSimple05 < Test::Unit::TestCase
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ File.delete(@xlsx) if File.exist?(@xlsx)
11
+ end
12
+
13
+ def test_simple05
14
+ @xlsx = 'simple05.xlsx'
15
+ workbook = WriteXLSX.new(@xlsx)
16
+ worksheet = workbook.add_worksheet
17
+
18
+ worksheet.set_row(5, 18)
19
+ worksheet.set_row(6, 18)
20
+
21
+ format1 = workbook.add_format(:bold => 1)
22
+ format2 = workbook.add_format(:italic => 1)
23
+ format3 = workbook.add_format(:bold => 1, :italic => 1)
24
+ format4 = workbook.add_format(:underline => 1)
25
+ format5 = workbook.add_format(:font_strikeout => 1)
26
+ format6 = workbook.add_format(:font_script => 1)
27
+ format7 = workbook.add_format(:font_script => 2)
28
+
29
+ worksheet.write_string(0, 0, 'Foo', format1)
30
+ worksheet.write_string(1, 0, 'Foo', format2)
31
+ worksheet.write_string(2, 0, 'Foo', format3)
32
+ worksheet.write_string(3, 0, 'Foo', format4)
33
+ worksheet.write_string(4, 0, 'Foo', format5)
34
+ worksheet.write_string(5, 0, 'Foo', format6)
35
+ worksheet.write_string(6, 0, 'Foo', format7)
36
+
37
+ workbook.close
38
+ compare_xlsx_for_regression(File.join(@regression_output, @xlsx), @xlsx)
39
+ end
40
+ end