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.
- data/README +26 -31
- data/examples/a_simple.rb +42 -42
- data/examples/{autofilters.rb → autofilter.rb} +264 -266
- data/examples/bigfile.rb +29 -0
- data/examples/chart_area.rb +120 -0
- data/examples/chart_bar.rb +119 -0
- data/examples/chart_column.rb +119 -0
- data/examples/chart_line.rb +119 -0
- data/examples/chart_pie.rb +107 -0
- data/examples/chart_scatter.rb +120 -0
- data/examples/chart_stock.rb +147 -0
- data/examples/copyformat.rb +51 -51
- data/examples/data_validate.rb +278 -278
- data/examples/date_time.rb +86 -86
- data/examples/defined_name.rb +31 -0
- data/examples/demo.rb +120 -118
- data/examples/diag_border.rb +35 -35
- data/examples/formats.rb +489 -489
- data/examples/header.rb +136 -136
- data/examples/hidden.rb +28 -28
- data/examples/hyperlink.rb +42 -42
- data/examples/images.rb +52 -52
- data/examples/merge1.rb +39 -39
- data/examples/merge2.rb +44 -44
- data/examples/merge3.rb +65 -65
- data/examples/merge4.rb +82 -82
- data/examples/merge5.rb +79 -79
- data/examples/properties.rb +33 -0
- data/examples/properties_jp.rb +32 -0
- data/examples/protection.rb +46 -46
- data/examples/regions.rb +52 -52
- data/examples/repeat.rb +42 -42
- data/examples/stats.rb +75 -75
- data/examples/stocks.rb +80 -80
- data/examples/tab_colors.rb +30 -30
- data/examples/write_arrays.rb +82 -0
- data/lib/writeexcel.rb +1134 -18
- data/lib/writeexcel/biffwriter.rb +273 -260
- data/lib/writeexcel/chart.rb +2306 -217
- data/lib/writeexcel/charts/area.rb +152 -0
- data/lib/writeexcel/charts/bar.rb +177 -0
- data/lib/writeexcel/charts/column.rb +156 -0
- data/lib/writeexcel/charts/external.rb +61 -0
- data/lib/writeexcel/charts/line.rb +152 -0
- data/lib/writeexcel/charts/pie.rb +169 -0
- data/lib/writeexcel/charts/scatter.rb +192 -0
- data/lib/writeexcel/charts/stock.rb +211 -0
- data/lib/writeexcel/excelformulaparser.rb +208 -195
- data/lib/writeexcel/format.rb +1697 -1108
- data/lib/writeexcel/formula.rb +1050 -986
- data/lib/writeexcel/olewriter.rb +322 -322
- data/lib/writeexcel/properties.rb +251 -250
- data/lib/writeexcel/storage_lite.rb +968 -0
- data/lib/writeexcel/workbook.rb +3294 -2630
- data/lib/writeexcel/worksheet.rb +9012 -6377
- data/test/excelfile/Chart1.xls +0 -0
- data/test/excelfile/Chart2.xls +0 -0
- data/test/excelfile/Chart3.xls +0 -0
- data/test/excelfile/Chart4.xls +0 -0
- data/test/excelfile/Chart5.xls +0 -0
- data/test/perl_output/Chart1.xls.data +0 -0
- data/test/perl_output/Chart2.xls.data +0 -0
- data/test/perl_output/Chart3.xls.data +0 -0
- data/test/perl_output/Chart4.xls.data +0 -0
- data/test/perl_output/Chart5.xls.data +0 -0
- data/test/perl_output/a_simple.xls +0 -0
- data/test/perl_output/autofilter.xls +0 -0
- data/test/perl_output/chart_area.xls +0 -0
- data/test/perl_output/chart_bar.xls +0 -0
- data/test/perl_output/chart_column.xls +0 -0
- data/test/perl_output/chart_line.xls +0 -0
- data/test/perl_output/data_validate.xls +0 -0
- data/test/perl_output/date_time.xls +0 -0
- data/test/perl_output/demo.xls +0 -0
- data/test/perl_output/demo101.bin +0 -0
- data/test/perl_output/demo201.bin +0 -0
- data/test/perl_output/demo301.bin +0 -0
- data/test/perl_output/demo401.bin +0 -0
- data/test/perl_output/demo501.bin +0 -0
- data/test/perl_output/diag_border.xls +0 -0
- data/test/perl_output/headers.xls +0 -0
- data/test/perl_output/hyperlink.xls +0 -0
- data/test/perl_output/images.xls +0 -0
- data/test/perl_output/merge1.xls +0 -0
- data/test/perl_output/merge2.xls +0 -0
- data/test/perl_output/merge3.xls +0 -0
- data/test/perl_output/merge4.xls +0 -0
- data/test/perl_output/merge5.xls +0 -0
- data/test/perl_output/protection.xls +0 -0
- data/test/perl_output/regions.xls +0 -0
- data/test/perl_output/stats.xls +0 -0
- data/test/perl_output/stocks.xls +0 -0
- data/test/perl_output/tab_colors.xls +0 -0
- data/test/perl_output/unicode_cyrillic.xls +0 -0
- data/test/perl_output/workbook1.xls +0 -0
- data/test/perl_output/workbook2.xls +0 -0
- data/test/tc_all.rb +32 -31
- data/test/tc_biff.rb +104 -104
- data/test/tc_chart.rb +22 -22
- data/test/tc_example_match.rb +1944 -1280
- data/test/tc_format.rb +1254 -1267
- data/test/tc_formula.rb +63 -63
- data/test/tc_ole.rb +110 -110
- data/test/tc_storage_lite.rb +149 -0
- data/test/tc_workbook.rb +140 -115
- data/test/tc_worksheet.rb +115 -115
- data/test/test_00_IEEE_double.rb +14 -14
- data/test/test_01_add_worksheet.rb +12 -12
- data/test/test_02_merge_formats.rb +58 -58
- data/test/test_04_dimensions.rb +397 -397
- data/test/test_05_rows.rb +182 -182
- data/test/test_06_extsst.rb +80 -80
- data/test/test_11_date_time.rb +484 -484
- data/test/test_12_date_only.rb +506 -506
- data/test/test_13_date_seconds.rb +486 -486
- data/test/test_21_escher.rb +642 -629
- data/test/test_22_mso_drawing_group.rb +750 -739
- data/test/test_23_note.rb +78 -78
- data/test/test_24_txo.rb +80 -80
- data/test/test_25_position_object.rb +82 -0
- data/test/test_26_autofilter.rb +327 -327
- data/test/test_27_autofilter.rb +144 -144
- data/test/test_28_autofilter.rb +174 -174
- data/test/test_29_process_jpg.rb +681 -131
- data/test/test_30_validation_dval.rb +82 -82
- data/test/test_31_validation_dv_strings.rb +131 -131
- data/test/test_32_validation_dv_formula.rb +211 -211
- data/test/test_40_property_types.rb +191 -191
- data/test/test_41_properties.rb +238 -238
- data/test/test_42_set_properties.rb +442 -419
- data/test/test_50_name_stored.rb +305 -0
- data/test/test_51_name_print_area.rb +363 -0
- data/test/test_52_name_print_titles.rb +460 -0
- data/test/test_53_autofilter.rb +209 -0
- data/test/test_60_chart_generic.rb +576 -0
- data/test/test_61_chart_subclasses.rb +97 -0
- data/test/test_62_chart_formats.rb +270 -0
- data/test/test_63_chart_area_formats.rb +647 -0
- data/test/test_chartex.rb +35 -0
- data/test/ts_all.rb +46 -34
- data/writeexcel.gemspec +18 -0
- data/writeexcel.rdoc +583 -0
- metadata +162 -108
data/examples/stats.rb
CHANGED
@@ -1,75 +1,75 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
|
3
|
-
###############################################################################
|
4
|
-
#
|
5
|
-
# This is a simple example of how to use functions with the
|
6
|
-
#
|
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
|
-
|
14
|
-
require 'rubygems'
|
15
|
-
require 'writeexcel'
|
16
|
-
include Spreadsheet
|
17
|
-
xlsfile = 'stats.xls'
|
18
|
-
|
19
|
-
workbook =
|
20
|
-
worksheet = workbook.add_worksheet('Test data')
|
21
|
-
|
22
|
-
# Set the column width for columns 1
|
23
|
-
worksheet.set_column(0, 0, 20)
|
24
|
-
|
25
|
-
|
26
|
-
# Create a format for the headings
|
27
|
-
format = workbook.add_format
|
28
|
-
format.set_bold
|
29
|
-
|
30
|
-
|
31
|
-
# Write the sample data
|
32
|
-
worksheet.write(0, 0, 'Sample', format)
|
33
|
-
worksheet.write(0, 1, 1)
|
34
|
-
worksheet.write(0, 2, 2)
|
35
|
-
worksheet.write(0, 3, 3)
|
36
|
-
worksheet.write(0, 4, 4)
|
37
|
-
worksheet.write(0, 5, 5)
|
38
|
-
worksheet.write(0, 6, 6)
|
39
|
-
worksheet.write(0, 7, 7)
|
40
|
-
worksheet.write(0, 8, 8)
|
41
|
-
|
42
|
-
worksheet.write(1, 0, 'Length', format)
|
43
|
-
worksheet.write(1, 1, 25.4)
|
44
|
-
worksheet.write(1, 2, 25.4)
|
45
|
-
worksheet.write(1, 3, 24.8)
|
46
|
-
worksheet.write(1, 4, 25.0)
|
47
|
-
worksheet.write(1, 5, 25.3)
|
48
|
-
worksheet.write(1, 6, 24.9)
|
49
|
-
worksheet.write(1, 7, 25.2)
|
50
|
-
worksheet.write(1, 8, 24.8)
|
51
|
-
|
52
|
-
# Write some statistical functions
|
53
|
-
worksheet.write(4, 0, 'Count', format)
|
54
|
-
worksheet.write(4, 1, '=COUNT(B1:I1)')
|
55
|
-
|
56
|
-
worksheet.write(5, 0, 'Sum', format)
|
57
|
-
worksheet.write(5, 1, '=SUM(B2:I2)')
|
58
|
-
|
59
|
-
worksheet.write(6, 0, 'Average', format)
|
60
|
-
worksheet.write(6, 1, '=AVERAGE(B2:I2)')
|
61
|
-
|
62
|
-
worksheet.write(7, 0, 'Min', format)
|
63
|
-
worksheet.write(7, 1, '=MIN(B2:I2)')
|
64
|
-
|
65
|
-
worksheet.write(8, 0, 'Max', format)
|
66
|
-
worksheet.write(8, 1, '=MAX(B2:I2)')
|
67
|
-
|
68
|
-
worksheet.write(9, 0, 'Standard Deviation', format)
|
69
|
-
worksheet.write(9, 1, '=STDEV(B2:I2)')
|
70
|
-
|
71
|
-
worksheet.write(10, 0, 'Kurtosis', format)
|
72
|
-
worksheet.write(10, 1, '=KURT(B2:I2)')
|
73
|
-
|
74
|
-
workbook.close
|
75
|
-
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
###############################################################################
|
4
|
+
#
|
5
|
+
# This is a simple example of how to use functions with the
|
6
|
+
# WriteExcel module.
|
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
|
+
|
14
|
+
require 'rubygems'
|
15
|
+
require 'writeexcel'
|
16
|
+
include Spreadsheet
|
17
|
+
xlsfile = 'stats.xls'
|
18
|
+
|
19
|
+
workbook = WriteExcel.new(xlsfile)
|
20
|
+
worksheet = workbook.add_worksheet('Test data')
|
21
|
+
|
22
|
+
# Set the column width for columns 1
|
23
|
+
worksheet.set_column(0, 0, 20)
|
24
|
+
|
25
|
+
|
26
|
+
# Create a format for the headings
|
27
|
+
format = workbook.add_format
|
28
|
+
format.set_bold
|
29
|
+
|
30
|
+
|
31
|
+
# Write the sample data
|
32
|
+
worksheet.write(0, 0, 'Sample', format)
|
33
|
+
worksheet.write(0, 1, 1)
|
34
|
+
worksheet.write(0, 2, 2)
|
35
|
+
worksheet.write(0, 3, 3)
|
36
|
+
worksheet.write(0, 4, 4)
|
37
|
+
worksheet.write(0, 5, 5)
|
38
|
+
worksheet.write(0, 6, 6)
|
39
|
+
worksheet.write(0, 7, 7)
|
40
|
+
worksheet.write(0, 8, 8)
|
41
|
+
|
42
|
+
worksheet.write(1, 0, 'Length', format)
|
43
|
+
worksheet.write(1, 1, 25.4)
|
44
|
+
worksheet.write(1, 2, 25.4)
|
45
|
+
worksheet.write(1, 3, 24.8)
|
46
|
+
worksheet.write(1, 4, 25.0)
|
47
|
+
worksheet.write(1, 5, 25.3)
|
48
|
+
worksheet.write(1, 6, 24.9)
|
49
|
+
worksheet.write(1, 7, 25.2)
|
50
|
+
worksheet.write(1, 8, 24.8)
|
51
|
+
|
52
|
+
# Write some statistical functions
|
53
|
+
worksheet.write(4, 0, 'Count', format)
|
54
|
+
worksheet.write(4, 1, '=COUNT(B1:I1)')
|
55
|
+
|
56
|
+
worksheet.write(5, 0, 'Sum', format)
|
57
|
+
worksheet.write(5, 1, '=SUM(B2:I2)')
|
58
|
+
|
59
|
+
worksheet.write(6, 0, 'Average', format)
|
60
|
+
worksheet.write(6, 1, '=AVERAGE(B2:I2)')
|
61
|
+
|
62
|
+
worksheet.write(7, 0, 'Min', format)
|
63
|
+
worksheet.write(7, 1, '=MIN(B2:I2)')
|
64
|
+
|
65
|
+
worksheet.write(8, 0, 'Max', format)
|
66
|
+
worksheet.write(8, 1, '=MAX(B2:I2)')
|
67
|
+
|
68
|
+
worksheet.write(9, 0, 'Standard Deviation', format)
|
69
|
+
worksheet.write(9, 1, '=STDEV(B2:I2)')
|
70
|
+
|
71
|
+
worksheet.write(10, 0, 'Kurtosis', format)
|
72
|
+
worksheet.write(10, 1, '=KURT(B2:I2)')
|
73
|
+
|
74
|
+
workbook.close
|
75
|
+
|
data/examples/stocks.rb
CHANGED
@@ -1,80 +1,80 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
|
3
|
-
###############################################################################
|
4
|
-
#
|
5
|
-
# Example of formatting using the
|
6
|
-
#
|
7
|
-
# This example shows how to use a conditional numerical format
|
8
|
-
# with colours to indicate if a share price has gone up or down.
|
9
|
-
#
|
10
|
-
# reverse('©'), March 2001, John McNamara, jmcnamara@cpan.org
|
11
|
-
#
|
12
|
-
# original written in Perl by John McNamara
|
13
|
-
# converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
|
14
|
-
#
|
15
|
-
|
16
|
-
require 'rubygems'
|
17
|
-
require 'writeexcel'
|
18
|
-
|
19
|
-
# Create a new workbook and add a worksheet
|
20
|
-
workbook =
|
21
|
-
worksheet = workbook.add_worksheet
|
22
|
-
|
23
|
-
# Set the column width for columns 1, 2, 3 and 4
|
24
|
-
worksheet.set_column(0, 3, 15)
|
25
|
-
|
26
|
-
|
27
|
-
# Create a format for the column headings
|
28
|
-
header = workbook.add_format
|
29
|
-
header.set_bold
|
30
|
-
header.set_size(12)
|
31
|
-
header.set_color('blue')
|
32
|
-
|
33
|
-
|
34
|
-
# Create a format for the stock price
|
35
|
-
f_price = workbook.add_format
|
36
|
-
f_price.set_align('left')
|
37
|
-
f_price.set_num_format('$0.00')
|
38
|
-
|
39
|
-
|
40
|
-
# Create a format for the stock volume
|
41
|
-
f_volume = workbook.add_format
|
42
|
-
f_volume.set_align('left')
|
43
|
-
f_volume.set_num_format('#,##0')
|
44
|
-
|
45
|
-
|
46
|
-
# Create a format for the price change. This is an example of a conditional
|
47
|
-
# format. The number is formatted as a percentage. If it is positive it is
|
48
|
-
# formatted in green, if it is negative it is formatted in red and if it is
|
49
|
-
# zero it is formatted as the default font colour (in this case black).
|
50
|
-
# Note: the [Green] format produces an unappealing lime green. Try
|
51
|
-
# [Color 10] instead for a dark green.
|
52
|
-
#
|
53
|
-
f_change = workbook.add_format
|
54
|
-
f_change.set_align('left')
|
55
|
-
f_change.set_num_format('[Green]0.0%;[Red]-0.0%;0.0%')
|
56
|
-
|
57
|
-
|
58
|
-
# Write out the data
|
59
|
-
worksheet.write(0, 0, 'Company', header)
|
60
|
-
worksheet.write(0, 1, 'Price', header)
|
61
|
-
worksheet.write(0, 2, 'Volume', header)
|
62
|
-
worksheet.write(0, 3, 'Change', header)
|
63
|
-
|
64
|
-
worksheet.write(1, 0, 'Damage Inc.' )
|
65
|
-
worksheet.write(1, 1, 30.25, f_price) # $30.25
|
66
|
-
worksheet.write(1, 2, 1234567, f_volume) # 1,234,567
|
67
|
-
worksheet.write(1, 3, 0.085, f_change) # 8.5% in green
|
68
|
-
|
69
|
-
worksheet.write(2, 0, 'Dump Corp.' )
|
70
|
-
worksheet.write(2, 1, 1.56, f_price) # $1.56
|
71
|
-
worksheet.write(2, 2, 7564, f_volume) # 7,564
|
72
|
-
worksheet.write(2, 3, -0.015, f_change) # -1.5% in red
|
73
|
-
|
74
|
-
worksheet.write(3, 0, 'Rev Ltd.' )
|
75
|
-
worksheet.write(3, 1, 0.13, f_price) # $0.13
|
76
|
-
worksheet.write(3, 2, 321, f_volume) # 321
|
77
|
-
worksheet.write(3, 3, 0, f_change) # 0 in the font color (black)
|
78
|
-
|
79
|
-
|
80
|
-
workbook.close
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
###############################################################################
|
4
|
+
#
|
5
|
+
# Example of formatting using the WriteExcel module
|
6
|
+
#
|
7
|
+
# This example shows how to use a conditional numerical format
|
8
|
+
# with colours to indicate if a share price has gone up or down.
|
9
|
+
#
|
10
|
+
# reverse('©'), March 2001, John McNamara, jmcnamara@cpan.org
|
11
|
+
#
|
12
|
+
# original written in Perl by John McNamara
|
13
|
+
# converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
|
14
|
+
#
|
15
|
+
|
16
|
+
require 'rubygems'
|
17
|
+
require 'writeexcel'
|
18
|
+
|
19
|
+
# Create a new workbook and add a worksheet
|
20
|
+
workbook = WriteExcel.new("stocks.xls")
|
21
|
+
worksheet = workbook.add_worksheet
|
22
|
+
|
23
|
+
# Set the column width for columns 1, 2, 3 and 4
|
24
|
+
worksheet.set_column(0, 3, 15)
|
25
|
+
|
26
|
+
|
27
|
+
# Create a format for the column headings
|
28
|
+
header = workbook.add_format
|
29
|
+
header.set_bold
|
30
|
+
header.set_size(12)
|
31
|
+
header.set_color('blue')
|
32
|
+
|
33
|
+
|
34
|
+
# Create a format for the stock price
|
35
|
+
f_price = workbook.add_format
|
36
|
+
f_price.set_align('left')
|
37
|
+
f_price.set_num_format('$0.00')
|
38
|
+
|
39
|
+
|
40
|
+
# Create a format for the stock volume
|
41
|
+
f_volume = workbook.add_format
|
42
|
+
f_volume.set_align('left')
|
43
|
+
f_volume.set_num_format('#,##0')
|
44
|
+
|
45
|
+
|
46
|
+
# Create a format for the price change. This is an example of a conditional
|
47
|
+
# format. The number is formatted as a percentage. If it is positive it is
|
48
|
+
# formatted in green, if it is negative it is formatted in red and if it is
|
49
|
+
# zero it is formatted as the default font colour (in this case black).
|
50
|
+
# Note: the [Green] format produces an unappealing lime green. Try
|
51
|
+
# [Color 10] instead for a dark green.
|
52
|
+
#
|
53
|
+
f_change = workbook.add_format
|
54
|
+
f_change.set_align('left')
|
55
|
+
f_change.set_num_format('[Green]0.0%;[Red]-0.0%;0.0%')
|
56
|
+
|
57
|
+
|
58
|
+
# Write out the data
|
59
|
+
worksheet.write(0, 0, 'Company', header)
|
60
|
+
worksheet.write(0, 1, 'Price', header)
|
61
|
+
worksheet.write(0, 2, 'Volume', header)
|
62
|
+
worksheet.write(0, 3, 'Change', header)
|
63
|
+
|
64
|
+
worksheet.write(1, 0, 'Damage Inc.' )
|
65
|
+
worksheet.write(1, 1, 30.25, f_price) # $30.25
|
66
|
+
worksheet.write(1, 2, 1234567, f_volume) # 1,234,567
|
67
|
+
worksheet.write(1, 3, 0.085, f_change) # 8.5% in green
|
68
|
+
|
69
|
+
worksheet.write(2, 0, 'Dump Corp.' )
|
70
|
+
worksheet.write(2, 1, 1.56, f_price) # $1.56
|
71
|
+
worksheet.write(2, 2, 7564, f_volume) # 7,564
|
72
|
+
worksheet.write(2, 3, -0.015, f_change) # -1.5% in red
|
73
|
+
|
74
|
+
worksheet.write(3, 0, 'Rev Ltd.' )
|
75
|
+
worksheet.write(3, 1, 0.13, f_price) # $0.13
|
76
|
+
worksheet.write(3, 2, 321, f_volume) # 321
|
77
|
+
worksheet.write(3, 3, 0, f_change) # 0 in the font color (black)
|
78
|
+
|
79
|
+
|
80
|
+
workbook.close
|
data/examples/tab_colors.rb
CHANGED
@@ -1,30 +1,30 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
|
3
|
-
#######################################################################
|
4
|
-
#
|
5
|
-
# Example of how to set Excel worksheet tab colours.
|
6
|
-
#
|
7
|
-
# reverse('©'), May 2006, 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
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'writeexcel'
|
15
|
-
|
16
|
-
workbook =
|
17
|
-
|
18
|
-
worksheet1 = workbook.add_worksheet
|
19
|
-
worksheet2 = workbook.add_worksheet
|
20
|
-
worksheet3 = workbook.add_worksheet
|
21
|
-
worksheet4 = workbook.add_worksheet
|
22
|
-
|
23
|
-
# Worsheet1 will have the default tab colour.
|
24
|
-
worksheet2.set_tab_color('red')
|
25
|
-
worksheet3.set_tab_color('green')
|
26
|
-
worksheet4.set_tab_color(0x35) # Orange
|
27
|
-
|
28
|
-
workbook.close
|
29
|
-
|
30
|
-
workbook.close
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
#######################################################################
|
4
|
+
#
|
5
|
+
# Example of how to set Excel worksheet tab colours.
|
6
|
+
#
|
7
|
+
# reverse('©'), May 2006, 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
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'writeexcel'
|
15
|
+
|
16
|
+
workbook = WriteExcel.new('tab_colors.xls')
|
17
|
+
|
18
|
+
worksheet1 = workbook.add_worksheet
|
19
|
+
worksheet2 = workbook.add_worksheet
|
20
|
+
worksheet3 = workbook.add_worksheet
|
21
|
+
worksheet4 = workbook.add_worksheet
|
22
|
+
|
23
|
+
# Worsheet1 will have the default tab colour.
|
24
|
+
worksheet2.set_tab_color('red')
|
25
|
+
worksheet3.set_tab_color('green')
|
26
|
+
worksheet4.set_tab_color(0x35) # Orange
|
27
|
+
|
28
|
+
workbook.close
|
29
|
+
|
30
|
+
workbook.close
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
#######################################################################
|
4
|
+
#
|
5
|
+
# Example of how to use the WriteExcel module to
|
6
|
+
# write 1D and 2D arrays of data.
|
7
|
+
#
|
8
|
+
require 'rubygems'
|
9
|
+
require 'writeexcel'
|
10
|
+
|
11
|
+
workbook = WriteExcel.new("write_arrays.xls")
|
12
|
+
worksheet1 = workbook.add_worksheet('Example 1')
|
13
|
+
worksheet2 = workbook.add_worksheet('Example 2')
|
14
|
+
worksheet3 = workbook.add_worksheet('Example 3')
|
15
|
+
worksheet4 = workbook.add_worksheet('Example 4')
|
16
|
+
worksheet5 = workbook.add_worksheet('Example 5')
|
17
|
+
worksheet6 = workbook.add_worksheet('Example 6')
|
18
|
+
worksheet7 = workbook.add_worksheet('Example 7')
|
19
|
+
worksheet8 = workbook.add_worksheet('Example 8')
|
20
|
+
|
21
|
+
format = workbook.add_format(:color => 'red', :bold => 1)
|
22
|
+
format_cmd = workbook.add_format(:color => 'blue', :bold => 1)
|
23
|
+
# Data arrays used in the following examples.
|
24
|
+
# undef values are written as blank cells (with format if specified).
|
25
|
+
#
|
26
|
+
array = [ 'one', 'two', nil, 'four' ]
|
27
|
+
|
28
|
+
array2d = [
|
29
|
+
['maggie', 'milly', 'molly', 'may' ],
|
30
|
+
[13, 14, 15, 16 ],
|
31
|
+
['shell', 'star', 'crab', 'stone'],
|
32
|
+
]
|
33
|
+
|
34
|
+
# 1. Write a row of data using an array.
|
35
|
+
#
|
36
|
+
# array[0] array[1] array[2]
|
37
|
+
worksheet1.write('A1', "worksheet1.write('A3', array)", format_cmd)
|
38
|
+
worksheet1.write('A3', array)
|
39
|
+
|
40
|
+
# 2. Write a data using an array of array.
|
41
|
+
#
|
42
|
+
# array[0]
|
43
|
+
# array[1]
|
44
|
+
# array[2]
|
45
|
+
worksheet2.write('A1', "worksheet2.write('A3', [ array ])", format_cmd)
|
46
|
+
worksheet2.write('A3', [ array ])
|
47
|
+
|
48
|
+
# 3. Write a row of data using an explicit write_row() method call.
|
49
|
+
# This is the same as calling write() in Ex. 1 above.
|
50
|
+
#
|
51
|
+
worksheet3.write('A1', "worksheet3.write_row('A3', array)", format_cmd)
|
52
|
+
worksheet3.write_row('A3', array)
|
53
|
+
|
54
|
+
# 4. Write a column of data using the write_col() method call.
|
55
|
+
# This is same as Ex. 2 above.
|
56
|
+
worksheet4.write('A1', "worksheet4.write_col('A3', array)", format_cmd)
|
57
|
+
worksheet4.write_col('A3', array)
|
58
|
+
|
59
|
+
# 5. Write a 2D array in col-row order.
|
60
|
+
# array[0][0] array[1][0] ...
|
61
|
+
# array[0][1] array[1][1] ...
|
62
|
+
# array[0][2] array[1][2] ...
|
63
|
+
worksheet5.write('A1', "worksheet5.write('A3', array2d)", format_cmd)
|
64
|
+
worksheet5.write('A3', array2d)
|
65
|
+
|
66
|
+
# 6. Write a 2D array in row-col order using array of 2D array.
|
67
|
+
# array[0][0] array[0][1] ...
|
68
|
+
# array[1][0] array[1][1] ...
|
69
|
+
# array[2][0] array[2][1] ...
|
70
|
+
worksheet6.write('A1', "worksheet6.write('A3', [ array2d ] )", format_cmd)
|
71
|
+
worksheet6.write('A3', [ array2d ] )
|
72
|
+
|
73
|
+
# 7. Write a 2D array in row-col order using write_col().
|
74
|
+
# This is same as Ex. 6 above.
|
75
|
+
worksheet7.write('A1', "worksheet7.write_col('A3', array2d)", format_cmd)
|
76
|
+
worksheet7.write_col('A3', array2d)
|
77
|
+
|
78
|
+
# 8. Write a row of data with formatting. The blank cell is also formatted.
|
79
|
+
worksheet8.write('A1', "worksheet8.write('A3', array, format)", format_cmd)
|
80
|
+
worksheet8.write('A3', array, format)
|
81
|
+
|
82
|
+
workbook.close
|