writeexcel 0.1.0 → 0.3.0

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 (143) hide show
  1. data/README +26 -31
  2. data/examples/a_simple.rb +42 -42
  3. data/examples/{autofilters.rb → autofilter.rb} +264 -266
  4. data/examples/bigfile.rb +29 -0
  5. data/examples/chart_area.rb +120 -0
  6. data/examples/chart_bar.rb +119 -0
  7. data/examples/chart_column.rb +119 -0
  8. data/examples/chart_line.rb +119 -0
  9. data/examples/chart_pie.rb +107 -0
  10. data/examples/chart_scatter.rb +120 -0
  11. data/examples/chart_stock.rb +147 -0
  12. data/examples/copyformat.rb +51 -51
  13. data/examples/data_validate.rb +278 -278
  14. data/examples/date_time.rb +86 -86
  15. data/examples/defined_name.rb +31 -0
  16. data/examples/demo.rb +120 -118
  17. data/examples/diag_border.rb +35 -35
  18. data/examples/formats.rb +489 -489
  19. data/examples/header.rb +136 -136
  20. data/examples/hidden.rb +28 -28
  21. data/examples/hyperlink.rb +42 -42
  22. data/examples/images.rb +52 -52
  23. data/examples/merge1.rb +39 -39
  24. data/examples/merge2.rb +44 -44
  25. data/examples/merge3.rb +65 -65
  26. data/examples/merge4.rb +82 -82
  27. data/examples/merge5.rb +79 -79
  28. data/examples/properties.rb +33 -0
  29. data/examples/properties_jp.rb +32 -0
  30. data/examples/protection.rb +46 -46
  31. data/examples/regions.rb +52 -52
  32. data/examples/repeat.rb +42 -42
  33. data/examples/stats.rb +75 -75
  34. data/examples/stocks.rb +80 -80
  35. data/examples/tab_colors.rb +30 -30
  36. data/examples/write_arrays.rb +82 -0
  37. data/lib/writeexcel.rb +1134 -18
  38. data/lib/writeexcel/biffwriter.rb +273 -260
  39. data/lib/writeexcel/chart.rb +2306 -217
  40. data/lib/writeexcel/charts/area.rb +152 -0
  41. data/lib/writeexcel/charts/bar.rb +177 -0
  42. data/lib/writeexcel/charts/column.rb +156 -0
  43. data/lib/writeexcel/charts/external.rb +61 -0
  44. data/lib/writeexcel/charts/line.rb +152 -0
  45. data/lib/writeexcel/charts/pie.rb +169 -0
  46. data/lib/writeexcel/charts/scatter.rb +192 -0
  47. data/lib/writeexcel/charts/stock.rb +211 -0
  48. data/lib/writeexcel/excelformulaparser.rb +208 -195
  49. data/lib/writeexcel/format.rb +1697 -1108
  50. data/lib/writeexcel/formula.rb +1050 -986
  51. data/lib/writeexcel/olewriter.rb +322 -322
  52. data/lib/writeexcel/properties.rb +251 -250
  53. data/lib/writeexcel/storage_lite.rb +968 -0
  54. data/lib/writeexcel/workbook.rb +3294 -2630
  55. data/lib/writeexcel/worksheet.rb +9012 -6377
  56. data/test/excelfile/Chart1.xls +0 -0
  57. data/test/excelfile/Chart2.xls +0 -0
  58. data/test/excelfile/Chart3.xls +0 -0
  59. data/test/excelfile/Chart4.xls +0 -0
  60. data/test/excelfile/Chart5.xls +0 -0
  61. data/test/perl_output/Chart1.xls.data +0 -0
  62. data/test/perl_output/Chart2.xls.data +0 -0
  63. data/test/perl_output/Chart3.xls.data +0 -0
  64. data/test/perl_output/Chart4.xls.data +0 -0
  65. data/test/perl_output/Chart5.xls.data +0 -0
  66. data/test/perl_output/a_simple.xls +0 -0
  67. data/test/perl_output/autofilter.xls +0 -0
  68. data/test/perl_output/chart_area.xls +0 -0
  69. data/test/perl_output/chart_bar.xls +0 -0
  70. data/test/perl_output/chart_column.xls +0 -0
  71. data/test/perl_output/chart_line.xls +0 -0
  72. data/test/perl_output/data_validate.xls +0 -0
  73. data/test/perl_output/date_time.xls +0 -0
  74. data/test/perl_output/demo.xls +0 -0
  75. data/test/perl_output/demo101.bin +0 -0
  76. data/test/perl_output/demo201.bin +0 -0
  77. data/test/perl_output/demo301.bin +0 -0
  78. data/test/perl_output/demo401.bin +0 -0
  79. data/test/perl_output/demo501.bin +0 -0
  80. data/test/perl_output/diag_border.xls +0 -0
  81. data/test/perl_output/headers.xls +0 -0
  82. data/test/perl_output/hyperlink.xls +0 -0
  83. data/test/perl_output/images.xls +0 -0
  84. data/test/perl_output/merge1.xls +0 -0
  85. data/test/perl_output/merge2.xls +0 -0
  86. data/test/perl_output/merge3.xls +0 -0
  87. data/test/perl_output/merge4.xls +0 -0
  88. data/test/perl_output/merge5.xls +0 -0
  89. data/test/perl_output/protection.xls +0 -0
  90. data/test/perl_output/regions.xls +0 -0
  91. data/test/perl_output/stats.xls +0 -0
  92. data/test/perl_output/stocks.xls +0 -0
  93. data/test/perl_output/tab_colors.xls +0 -0
  94. data/test/perl_output/unicode_cyrillic.xls +0 -0
  95. data/test/perl_output/workbook1.xls +0 -0
  96. data/test/perl_output/workbook2.xls +0 -0
  97. data/test/tc_all.rb +32 -31
  98. data/test/tc_biff.rb +104 -104
  99. data/test/tc_chart.rb +22 -22
  100. data/test/tc_example_match.rb +1944 -1280
  101. data/test/tc_format.rb +1254 -1267
  102. data/test/tc_formula.rb +63 -63
  103. data/test/tc_ole.rb +110 -110
  104. data/test/tc_storage_lite.rb +149 -0
  105. data/test/tc_workbook.rb +140 -115
  106. data/test/tc_worksheet.rb +115 -115
  107. data/test/test_00_IEEE_double.rb +14 -14
  108. data/test/test_01_add_worksheet.rb +12 -12
  109. data/test/test_02_merge_formats.rb +58 -58
  110. data/test/test_04_dimensions.rb +397 -397
  111. data/test/test_05_rows.rb +182 -182
  112. data/test/test_06_extsst.rb +80 -80
  113. data/test/test_11_date_time.rb +484 -484
  114. data/test/test_12_date_only.rb +506 -506
  115. data/test/test_13_date_seconds.rb +486 -486
  116. data/test/test_21_escher.rb +642 -629
  117. data/test/test_22_mso_drawing_group.rb +750 -739
  118. data/test/test_23_note.rb +78 -78
  119. data/test/test_24_txo.rb +80 -80
  120. data/test/test_25_position_object.rb +82 -0
  121. data/test/test_26_autofilter.rb +327 -327
  122. data/test/test_27_autofilter.rb +144 -144
  123. data/test/test_28_autofilter.rb +174 -174
  124. data/test/test_29_process_jpg.rb +681 -131
  125. data/test/test_30_validation_dval.rb +82 -82
  126. data/test/test_31_validation_dv_strings.rb +131 -131
  127. data/test/test_32_validation_dv_formula.rb +211 -211
  128. data/test/test_40_property_types.rb +191 -191
  129. data/test/test_41_properties.rb +238 -238
  130. data/test/test_42_set_properties.rb +442 -419
  131. data/test/test_50_name_stored.rb +305 -0
  132. data/test/test_51_name_print_area.rb +363 -0
  133. data/test/test_52_name_print_titles.rb +460 -0
  134. data/test/test_53_autofilter.rb +209 -0
  135. data/test/test_60_chart_generic.rb +576 -0
  136. data/test/test_61_chart_subclasses.rb +97 -0
  137. data/test/test_62_chart_formats.rb +270 -0
  138. data/test/test_63_chart_area_formats.rb +647 -0
  139. data/test/test_chartex.rb +35 -0
  140. data/test/ts_all.rb +46 -34
  141. data/writeexcel.gemspec +18 -0
  142. data/writeexcel.rdoc +583 -0
  143. metadata +162 -108
data/examples/header.rb CHANGED
@@ -1,136 +1,136 @@
1
- #!/usr/bin/ruby -w
2
-
3
- ######################################################################
4
- #
5
- # This program shows several examples of how to set up headers and
6
- # footers with Spreadsheet::WriteExcel.
7
- #
8
- # The control characters used in the header/footer strings are:
9
- #
10
- # Control Category Description
11
- # ======= ======== ===========
12
- # &L Justification Left
13
- # &C Center
14
- # &R Right
15
- #
16
- # &P Information Page number
17
- # &N Total number of pages
18
- # &D Date
19
- # &T Time
20
- # &F File name
21
- # &A Worksheet name
22
- #
23
- # &fontsize Font Font size
24
- # &"font,style" Font name and style
25
- # &U Single underline
26
- # &E Double underline
27
- # &S Strikethrough
28
- # &X Superscript
29
- # &Y Subscript
30
- #
31
- # && Miscellaneous Literal ampersand &
32
- #
33
- #
34
- # reverse('©'), March 2002, John McNamara, jmcnamara@cpan.org
35
- #
36
- # original written in Perl by John McNamara
37
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
38
- #
39
-
40
- require 'rubygems'
41
- require 'writeexcel'
42
-
43
- workbook = Spreadsheet::WriteExcel.new("headers.xls")
44
- preview = "Select Print Preview to see the header and footer"
45
-
46
-
47
- ######################################################################
48
- #
49
- # A simple example to start
50
- #
51
- worksheet1 = workbook.add_worksheet('Simple')
52
-
53
- header1 = '&CHere is some centred text.'
54
-
55
- footer1 = '&LHere is some left aligned text.'
56
-
57
-
58
- worksheet1.set_header(header1)
59
- worksheet1.set_footer(footer1)
60
-
61
- worksheet1.set_column('A:A', 50)
62
- worksheet1.write('A1', preview)
63
-
64
-
65
- ######################################################################
66
- #
67
- # This is an example of some of the header/footer variables.
68
- #
69
- worksheet2 = workbook.add_worksheet('Variables')
70
-
71
- header2 = '&LPage &P of &N'+
72
- '&CFilename: &F' +
73
- '&RSheetname: &A'
74
-
75
- footer2 = '&LCurrent date: &D'+
76
- '&RCurrent time: &T'
77
-
78
- worksheet2.set_header(header2)
79
- worksheet2.set_footer(footer2)
80
-
81
-
82
- worksheet2.set_column('A:A', 50)
83
- worksheet2.write('A1', preview)
84
- worksheet2.write('A21', "Next sheet")
85
- worksheet2.set_h_pagebreaks(20)
86
-
87
-
88
- ######################################################################
89
- #
90
- # This example shows how to use more than one font
91
- #
92
- worksheet3 = workbook.add_worksheet('Mixed fonts')
93
-
94
- header3 = '&C' +
95
- '&"Courier New,Bold"Hello ' +
96
- '&"Arial,Italic"World'
97
-
98
- footer3 = '&C' +
99
- '&"Symbol"e' +
100
- '&"Arial" = mc&X2'
101
-
102
- worksheet3.set_header(header3)
103
- worksheet3.set_footer(footer3)
104
-
105
- worksheet3.set_column('A:A', 50)
106
- worksheet3.write('A1', preview)
107
-
108
-
109
- ######################################################################
110
- #
111
- # Example of line wrapping
112
- #
113
- worksheet4 = workbook.add_worksheet('Word wrap')
114
-
115
- header4 = "&CHeading 1\nHeading 2\nHeading 3"
116
-
117
- worksheet4.set_header(header4)
118
-
119
- worksheet4.set_column('A:A', 50)
120
- worksheet4.write('A1', preview)
121
-
122
-
123
- ######################################################################
124
- #
125
- # Example of inserting a literal ampersand &
126
- #
127
- worksheet5 = workbook.add_worksheet('Ampersand')
128
-
129
- header5 = "&CCuriouser && Curiouser - Attorneys at Law"
130
-
131
- worksheet5.set_header(header5)
132
-
133
- worksheet5.set_column('A:A', 50)
134
- worksheet5.write('A1', preview)
135
-
136
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+
3
+ ######################################################################
4
+ #
5
+ # This program shows several examples of how to set up headers and
6
+ # footers with WriteExcel.
7
+ #
8
+ # The control characters used in the header/footer strings are:
9
+ #
10
+ # Control Category Description
11
+ # ======= ======== ===========
12
+ # &L Justification Left
13
+ # &C Center
14
+ # &R Right
15
+ #
16
+ # &P Information Page number
17
+ # &N Total number of pages
18
+ # &D Date
19
+ # &T Time
20
+ # &F File name
21
+ # &A Worksheet name
22
+ #
23
+ # &fontsize Font Font size
24
+ # &"font,style" Font name and style
25
+ # &U Single underline
26
+ # &E Double underline
27
+ # &S Strikethrough
28
+ # &X Superscript
29
+ # &Y Subscript
30
+ #
31
+ # && Miscellaneous Literal ampersand &
32
+ #
33
+ #
34
+ # reverse('©'), March 2002, John McNamara, jmcnamara@cpan.org
35
+ #
36
+ # original written in Perl by John McNamara
37
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
38
+ #
39
+
40
+ require 'rubygems'
41
+ require 'writeexcel'
42
+
43
+ workbook = WriteExcel.new("headers.xls")
44
+ preview = "Select Print Preview to see the header and footer"
45
+
46
+
47
+ ######################################################################
48
+ #
49
+ # A simple example to start
50
+ #
51
+ worksheet1 = workbook.add_worksheet('Simple')
52
+
53
+ header1 = '&CHere is some centred text.'
54
+
55
+ footer1 = '&LHere is some left aligned text.'
56
+
57
+
58
+ worksheet1.set_header(header1)
59
+ worksheet1.set_footer(footer1)
60
+
61
+ worksheet1.set_column('A:A', 50)
62
+ worksheet1.write('A1', preview)
63
+
64
+
65
+ ######################################################################
66
+ #
67
+ # This is an example of some of the header/footer variables.
68
+ #
69
+ worksheet2 = workbook.add_worksheet('Variables')
70
+
71
+ header2 = '&LPage &P of &N'+
72
+ '&CFilename: &F' +
73
+ '&RSheetname: &A'
74
+
75
+ footer2 = '&LCurrent date: &D'+
76
+ '&RCurrent time: &T'
77
+
78
+ worksheet2.set_header(header2)
79
+ worksheet2.set_footer(footer2)
80
+
81
+
82
+ worksheet2.set_column('A:A', 50)
83
+ worksheet2.write('A1', preview)
84
+ worksheet2.write('A21', "Next sheet")
85
+ worksheet2.set_h_pagebreaks(20)
86
+
87
+
88
+ ######################################################################
89
+ #
90
+ # This example shows how to use more than one font
91
+ #
92
+ worksheet3 = workbook.add_worksheet('Mixed fonts')
93
+
94
+ header3 = '&C' +
95
+ '&"Courier New,Bold"Hello ' +
96
+ '&"Arial,Italic"World'
97
+
98
+ footer3 = '&C' +
99
+ '&"Symbol"e' +
100
+ '&"Arial" = mc&X2'
101
+
102
+ worksheet3.set_header(header3)
103
+ worksheet3.set_footer(footer3)
104
+
105
+ worksheet3.set_column('A:A', 50)
106
+ worksheet3.write('A1', preview)
107
+
108
+
109
+ ######################################################################
110
+ #
111
+ # Example of line wrapping
112
+ #
113
+ worksheet4 = workbook.add_worksheet('Word wrap')
114
+
115
+ header4 = "&CHeading 1\nHeading 2\nHeading 3"
116
+
117
+ worksheet4.set_header(header4)
118
+
119
+ worksheet4.set_column('A:A', 50)
120
+ worksheet4.write('A1', preview)
121
+
122
+
123
+ ######################################################################
124
+ #
125
+ # Example of inserting a literal ampersand &
126
+ #
127
+ worksheet5 = workbook.add_worksheet('Ampersand')
128
+
129
+ header5 = "&CCuriouser && Curiouser - Attorneys at Law"
130
+
131
+ worksheet5.set_header(header5)
132
+
133
+ worksheet5.set_column('A:A', 50)
134
+ worksheet5.write('A1', preview)
135
+
136
+ workbook.close
data/examples/hidden.rb CHANGED
@@ -1,28 +1,28 @@
1
- #!/usr/bin/ruby -w
2
-
3
- #######################################################################
4
- #
5
- # Example of how to hide a worksheet with Spreadsheet::WriteExcel.
6
- #
7
- # reverse('©'), April 2005, John McNamara, jmcnamara@cpan.org
8
- #
9
- # original written in Perl by John McNamara
10
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
- #
12
- require 'rubygems'
13
- require 'writeexcel'
14
-
15
-
16
- workbook = Spreadsheet::WriteExcel.new('hidden.xls')
17
- worksheet1 = workbook.add_worksheet
18
- worksheet2 = workbook.add_worksheet
19
- worksheet3 = workbook.add_worksheet
20
-
21
- # Sheet2 won't be visible until it is unhidden in Excel.
22
- worksheet2.hide
23
-
24
- worksheet1.write(0, 0, 'Sheet2 is hidden')
25
- worksheet2.write(0, 0, 'How did you find me?')
26
- worksheet3.write(0, 0, 'Sheet2 is hidden')
27
-
28
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+
3
+ #######################################################################
4
+ #
5
+ # Example of how to hide a worksheet with WriteExcel.
6
+ #
7
+ # reverse('©'), April 2005, John McNamara, jmcnamara@cpan.org
8
+ #
9
+ # original written in Perl by John McNamara
10
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
+ #
12
+ require 'rubygems'
13
+ require 'writeexcel'
14
+
15
+
16
+ workbook = WriteExcel.new('hidden.xls')
17
+ worksheet1 = workbook.add_worksheet
18
+ worksheet2 = workbook.add_worksheet
19
+ worksheet3 = workbook.add_worksheet
20
+
21
+ # Sheet2 won't be visible until it is unhidden in Excel.
22
+ worksheet2.hide
23
+
24
+ worksheet1.write(0, 0, 'Sheet2 is hidden')
25
+ worksheet2.write(0, 0, 'How did you find me?')
26
+ worksheet3.write(0, 0, 'Sheet2 is hidden')
27
+
28
+ workbook.close
@@ -1,42 +1,42 @@
1
- #!/usr/bin/ruby -w
2
- ###############################################################################
3
- #
4
- # Example of how to use the WriteExcel module to write hyperlinks
5
- #
6
- # See also hyperlink2.pl for worksheet URL examples.
7
- #
8
- # reverse('©'), March 2001, John McNamara, jmcnamara@cpan.org
9
- #
10
- # original written in Perl by John McNamara
11
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
- #
13
- require 'rubygems'
14
- require 'writeexcel'
15
-
16
- # Create a new workbook and add a worksheet
17
- workbook = Spreadsheet::WriteExcel.new("hyperlink.xls")
18
- worksheet = workbook.add_worksheet('Hyperlinks')
19
-
20
- # Format the first column
21
- worksheet.set_column('A:A', 30)
22
- worksheet.set_selection('B1')
23
-
24
-
25
- # Add a sample format
26
- format = workbook.add_format
27
- format.set_size(12)
28
- format.set_bold
29
- format.set_color('red')
30
- format.set_underline
31
-
32
-
33
- # Write some hyperlinks
34
- worksheet.write('A1', 'http://www.perl.com/' )
35
- worksheet.write('A3', 'http://www.perl.com/', 'Perl home' )
36
- worksheet.write('A5', 'http://www.perl.com/', nil, format)
37
- worksheet.write('A7', 'mailto:jmcnamara@cpan.org', 'Mail me')
38
-
39
- # Write a URL that isn't a hyperlink
40
- worksheet.write_string('A9', 'http://www.perl.com/')
41
-
42
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+ ###############################################################################
3
+ #
4
+ # Example of how to use the WriteExcel module to write hyperlinks
5
+ #
6
+ # See also hyperlink2.pl for worksheet URL examples.
7
+ #
8
+ # reverse('©'), March 2001, John McNamara, jmcnamara@cpan.org
9
+ #
10
+ # original written in Perl by John McNamara
11
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
+ #
13
+ require 'rubygems'
14
+ require 'writeexcel'
15
+
16
+ # Create a new workbook and add a worksheet
17
+ workbook = WriteExcel.new("hyperlink.xls")
18
+ worksheet = workbook.add_worksheet('Hyperlinks')
19
+
20
+ # Format the first column
21
+ worksheet.set_column('A:A', 30)
22
+ worksheet.set_selection('B1')
23
+
24
+
25
+ # Add a sample format
26
+ format = workbook.add_format
27
+ format.set_size(12)
28
+ format.set_bold
29
+ format.set_color('red')
30
+ format.set_underline
31
+
32
+
33
+ # Write some hyperlinks
34
+ worksheet.write('A1', 'http://www.perl.com/' )
35
+ worksheet.write('A3', 'http://www.perl.com/', 'Perl home' )
36
+ worksheet.write('A5', 'http://www.perl.com/', nil, format)
37
+ worksheet.write('A7', 'mailto:jmcnamara@cpan.org', 'Mail me')
38
+
39
+ # Write a URL that isn't a hyperlink
40
+ worksheet.write_string('A9', 'http://www.perl.com/')
41
+
42
+ workbook.close
data/examples/images.rb CHANGED
@@ -1,52 +1,52 @@
1
- #!/usr/bin/ruby -w
2
-
3
- #######################################################################
4
- #
5
- # Example of how to insert images into an Excel worksheet using the
6
- # Spreadsheet::WriteExcel insert_image() method.
7
- #
8
- # reverse('©'), October 2001, John McNamara, jmcnamara@cpan.org
9
- #
10
- # original written in Perl by John McNamara
11
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
- #
13
-
14
- require 'rubygems'
15
- require 'writeexcel'
16
-
17
- # Create a new workbook called simple.xls and add a worksheet
18
- workbook = Spreadsheet::WriteExcel.new("images.xls")
19
- worksheet1 = workbook.add_worksheet('Image 1')
20
- worksheet2 = workbook.add_worksheet('Image 2')
21
- worksheet3 = workbook.add_worksheet('Image 3')
22
- worksheet4 = workbook.add_worksheet('Image 4')
23
- bp=1
24
-
25
- # Insert a basic image
26
- worksheet1.write('A10', "Image inserted into worksheet.")
27
- worksheet1.insert_image('A1', 'republic.png')
28
-
29
-
30
- # Insert an image with an offset
31
- worksheet2.write('A10', "Image inserted with an offset.")
32
- worksheet2.insert_image('A1', 'republic.png', 32, 10)
33
-
34
- # Insert a scaled image
35
- worksheet3.write('A10', "Image scaled: width x 2, height x 0.8.")
36
- worksheet3.insert_image('A1', 'republic.png', 0, 0, 2, 0.8)
37
-
38
- # Insert an image over varied column and row sizes
39
- # This does not require any additional work
40
-
41
- # Set the cols and row sizes
42
- # NOTE: you must do this before you call insert_image()
43
- worksheet4.set_column('A:A', 5)
44
- worksheet4.set_column('B:B', nil, nil, 1) # Hidden
45
- worksheet4.set_column('C:D', 10)
46
- worksheet4.set_row(0, 30)
47
- worksheet4.set_row(3, 5)
48
-
49
- worksheet4.write('A10', "Image inserted over scaled rows and columns.")
50
- worksheet4.insert_image('A1', 'republic.png')
51
-
52
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+
3
+ #######################################################################
4
+ #
5
+ # Example of how to insert images into an Excel worksheet using the
6
+ # WriteExcel insert_image() method.
7
+ #
8
+ # reverse('©'), October 2001, John McNamara, jmcnamara@cpan.org
9
+ #
10
+ # original written in Perl by John McNamara
11
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
+ #
13
+
14
+ require 'rubygems'
15
+ require 'writeexcel'
16
+
17
+ # Create a new workbook called simple.xls and add a worksheet
18
+ workbook = WriteExcel.new("images.xls")
19
+ worksheet1 = workbook.add_worksheet('Image 1')
20
+ worksheet2 = workbook.add_worksheet('Image 2')
21
+ worksheet3 = workbook.add_worksheet('Image 3')
22
+ worksheet4 = workbook.add_worksheet('Image 4')
23
+ bp=1
24
+
25
+ # Insert a basic image
26
+ worksheet1.write('A10', "Image inserted into worksheet.")
27
+ worksheet1.insert_image('A1', 'republic.png')
28
+
29
+
30
+ # Insert an image with an offset
31
+ worksheet2.write('A10', "Image inserted with an offset.")
32
+ worksheet2.insert_image('A1', 'republic.png', 32, 10)
33
+
34
+ # Insert a scaled image
35
+ worksheet3.write('A10', "Image scaled: width x 2, height x 0.8.")
36
+ worksheet3.insert_image('A1', 'republic.png', 0, 0, 2, 0.8)
37
+
38
+ # Insert an image over varied column and row sizes
39
+ # This does not require any additional work
40
+
41
+ # Set the cols and row sizes
42
+ # NOTE: you must do this before you call insert_image()
43
+ worksheet4.set_column('A:A', 5)
44
+ worksheet4.set_column('B:B', nil, nil, 1) # Hidden
45
+ worksheet4.set_column('C:D', 10)
46
+ worksheet4.set_row(0, 30)
47
+ worksheet4.set_row(3, 5)
48
+
49
+ worksheet4.write('A10', "Image inserted over scaled rows and columns.")
50
+ worksheet4.insert_image('A1', 'republic.png')
51
+
52
+ workbook.close