xlsxwriter 0.0.2

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 (112) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +40 -0
  3. data/ext/xlsxwriter/chart.c +105 -0
  4. data/ext/xlsxwriter/chart.h +27 -0
  5. data/ext/xlsxwriter/extconf.rb +14 -0
  6. data/ext/xlsxwriter/format.c +67 -0
  7. data/ext/xlsxwriter/format.h +9 -0
  8. data/ext/xlsxwriter/libxlsxwriter/LICENSE.txt +89 -0
  9. data/ext/xlsxwriter/libxlsxwriter/Makefile +141 -0
  10. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter.h +23 -0
  11. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/app.h +79 -0
  12. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/chart.h +1093 -0
  13. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/common.h +336 -0
  14. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/content_types.h +74 -0
  15. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/core.h +51 -0
  16. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/custom.h +52 -0
  17. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/drawing.h +111 -0
  18. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/format.h +1214 -0
  19. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/hash_table.h +76 -0
  20. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/packager.h +80 -0
  21. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/relationships.h +77 -0
  22. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/shared_strings.h +83 -0
  23. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/styles.h +77 -0
  24. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/theme.h +47 -0
  25. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +215 -0
  26. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/third_party/queue.h +694 -0
  27. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/third_party/tmpfileplus.h +53 -0
  28. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/third_party/tree.h +801 -0
  29. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/third_party/zip.h +375 -0
  30. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/utility.h +166 -0
  31. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/workbook.h +751 -0
  32. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/worksheet.h +2641 -0
  33. data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/xmlwriter.h +178 -0
  34. data/ext/xlsxwriter/libxlsxwriter/lib/.gitignore +0 -0
  35. data/ext/xlsxwriter/libxlsxwriter/src/Makefile +125 -0
  36. data/ext/xlsxwriter/libxlsxwriter/src/app.c +439 -0
  37. data/ext/xlsxwriter/libxlsxwriter/src/chart.c +3420 -0
  38. data/ext/xlsxwriter/libxlsxwriter/src/content_types.c +341 -0
  39. data/ext/xlsxwriter/libxlsxwriter/src/core.c +293 -0
  40. data/ext/xlsxwriter/libxlsxwriter/src/custom.c +224 -0
  41. data/ext/xlsxwriter/libxlsxwriter/src/drawing.c +746 -0
  42. data/ext/xlsxwriter/libxlsxwriter/src/format.c +728 -0
  43. data/ext/xlsxwriter/libxlsxwriter/src/hash_table.c +223 -0
  44. data/ext/xlsxwriter/libxlsxwriter/src/packager.c +877 -0
  45. data/ext/xlsxwriter/libxlsxwriter/src/relationships.c +242 -0
  46. data/ext/xlsxwriter/libxlsxwriter/src/shared_strings.c +264 -0
  47. data/ext/xlsxwriter/libxlsxwriter/src/styles.c +1086 -0
  48. data/ext/xlsxwriter/libxlsxwriter/src/theme.c +348 -0
  49. data/ext/xlsxwriter/libxlsxwriter/src/utility.c +512 -0
  50. data/ext/xlsxwriter/libxlsxwriter/src/workbook.c +1895 -0
  51. data/ext/xlsxwriter/libxlsxwriter/src/worksheet.c +4992 -0
  52. data/ext/xlsxwriter/libxlsxwriter/src/xmlwriter.c +355 -0
  53. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/Makefile +44 -0
  54. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/crypt.h +131 -0
  55. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/ioapi.c +247 -0
  56. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/ioapi.h +209 -0
  57. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/iowin32.c +456 -0
  58. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/iowin32.h +28 -0
  59. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/miniunz.c +660 -0
  60. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/minizip.c +520 -0
  61. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/mztools.c +291 -0
  62. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/mztools.h +37 -0
  63. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/unzip.c +2125 -0
  64. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/unzip.h +437 -0
  65. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/zip.c +2007 -0
  66. data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/zip.h +367 -0
  67. data/ext/xlsxwriter/libxlsxwriter/third_party/tmpfileplus/Makefile +42 -0
  68. data/ext/xlsxwriter/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c +342 -0
  69. data/ext/xlsxwriter/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.h +53 -0
  70. data/ext/xlsxwriter/workbook.c +257 -0
  71. data/ext/xlsxwriter/workbook.h +42 -0
  72. data/ext/xlsxwriter/workbook_properties.c +103 -0
  73. data/ext/xlsxwriter/workbook_properties.h +10 -0
  74. data/ext/xlsxwriter/worksheet.c +1064 -0
  75. data/ext/xlsxwriter/worksheet.h +74 -0
  76. data/ext/xlsxwriter/xlsxwriter.c +239 -0
  77. data/lib/xlsxwriter.rb +6 -0
  78. data/lib/xlsxwriter/version.rb +3 -0
  79. data/lib/xlsxwriter/worksheet.rb +72 -0
  80. data/test/run-test.rb +11 -0
  81. data/test/support/xlsx_comparable.rb +109 -0
  82. data/test/test-array-formula.rb +33 -0
  83. data/test/test-autofilter.rb +70 -0
  84. data/test/test-chart-area.rb +25 -0
  85. data/test/test-data.rb +65 -0
  86. data/test/test-default-row.rb +25 -0
  87. data/test/test-defined-name.rb +46 -0
  88. data/test/test-escapes.rb +33 -0
  89. data/test/test-fit-to-pages.rb +21 -0
  90. data/test/test-formatting.rb +137 -0
  91. data/test/test-gridlines.rb +15 -0
  92. data/test/test-hyperlink.rb +67 -0
  93. data/test/test-image.rb +84 -0
  94. data/test/test-merge-range.rb +18 -0
  95. data/test/test-misc.rb +29 -0
  96. data/test/test-optimize.rb +32 -0
  97. data/test/test-page-breaks.rb +13 -0
  98. data/test/test-page-setup.rb +28 -0
  99. data/test/test-panes.rb +45 -0
  100. data/test/test-print-area.rb +19 -0
  101. data/test/test-print-options.rb +61 -0
  102. data/test/test-print-scale.rb +12 -0
  103. data/test/test-properties.rb +51 -0
  104. data/test/test-protect.rb +27 -0
  105. data/test/test-repeat.rb +23 -0
  106. data/test/test-row-col-format.rb +35 -0
  107. data/test/test-set-selection.rb +13 -0
  108. data/test/test-set-start-page.rb +13 -0
  109. data/test/test-simple.rb +62 -0
  110. data/test/test-types.rb +17 -0
  111. data/test/xlsx-func-testcase.rb +36 -0
  112. metadata +228 -0
@@ -0,0 +1,15 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestGridlines < XlsxWriterTestCase
4
+ test 'gridlines01' do |wb, t|
5
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
6
+ ws = wb.add_worksheet
7
+
8
+ ws.paper = 9
9
+ ws.vertical_dpi = 200
10
+
11
+ ws.gridlines = XlsxWriter::Worksheet::GRIDLINES_HIDE_ALL
12
+
13
+ ws.write_string(0, 'A', 'Foo' , nil)
14
+ end
15
+ end
@@ -0,0 +1,67 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestHyperlink < XlsxWriterTestCase
4
+ test 'hyperlink03' do |wb|
5
+ ws1 = wb.add_worksheet
6
+ ws2 = wb.add_worksheet
7
+
8
+ ws1
9
+ .write_url(0, 'A', 'http://www.perl.org/')
10
+ .write_url(3, 'D', 'http://www.perl.org/')
11
+ .write_url(7, 'A', 'http://www.perl.org/')
12
+ .write_url(5, 'B', 'http://www.cpan.org/')
13
+ .write_url(11, 'F', 'http://www.cpan.org/')
14
+
15
+ ws2
16
+ .write_url(1, 'C', 'http://www.google.com/')
17
+ .write_url(4, 'C', 'http://www.cpan.org/')
18
+ .write_url(6, 'C', 'http://www.perl.org/')
19
+ end
20
+
21
+ test 'hyperlink05' do |wb|
22
+ wb.add_worksheet
23
+ .write_url(0, 'A', 'http://www.perl.org/')
24
+ .write_url(2, 'A', 'http://www.perl.org/', nil, string: 'Perl home')
25
+ .write_url(4, 'A', 'http://www.perl.org/', string: 'Perl home', tooltip: 'Tool Tip')
26
+ .write_url(6, 'A', 'http://www.cpan.org/', string: 'CPAN', tooltip: 'Download')
27
+ end
28
+
29
+ test 'hyperlink09' do |wb|
30
+ wb.add_worksheet
31
+ .write_url(0, 'A', 'external:..\\foo.xlsx')
32
+ .write_url(2, 'A', 'external:..\\foo.xlsx#Sheet1!A1')
33
+ .write_url(4, 'A', 'external:\\\\VBOXSVR\\share\\foo.xlsx#Sheet1!B2',
34
+ string: 'J:\\foo.xlsx#Sheet1!B2')
35
+ end
36
+
37
+ test 'hyperlink14' do |wb, t|
38
+ t.ignore_files = %w(xl/sharedStrings.xml)
39
+
40
+ wb.add_format(:f, align: XlsxWriter::Format::ALIGN_CENTER)
41
+ ws = wb.add_worksheet
42
+ ws
43
+ .write_string(0, 0, 'Perl Home', nil)
44
+ .merge_range(3, 2, 4, 4, 'http://www.perl.org/', :f)
45
+ .write_url(3, 2, 'http://www.perl.org/', format: :f, string: 'Perl Home')
46
+ end
47
+
48
+ test 'hyperlink18' do |wb|
49
+ wb.add_worksheet
50
+ .write_url(0, 0, 'http://google.com/00000000001111111111222222222233333333334444444444555555555566666666666777777777778888888888999999999990000000000111111111122222222223333333333444444444455555555556666666666677777777777888888888899999999999000000000011111111112222222222x')
51
+ .write_url(0, 0, 'http://google.com/00000000001111111111222222222233333333334444444444555555555566666666666777777777778888888888999999999990000000000111111111122222222223333333333444444444455555555556666666666677777777777888888888899999999999000000000011111111112222222222xy')
52
+ end
53
+
54
+ test 'hyperlink20' do |wb, t|
55
+ t.ignore_files = %w(xl/styles.xml)
56
+
57
+ wb
58
+ .add_format(:f1, underline: XlsxWriter::Format::UNDERLINE_SINGLE,
59
+ font_color: XlsxWriter::Format::COLOR_BLUE)
60
+ .add_format(:f2, underline: XlsxWriter::Format::UNDERLINE_SINGLE,
61
+ font_color: XlsxWriter::Format::COLOR_RED)
62
+ .add_worksheet
63
+ .write_url(0, 0, 'http://www.python.org/1', :f1)
64
+ .write_url(1, 0, 'http://www.python.org/2', :f2)
65
+
66
+ end
67
+ end
@@ -0,0 +1,84 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestImage < XlsxWriterTestCase
4
+ test 'image01' do |wb|
5
+ wb.add_worksheet.insert_image(8, 'E', image_path('red.png'), {})
6
+ end
7
+
8
+ test 'image02' do |wb|
9
+ wb.add_worksheet.insert_image(6, 'D', image_path('yellow.png'), x_offset: 1, y_offset: 2)
10
+ end
11
+
12
+ test 'image03' do |wb|
13
+ wb.add_worksheet.insert_image(8, 'E', image_path('red.jpg'), {})
14
+ end
15
+
16
+ test 'image04' do |wb|
17
+ wb.add_worksheet.insert_image(8, 'E', image_path('red.bmp'), {})
18
+ end
19
+
20
+ test 'image05' do |wb|
21
+ ws = wb.add_worksheet
22
+ ws.insert_image(0, 'A', image_path('blue.png'), {})
23
+ ws.insert_image(2, 'B', image_path('red.jpg'), {})
24
+ ws.insert_image(4, 'D', image_path('yellow.jpg'), {})
25
+ ws.insert_image(8, 'F', image_path('grey.png'), {})
26
+ end
27
+
28
+ test 'image07' do |wb|
29
+ wb.add_worksheet.insert_image(8, 'E', image_path('red.png'), {})
30
+ wb.add_worksheet.insert_image(8, 'E', image_path('yellow.png'), {})
31
+ end
32
+
33
+ test 'image08' do |wb|
34
+ wb.add_worksheet.insert_image(2, 'B', image_path('grey.png'), scale: 0.5)
35
+ end
36
+
37
+ test 'image09' do |wb|
38
+ wb.add_worksheet.insert_image(8, 'E', image_path('red_64x20.png'), {})
39
+ end
40
+
41
+ test 'image10' do |wb|
42
+ wb.add_worksheet.insert_image(1, 'C', image_path('logo.png'), {})
43
+ end
44
+
45
+ test 'image11' do |wb|
46
+ wb.add_worksheet.insert_image(1, 'C', image_path('logo.png'), x_offset: 8, y_offset: 5)
47
+ end
48
+
49
+ test 'image12' do |wb|
50
+ ws = wb.add_worksheet
51
+ ws.set_row(1, height: 75)
52
+ ws.set_column(2, 2, width: 32)
53
+ ws.insert_image(1, 'C', image_path('logo.png'), {})
54
+ end
55
+
56
+ test 'image13' do |wb|
57
+ ws = wb.add_worksheet
58
+ ws.set_row(1, height: 75)
59
+ ws.set_column(2, 2, width: 32)
60
+ ws.insert_image(1, 'C', image_path('logo.png'), x_offset: 8, y_offset: 5)
61
+ end
62
+
63
+ test 'image14' do |wb|
64
+ ws = wb.add_worksheet
65
+ ws.set_row(1, height: 4.5)
66
+ ws.set_row(2, height: 35.25)
67
+ ws.set_column(2, 4, width: 3.29)
68
+ ws.set_column(5, 5, width: 10.71)
69
+ ws.insert_image(1, 'C', image_path('logo.png'), {})
70
+ end
71
+
72
+ test 'image15' do |wb|
73
+ ws = wb.add_worksheet
74
+ ws.set_row(1, height: 4.5)
75
+ ws.set_row(2, height: 35.25)
76
+ ws.set_column(2, 4, width: 3.29)
77
+ ws.set_column(5, 5, width: 10.71)
78
+ ws.insert_image(1, 'C', image_path('logo.png'), x_offset: 13, y_offset: 2)
79
+ end
80
+
81
+ test 'image29' do |wb|
82
+ wb.add_worksheet.insert_image(0, 10, image_path('red_208.png'), x_offset: -210, y_offset: 1)
83
+ end
84
+ end
@@ -0,0 +1,18 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestMergeRange < XlsxWriterTestCase
4
+ test 'merge_range03' do |wb|
5
+ wb.add_format(:f, align: XlsxWriter::Format::ALIGN_CENTER)
6
+ wb.add_worksheet
7
+ .merge_range(1, 1, 1, 2, 'Foo', :f)
8
+ .merge_range('D2:E2', 'Foo', :f)
9
+ .merge_range('F2', 'G2', 'Foo', :f)
10
+ end
11
+
12
+ test 'merge_range05' do |wb|
13
+ wb.add_format(:f, align: XlsxWriter::Format::ALIGN_CENTER)
14
+ wb.add_worksheet
15
+ .merge_range('B2:D2', '', :f)
16
+ .write_number(1, 1, 123, :f)
17
+ end
18
+ end
@@ -0,0 +1,29 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestMisc < XlsxWriterTestCase
4
+ test 'tab_color01' do |wb|
5
+ wb.add_worksheet
6
+ .write_string(0, 0, 'Foo', nil)
7
+ .tab_color = XlsxWriter::Format::COLOR_RED
8
+ end
9
+
10
+ test 'firstsheet01' do |wb|
11
+ wss = 20.times.map { wb.add_worksheet }
12
+ wss[7].set_first_sheet
13
+ wss[19].activate
14
+ end
15
+
16
+ test 'hide01' do |wb|
17
+ wb.add_worksheet
18
+ wb.add_worksheet.hide
19
+ wb.add_worksheet
20
+ end
21
+
22
+ test 'gh42_01' do |wb|
23
+ wb.add_worksheet.write_string(0, 0, "\xe5\x9b\xbe\x14\xe5\x9b\xbe", nil)
24
+ end
25
+
26
+ test 'gh42_02' do |wb|
27
+ wb.add_worksheet.write_string(0, 0, "\xe5\x9b\xbe\x20\xe5\x9b\xbe", nil)
28
+ end
29
+ end
@@ -0,0 +1,32 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestOptimize < XlsxWriterTestCase
4
+ test('optimize01', constant_memory: true) do |wb|
5
+ wb.add_worksheet
6
+ .write_string(0, 0, 'Hello', nil)
7
+ .write_string(0, 0, 'Hello', nil)
8
+ .write_number(1, 0, 123, nil)
9
+ end
10
+
11
+ test('optimize02', constant_memory: true) do |wb|
12
+ wb.add_worksheet
13
+ .write_string(0, 0, 'Hello', nil)
14
+ .write_number(1, 0, 123, nil)
15
+ .write_string(0, 'G', 'World', nil)
16
+ # G1 should be ignored since a later row has already been written.
17
+ end
18
+
19
+ test('optimize06', constant_memory: true) do |wb|
20
+ ws = wb.add_worksheet
21
+ ws.write_string(0, 0, '_x0000_', nil)
22
+ (1..127).each { |i| ws.write_string(i, 0, i.chr, nil) unless i == 34 }
23
+ end
24
+
25
+ test('optimize21', constant_memory: true) do |wb|
26
+ wb.add_worksheet
27
+ .write_string(0, 'A', 'Foo', nil)
28
+ .write_string(2, 'C', ' Foo', nil)
29
+ .write_string(4, 'E', 'Foo ', nil)
30
+ .write_string(6, 'A', "\tFoo\t", nil)
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestpageBreaks < XlsxWriterTestCase
4
+ test 'page_breaks06' do |wb, t|
5
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
6
+ ws = wb.add_worksheet
7
+ ws.paper = 9
8
+ ws.vertical_dpi = 200
9
+ ws.h_pagebreaks = [1, 5, 8, 13]
10
+ ws.v_pagebreaks = [1, 3, 8]
11
+ ws.write_string(0, 'A', 'Foo', nil)
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestPageSetup < XlsxWriterTestCase
4
+ test 'page_view01' do |wb|
5
+ ws = wb.add_worksheet
6
+ ws.set_page_view
7
+ ws.write_string(0, 'A', 'Foo', nil)
8
+ ws.paper = 9
9
+ ws.vertical_dpi = 200
10
+ end
11
+
12
+ test 'landscape01' do |wb|
13
+ ws = wb.add_worksheet
14
+ ws.write_string(0, 'A', 'Foo', nil)
15
+ ws.set_landscape
16
+ ws.paper = 9
17
+ ws.vertical_dpi = 200
18
+ end
19
+
20
+ test 'print_across01' do |wb, t|
21
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins'] }
22
+ ws = wb.add_worksheet
23
+ ws.print_across
24
+ ws.paper = 9
25
+ ws.vertical_dpi = 200
26
+ ws.write_string 0, 0, 'Foo', nil
27
+ end
28
+ end
@@ -0,0 +1,45 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestPanes < XlsxWriterTestCase
4
+ test 'panes01' do |wb|
5
+ wb.add_worksheet
6
+ .write_string(0, 'A', 'Foo', nil)
7
+ .freeze_panes(1, 'A')
8
+ wb.add_worksheet
9
+ .write_string(0, 'A', 'Foo', nil)
10
+ .freeze_panes(2, 'A')
11
+ wb.add_worksheet
12
+ .write_string(0, 'A', 'Foo', nil)
13
+ .freeze_panes(0, 'B')
14
+ wb.add_worksheet
15
+ .write_string(0, 'A', 'Foo', nil)
16
+ .freeze_panes(0, 'C')
17
+ wb.add_worksheet
18
+ .write_string(0, 'A', 'Foo', nil)
19
+ .freeze_panes(1, 'B')
20
+ wb.add_worksheet
21
+ .write_string(0, 'A', 'Foo', nil)
22
+ .freeze_panes(3, 'G')
23
+ wb.add_worksheet
24
+ .write_string(0, 'A', 'Foo', nil)
25
+ .freeze_panes(3, 6, 3, 6, 1)
26
+ wb.add_worksheet
27
+ .write_string(0, 'A', 'Foo', nil)
28
+ .split_panes(15, 0)
29
+ wb.add_worksheet
30
+ .write_string(0, 'A', 'Foo', nil)
31
+ .split_panes(30, 0)
32
+ wb.add_worksheet
33
+ .write_string(0, 'A', 'Foo', nil)
34
+ .split_panes(0, 8.46)
35
+ wb.add_worksheet
36
+ .write_string(0, 'A', 'Foo', nil)
37
+ .split_panes(0, 17.57)
38
+ wb.add_worksheet
39
+ .write_string(0, 'A', 'Foo', nil)
40
+ .split_panes(15, 8.46)
41
+ wb.add_worksheet
42
+ .write_string(0, 'A', 'Foo', nil)
43
+ .split_panes(45, 54.14)
44
+ end
45
+ end
@@ -0,0 +1,19 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestPrintArea < XlsxWriterTestCase
4
+ test 'print_area06' do |wb, t|
5
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
6
+ ws = wb.add_worksheet
7
+ ws.paper = 9
8
+ ws.vertical_dpi = 200
9
+ ws.print_area(0, 'A', 8, 'F')
10
+ ws.write_string(0, 'A', 'Foo', nil)
11
+ end
12
+
13
+ test 'print_area07' do |wb, t|
14
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
15
+ ws = wb.add_worksheet
16
+ ws.print_area('A1:XFD1048576')
17
+ ws.write_string('A1', 'Foo', nil)
18
+ end
19
+ end
@@ -0,0 +1,61 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestPrintOptions < XlsxWriterTestCase
4
+ test 'print_options01' do |wb, t|
5
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
6
+ ws = wb.add_worksheet
7
+ ws.paper = 9
8
+ ws.vertical_dpi = 200
9
+ ws.gridlines = XlsxWriter::Worksheet::GRIDLINES_SHOW_PRINT
10
+ ws.write_string(0, 'A', 'Foo', nil)
11
+ end
12
+
13
+ test 'print_options02' do |wb, t|
14
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
15
+ ws = wb.add_worksheet
16
+ ws.paper = 9
17
+ ws.vertical_dpi = 200
18
+ ws.center_horizontally
19
+ ws.write_string(0, 'A', 'Foo', nil)
20
+ end
21
+
22
+ test 'print_options03' do |wb, t|
23
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
24
+ ws = wb.add_worksheet
25
+ ws.paper = 9
26
+ ws.vertical_dpi = 200
27
+ ws.center_vertically
28
+ ws.write_string(0, 'A', 'Foo', nil)
29
+ end
30
+
31
+ test 'print_options04' do |wb, t|
32
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
33
+ ws = wb.add_worksheet
34
+ ws.paper = 9
35
+ ws.vertical_dpi = 200
36
+ ws.print_row_col_headers
37
+ ws.write_string(0, 'A', 'Foo', nil)
38
+ end
39
+
40
+ test 'print_options05' do |wb, t|
41
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
42
+ ws = wb.add_worksheet
43
+ ws.paper = 9
44
+ ws.vertical_dpi = 200
45
+ ws.gridlines = XlsxWriter::Worksheet::GRIDLINES_SHOW_PRINT
46
+ ws.center_horizontally
47
+ ws.center_vertically
48
+ ws.print_row_col_headers
49
+ ws.write_string(0, 'A', 'Foo', nil)
50
+ end
51
+
52
+ test 'print_options06' do |wb, t|
53
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
54
+ ws = wb.add_worksheet
55
+ ws.paper = 9
56
+ ws.vertical_dpi = 200
57
+ ws.print_area(0, 'A', 19, 'G')
58
+ ws.repeat_rows(0, 0)
59
+ ws.write_string(0, 'A', 'Foo', nil)
60
+ end
61
+ end
@@ -0,0 +1,12 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestPrintScale < XlsxWriterTestCase
4
+ test 'print_scale01' do |wb, t|
5
+ t.ignore_elements = { 'xl/worksheets/sheet1.xml' => [ '<pageMargins' ] }
6
+ ws = wb.add_worksheet
7
+ ws.print_scale = 75
8
+ ws.paper = 9
9
+ ws.vertical_dpi = 200
10
+ ws.write_string(0, 'A', 'Foo', nil)
11
+ end
12
+ end
@@ -0,0 +1,51 @@
1
+ require_relative './xlsx-func-testcase'
2
+
3
+ class TestProperties < XlsxWriterTestCase
4
+ test 'properties01' do |wb|
5
+ wb.properties do |p|
6
+ p.title = 'This is an example spreadsheet'
7
+ p.subject = 'With document properties'
8
+ p.author = 'Someone'
9
+ p.manager = 'Dr. Heinz Doofenshmirtz'
10
+ p.company = 'of Wolves'
11
+ p.category = 'Example spreadsheets'
12
+ p.keywords = 'Sample, Example, Properties'
13
+ p.comments = 'Created with Perl and Excel::Writer::XLSX'
14
+ p.status = 'Quo'
15
+ end
16
+
17
+ wb.add_worksheet do |ws|
18
+ ws.set_column(0, 0, width: 70)
19
+ ws.write_string(0, 0, 'Select \'Office Button -> Prepare -> Properties\' to see the file properties.', nil)
20
+ end
21
+ end
22
+
23
+ test 'properties02' do |wb|
24
+ wb.properties.hyperlink_base = 'C:\\'
25
+ wb.add_worksheet
26
+ end
27
+
28
+ test 'properties04' do |wb|
29
+ wb.properties['Checked by'] = 'Adam'
30
+ wb.properties['Date completed'] = Time.new(2016, 12, 12, 23)
31
+ wb.properties['Document number'] = 12345
32
+ wb.properties['Reference'] = 1.2345
33
+ wb.properties['Source'] = true
34
+ wb.properties['Status'] = false
35
+ wb.properties['Department'] = 'Finance'
36
+ wb.properties['Group'] = 1.2345678901234
37
+
38
+ wb.add_worksheet do |ws|
39
+ ws.set_column 0, 0, width: 70
40
+ ws.write_string 0, 'A', 'Select \'Office Button -> Prepare -> Properties\' to see the file properties.', nil
41
+ end
42
+ end
43
+
44
+ test 'properties05' do |wb|
45
+ wb.properties['Location'] = "Caf\xc3\xa9"
46
+ wb.add_worksheet do |ws|
47
+ ws.set_column 0, 0, width: 70
48
+ ws.write_string 0, 'A', 'Select \'Office Button -> Prepare -> Properties\' to see the file properties.', nil
49
+ end
50
+ end
51
+ end