ricardoo27-writeexcel 0.6.12.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.
- data/.document +5 -0
- data/.gitattributes +1 -0
- data/README.rdoc +136 -0
- data/Rakefile +52 -0
- data/VERSION +1 -0
- data/charts/chartex.rb +316 -0
- data/charts/demo1.rb +46 -0
- data/charts/demo101.bin +0 -0
- data/charts/demo2.rb +65 -0
- data/charts/demo201.bin +0 -0
- data/charts/demo3.rb +117 -0
- data/charts/demo301.bin +0 -0
- data/charts/demo4.rb +119 -0
- data/charts/demo401.bin +0 -0
- data/charts/demo5.rb +48 -0
- data/charts/demo501.bin +0 -0
- data/examples/a_simple.rb +43 -0
- data/examples/autofilter.rb +265 -0
- data/examples/bigfile.rb +30 -0
- data/examples/chart_area.rb +121 -0
- data/examples/chart_bar.rb +120 -0
- data/examples/chart_column.rb +120 -0
- data/examples/chart_line.rb +120 -0
- data/examples/chart_pie.rb +108 -0
- data/examples/chart_scatter.rb +121 -0
- data/examples/chart_stock.rb +148 -0
- data/examples/chess.rb +142 -0
- data/examples/colors.rb +129 -0
- data/examples/comments1.rb +27 -0
- data/examples/comments2.rb +352 -0
- data/examples/copyformat.rb +52 -0
- data/examples/data_validate.rb +279 -0
- data/examples/date_time.rb +87 -0
- data/examples/defined_name.rb +32 -0
- data/examples/demo.rb +124 -0
- data/examples/diag_border.rb +36 -0
- data/examples/formats.rb +490 -0
- data/examples/formula_result.rb +30 -0
- data/examples/header.rb +137 -0
- data/examples/hide_sheet.rb +29 -0
- data/examples/hyperlink.rb +43 -0
- data/examples/images.rb +63 -0
- data/examples/indent.rb +31 -0
- data/examples/merge1.rb +40 -0
- data/examples/merge2.rb +45 -0
- data/examples/merge3.rb +66 -0
- data/examples/merge4.rb +83 -0
- data/examples/merge5.rb +80 -0
- data/examples/merge6.rb +67 -0
- data/examples/outline.rb +255 -0
- data/examples/outline_collapsed.rb +209 -0
- data/examples/panes.rb +113 -0
- data/examples/password_protection.rb +33 -0
- data/examples/properties.rb +34 -0
- data/examples/properties_jp.rb +33 -0
- data/examples/protection.rb +47 -0
- data/examples/regions.rb +53 -0
- data/examples/repeat.rb +43 -0
- data/examples/republic.png +0 -0
- data/examples/right_to_left.rb +27 -0
- data/examples/row_wrap.rb +53 -0
- data/examples/set_first_sheet.rb +14 -0
- data/examples/stats.rb +74 -0
- data/examples/stocks.rb +81 -0
- data/examples/store_formula.rb +15 -0
- data/examples/tab_colors.rb +31 -0
- data/examples/utf8.rb +15 -0
- data/examples/write_arrays.rb +83 -0
- data/html/en/doc_en.html +5946 -0
- data/html/images/a_simple.jpg +0 -0
- data/html/images/area1.jpg +0 -0
- data/html/images/bar1.jpg +0 -0
- data/html/images/chart_area.xls +0 -0
- data/html/images/column1.jpg +0 -0
- data/html/images/data_validation.jpg +0 -0
- data/html/images/line1.jpg +0 -0
- data/html/images/pie1.jpg +0 -0
- data/html/images/regions.jpg +0 -0
- data/html/images/scatter1.jpg +0 -0
- data/html/images/stats.jpg +0 -0
- data/html/images/stock1.jpg +0 -0
- data/html/images/stocks.jpg +0 -0
- data/html/index.html +16 -0
- data/html/style.css +433 -0
- data/lib/writeexcel.rb +1159 -0
- data/lib/writeexcel/biffwriter.rb +223 -0
- data/lib/writeexcel/caller_info.rb +12 -0
- data/lib/writeexcel/cell_range.rb +332 -0
- data/lib/writeexcel/chart.rb +1968 -0
- data/lib/writeexcel/charts/area.rb +154 -0
- data/lib/writeexcel/charts/bar.rb +177 -0
- data/lib/writeexcel/charts/column.rb +156 -0
- data/lib/writeexcel/charts/external.rb +66 -0
- data/lib/writeexcel/charts/line.rb +154 -0
- data/lib/writeexcel/charts/pie.rb +169 -0
- data/lib/writeexcel/charts/scatter.rb +192 -0
- data/lib/writeexcel/charts/stock.rb +213 -0
- data/lib/writeexcel/col_info.rb +87 -0
- data/lib/writeexcel/colors.rb +68 -0
- data/lib/writeexcel/comments.rb +460 -0
- data/lib/writeexcel/compatibility.rb +65 -0
- data/lib/writeexcel/convert_date_time.rb +117 -0
- data/lib/writeexcel/data_validations.rb +370 -0
- data/lib/writeexcel/debug_info.rb +41 -0
- data/lib/writeexcel/embedded_chart.rb +35 -0
- data/lib/writeexcel/excelformula.y +139 -0
- data/lib/writeexcel/excelformulaparser.rb +587 -0
- data/lib/writeexcel/format.rb +1575 -0
- data/lib/writeexcel/formula.rb +987 -0
- data/lib/writeexcel/helper.rb +78 -0
- data/lib/writeexcel/image.rb +218 -0
- data/lib/writeexcel/olewriter.rb +305 -0
- data/lib/writeexcel/outline.rb +24 -0
- data/lib/writeexcel/properties.rb +242 -0
- data/lib/writeexcel/shared_string_table.rb +153 -0
- data/lib/writeexcel/storage_lite.rb +984 -0
- data/lib/writeexcel/workbook.rb +2478 -0
- data/lib/writeexcel/worksheet.rb +6925 -0
- data/lib/writeexcel/worksheets.rb +25 -0
- data/lib/writeexcel/write_file.rb +63 -0
- 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/helper.rb +31 -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/README +31 -0
- data/test/perl_output/a_simple.xls +0 -0
- data/test/perl_output/autofilter.xls +0 -0
- data/test/perl_output/biff_add_continue_testdata +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/chess.xls +0 -0
- data/test/perl_output/colors.xls +0 -0
- data/test/perl_output/comments0.xls +0 -0
- data/test/perl_output/comments1.xls +0 -0
- data/test/perl_output/comments2.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/defined_name.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/f_font_biff +0 -0
- data/test/perl_output/f_font_key +1 -0
- data/test/perl_output/f_xf_biff +0 -0
- data/test/perl_output/file_font_biff +0 -0
- data/test/perl_output/file_font_key +1 -0
- data/test/perl_output/file_xf_biff +0 -0
- data/test/perl_output/formula_result.xls +0 -0
- data/test/perl_output/headers.xls +0 -0
- data/test/perl_output/hidden.xls +0 -0
- data/test/perl_output/hide_zero.xls +0 -0
- data/test/perl_output/hyperlink.xls +0 -0
- data/test/perl_output/images.xls +0 -0
- data/test/perl_output/indent.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/merge6.xls +0 -0
- data/test/perl_output/ole_write_header +0 -0
- data/test/perl_output/outline.xls +0 -0
- data/test/perl_output/outline_collapsed.xls +0 -0
- data/test/perl_output/panes.xls +0 -0
- data/test/perl_output/password_protection.xls +0 -0
- data/test/perl_output/protection.xls +0 -0
- data/test/perl_output/regions.xls +0 -0
- data/test/perl_output/right_to_left.xls +0 -0
- data/test/perl_output/set_first_sheet.xls +0 -0
- data/test/perl_output/stats.xls +0 -0
- data/test/perl_output/stocks.xls +0 -0
- data/test/perl_output/store_formula.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/utf8.xls +0 -0
- data/test/perl_output/workbook1.xls +0 -0
- data/test/perl_output/workbook2.xls +0 -0
- data/test/perl_output/ws_colinfo +1 -0
- data/test/perl_output/ws_store_colinfo +0 -0
- data/test/perl_output/ws_store_dimensions +0 -0
- data/test/perl_output/ws_store_filtermode +0 -0
- data/test/perl_output/ws_store_filtermode_off +0 -0
- data/test/perl_output/ws_store_filtermode_on +0 -0
- data/test/perl_output/ws_store_selection +0 -0
- data/test/perl_output/ws_store_window2 +1 -0
- data/test/republic.png +0 -0
- data/test/test_00_IEEE_double.rb +13 -0
- data/test/test_01_add_worksheet.rb +10 -0
- data/test/test_02_merge_formats.rb +49 -0
- data/test/test_04_dimensions.rb +388 -0
- data/test/test_05_rows.rb +175 -0
- data/test/test_06_extsst.rb +74 -0
- data/test/test_11_date_time.rb +475 -0
- data/test/test_12_date_only.rb +525 -0
- data/test/test_13_date_seconds.rb +477 -0
- data/test/test_21_escher.rb +624 -0
- data/test/test_22_mso_drawing_group.rb +741 -0
- data/test/test_23_note.rb +57 -0
- data/test/test_24_txo.rb +74 -0
- data/test/test_25_position_object.rb +80 -0
- data/test/test_26_autofilter.rb +309 -0
- data/test/test_27_autofilter.rb +126 -0
- data/test/test_28_autofilter.rb +156 -0
- data/test/test_29_process_jpg.rb +670 -0
- data/test/test_30_validation_dval.rb +74 -0
- data/test/test_31_validation_dv_strings.rb +123 -0
- data/test/test_32_validation_dv_formula.rb +203 -0
- data/test/test_40_property_types.rb +188 -0
- data/test/test_41_properties.rb +235 -0
- data/test/test_42_set_properties.rb +434 -0
- data/test/test_50_name_stored.rb +295 -0
- data/test/test_51_name_print_area.rb +353 -0
- data/test/test_52_name_print_titles.rb +450 -0
- data/test/test_53_autofilter.rb +199 -0
- data/test/test_60_chart_generic.rb +574 -0
- data/test/test_61_chart_subclasses.rb +84 -0
- data/test/test_62_chart_formats.rb +268 -0
- data/test/test_63_chart_area_formats.rb +645 -0
- data/test/test_biff.rb +71 -0
- data/test/test_big_workbook.rb +17 -0
- data/test/test_compatibility.rb +12 -0
- data/test/test_example_match.rb +3246 -0
- data/test/test_format.rb +1189 -0
- data/test/test_formula.rb +61 -0
- data/test/test_ole.rb +102 -0
- data/test/test_storage_lite.rb +116 -0
- data/test/test_workbook.rb +146 -0
- data/test/test_worksheet.rb +106 -0
- data/utils/add_magic_comment.rb +80 -0
- data/writeexcel.gemspec +278 -0
- data/writeexcel.rdoc +1425 -0
- metadata +292 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
###############################################################################
|
|
5
|
+
#
|
|
6
|
+
# Example of how use Spreadsheet::WriteExcel to generate Excel outlines and
|
|
7
|
+
# grouping.
|
|
8
|
+
#
|
|
9
|
+
# These example focus mainly on collapsed outlines. See also the
|
|
10
|
+
# outlines.pl example program for more general examples.
|
|
11
|
+
#
|
|
12
|
+
# reverse('©'), March 2008, John McNamara, jmcnamara@cpan.org
|
|
13
|
+
#
|
|
14
|
+
# original written in Perl by John McNamara
|
|
15
|
+
# converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require 'writeexcel'
|
|
19
|
+
|
|
20
|
+
# Create a new workbook and add some worksheets
|
|
21
|
+
workbook = WriteExcel.new('outline_collapsed.xls')
|
|
22
|
+
worksheet1 = workbook.add_worksheet('Outlined Rows')
|
|
23
|
+
worksheet2 = workbook.add_worksheet('Collapsed Rows 1')
|
|
24
|
+
worksheet3 = workbook.add_worksheet('Collapsed Rows 2')
|
|
25
|
+
worksheet4 = workbook.add_worksheet('Collapsed Rows 3')
|
|
26
|
+
worksheet5 = workbook.add_worksheet('Outline Columns')
|
|
27
|
+
worksheet6 = workbook.add_worksheet('Collapsed Columns')
|
|
28
|
+
|
|
29
|
+
# Add a general format
|
|
30
|
+
bold = workbook.add_format(:bold => 1)
|
|
31
|
+
|
|
32
|
+
#
|
|
33
|
+
# This function will generate the same data and sub-totals on each worksheet.
|
|
34
|
+
#
|
|
35
|
+
def create_sub_totals(worksheet, bold)
|
|
36
|
+
# Add a column format for clarity
|
|
37
|
+
worksheet.set_column('A:A', 20)
|
|
38
|
+
|
|
39
|
+
# Add the data, labels and formulas
|
|
40
|
+
worksheet.write('A1', 'Region', bold)
|
|
41
|
+
worksheet.write('A2', 'North')
|
|
42
|
+
worksheet.write('A3', 'North')
|
|
43
|
+
worksheet.write('A4', 'North')
|
|
44
|
+
worksheet.write('A5', 'North')
|
|
45
|
+
worksheet.write('A6', 'North Total', bold)
|
|
46
|
+
|
|
47
|
+
worksheet.write('B1', 'Sales', bold)
|
|
48
|
+
worksheet.write('B2', 1000)
|
|
49
|
+
worksheet.write('B3', 1200)
|
|
50
|
+
worksheet.write('B4', 900)
|
|
51
|
+
worksheet.write('B5', 1200)
|
|
52
|
+
worksheet.write('B6', '=SUBTOTAL(9,B2:B5)', bold)
|
|
53
|
+
|
|
54
|
+
worksheet.write('A7', 'South')
|
|
55
|
+
worksheet.write('A8', 'South')
|
|
56
|
+
worksheet.write('A9', 'South')
|
|
57
|
+
worksheet.write('A10', 'South')
|
|
58
|
+
worksheet.write('A11', 'South Total', bold)
|
|
59
|
+
|
|
60
|
+
worksheet.write('B7', 400)
|
|
61
|
+
worksheet.write('B8', 600)
|
|
62
|
+
worksheet.write('B9', 500)
|
|
63
|
+
worksheet.write('B10', 600)
|
|
64
|
+
worksheet.write('B11', '=SUBTOTAL(9,B7:B10)', bold)
|
|
65
|
+
|
|
66
|
+
worksheet.write('A12', 'Grand Total', bold)
|
|
67
|
+
worksheet.write('B12', '=SUBTOTAL(9,B2:B10)', bold)
|
|
68
|
+
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
###############################################################################
|
|
73
|
+
#
|
|
74
|
+
# Example 1: Create a worksheet with outlined rows. It also includes SUBTOTAL()
|
|
75
|
+
# functions so that it looks like the type of automatic outlines that are
|
|
76
|
+
# generated when you use the Excel Data.SubTotals menu item.
|
|
77
|
+
#
|
|
78
|
+
|
|
79
|
+
# The syntax is: set_row(row, height, XF, hidden, level, collapsed)
|
|
80
|
+
worksheet1.set_row(1, nil, nil, 0, 2)
|
|
81
|
+
worksheet1.set_row(2, nil, nil, 0, 2)
|
|
82
|
+
worksheet1.set_row(3, nil, nil, 0, 2)
|
|
83
|
+
worksheet1.set_row(4, nil, nil, 0, 2)
|
|
84
|
+
worksheet1.set_row(5, nil, nil, 0, 1)
|
|
85
|
+
|
|
86
|
+
worksheet1.set_row(6, nil, nil, 0, 2)
|
|
87
|
+
worksheet1.set_row(7, nil, nil, 0, 2)
|
|
88
|
+
worksheet1.set_row(8, nil, nil, 0, 2)
|
|
89
|
+
worksheet1.set_row(9, nil, nil, 0, 2)
|
|
90
|
+
worksheet1.set_row(10, nil, nil, 0, 1)
|
|
91
|
+
|
|
92
|
+
# Write the sub-total data that is common to the row examples.
|
|
93
|
+
create_sub_totals(worksheet1, bold)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
###############################################################################
|
|
97
|
+
#
|
|
98
|
+
# Example 2: Create a worksheet with collapsed outlined rows.
|
|
99
|
+
# This is the same as the example 1 except that the all rows are collapsed.
|
|
100
|
+
# Note: We need to indicate the row that contains the collapsed symbol '+' with
|
|
101
|
+
# the optional parameter, collapsed.
|
|
102
|
+
|
|
103
|
+
worksheet2.set_row(1, nil, nil, 1, 2)
|
|
104
|
+
worksheet2.set_row(2, nil, nil, 1, 2)
|
|
105
|
+
worksheet2.set_row(3, nil, nil, 1, 2)
|
|
106
|
+
worksheet2.set_row(4, nil, nil, 1, 2)
|
|
107
|
+
worksheet2.set_row(5, nil, nil, 1, 1)
|
|
108
|
+
|
|
109
|
+
worksheet2.set_row(6, nil, nil, 1, 2)
|
|
110
|
+
worksheet2.set_row(7, nil, nil, 1, 2)
|
|
111
|
+
worksheet2.set_row(8, nil, nil, 1, 2)
|
|
112
|
+
worksheet2.set_row(9, nil, nil, 1, 2)
|
|
113
|
+
worksheet2.set_row(10, nil, nil, 1, 1)
|
|
114
|
+
|
|
115
|
+
worksheet2.set_row(11, nil, nil, 0, 0, 1)
|
|
116
|
+
|
|
117
|
+
# Write the sub-total data that is common to the row examples.
|
|
118
|
+
create_sub_totals(worksheet2, bold)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
###############################################################################
|
|
122
|
+
#
|
|
123
|
+
# Example 3: Create a worksheet with collapsed outlined rows.
|
|
124
|
+
# Same as the example 1 except that the two sub-totals are collapsed.
|
|
125
|
+
|
|
126
|
+
worksheet3.set_row(1, nil, nil, 1, 2)
|
|
127
|
+
worksheet3.set_row(2, nil, nil, 1, 2)
|
|
128
|
+
worksheet3.set_row(3, nil, nil, 1, 2)
|
|
129
|
+
worksheet3.set_row(4, nil, nil, 1, 2)
|
|
130
|
+
worksheet3.set_row(5, nil, nil, 0, 1, 1)
|
|
131
|
+
|
|
132
|
+
worksheet3.set_row(6, nil, nil, 1, 2)
|
|
133
|
+
worksheet3.set_row(7, nil, nil, 1, 2)
|
|
134
|
+
worksheet3.set_row(8, nil, nil, 1, 2)
|
|
135
|
+
worksheet3.set_row(9, nil, nil, 1, 2)
|
|
136
|
+
worksheet3.set_row(10, nil, nil, 0, 1, 1)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
# Write the sub-total data that is common to the row examples.
|
|
140
|
+
create_sub_totals(worksheet3, bold)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
###############################################################################
|
|
144
|
+
#
|
|
145
|
+
# Example 4: Create a worksheet with outlined rows.
|
|
146
|
+
# Same as the example 1 except that the two sub-totals are collapsed.
|
|
147
|
+
|
|
148
|
+
worksheet4.set_row(1, nil, nil, 1, 2)
|
|
149
|
+
worksheet4.set_row(2, nil, nil, 1, 2)
|
|
150
|
+
worksheet4.set_row(3, nil, nil, 1, 2)
|
|
151
|
+
worksheet4.set_row(4, nil, nil, 1, 2)
|
|
152
|
+
worksheet4.set_row(5, nil, nil, 1, 1, 1)
|
|
153
|
+
|
|
154
|
+
worksheet4.set_row(6, nil, nil, 1, 2)
|
|
155
|
+
worksheet4.set_row(7, nil, nil, 1, 2)
|
|
156
|
+
worksheet4.set_row(8, nil, nil, 1, 2)
|
|
157
|
+
worksheet4.set_row(9, nil, nil, 1, 2)
|
|
158
|
+
worksheet4.set_row(10, nil, nil, 1, 1, 1)
|
|
159
|
+
|
|
160
|
+
worksheet4.set_row(11, nil, nil, 0, 0, 1)
|
|
161
|
+
|
|
162
|
+
# Write the sub-total data that is common to the row examples.
|
|
163
|
+
create_sub_totals(worksheet4, bold)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
###############################################################################
|
|
168
|
+
#
|
|
169
|
+
# Example 5: Create a worksheet with outlined columns.
|
|
170
|
+
#
|
|
171
|
+
data = [
|
|
172
|
+
['Month', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',' Total'],
|
|
173
|
+
['North', 50, 20, 15, 25, 65, 80, '=SUM(B2:G2)'],
|
|
174
|
+
['South', 10, 20, 30, 50, 50, 50, '=SUM(B3:G3)'],
|
|
175
|
+
['East', 45, 75, 50, 15, 75, 100, '=SUM(B4:G4)'],
|
|
176
|
+
['West', 15, 15, 55, 35, 20, 50, '=SUM(B5:G6)']
|
|
177
|
+
]
|
|
178
|
+
|
|
179
|
+
# Add bold format to the first row
|
|
180
|
+
worksheet5.set_row(0, nil, bold)
|
|
181
|
+
|
|
182
|
+
# Syntax: set_column(col1, col2, width, XF, hidden, level, collapsed)
|
|
183
|
+
worksheet5.set_column('A:A', 10, bold )
|
|
184
|
+
worksheet5.set_column('B:G', 5, nil, 0, 1)
|
|
185
|
+
worksheet5.set_column('H:H', 10 )
|
|
186
|
+
|
|
187
|
+
# Write the data and a formula
|
|
188
|
+
worksheet5.write_col('A1', data)
|
|
189
|
+
worksheet5.write('H6', '=SUM(H2:H5)', bold)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
###############################################################################
|
|
193
|
+
#
|
|
194
|
+
# Example 6: Create a worksheet with collapsed outlined columns.
|
|
195
|
+
# This is the same as the previous example except collapsed columns.
|
|
196
|
+
|
|
197
|
+
# Add bold format to the first row
|
|
198
|
+
worksheet6.set_row(0, nil, bold)
|
|
199
|
+
|
|
200
|
+
# Syntax: set_column(col1, col2, width, XF, hidden, level, collapsed)
|
|
201
|
+
worksheet6.set_column('A:A', 10, bold )
|
|
202
|
+
worksheet6.set_column('B:G', 5, nil, 1, 1 )
|
|
203
|
+
worksheet6.set_column('H:H', 10, nil, 0, 0, 1)
|
|
204
|
+
|
|
205
|
+
# Write the data and a formula
|
|
206
|
+
worksheet6.write_col('A1', data)
|
|
207
|
+
worksheet6.write('H6', '=SUM(H2:H5)', bold)
|
|
208
|
+
|
|
209
|
+
workbook.close
|
data/examples/panes.rb
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# Example of using the WriteExcel module to create worksheet panes.
|
|
7
|
+
#
|
|
8
|
+
# reverse('©'), May 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 'writeexcel'
|
|
15
|
+
|
|
16
|
+
workbook = WriteExcel.new("panes.xls")
|
|
17
|
+
|
|
18
|
+
worksheet1 = workbook.add_worksheet('Panes 1')
|
|
19
|
+
worksheet2 = workbook.add_worksheet('Panes 2')
|
|
20
|
+
worksheet3 = workbook.add_worksheet('Panes 3')
|
|
21
|
+
worksheet4 = workbook.add_worksheet('Panes 4')
|
|
22
|
+
|
|
23
|
+
# Freeze panes
|
|
24
|
+
worksheet1.freeze_panes(1, 0) # 1 row
|
|
25
|
+
|
|
26
|
+
worksheet2.freeze_panes(0, 1) # 1 column
|
|
27
|
+
worksheet3.freeze_panes(1, 1) # 1 row and column
|
|
28
|
+
|
|
29
|
+
# Split panes.
|
|
30
|
+
# The divisions must be specified in terms of row and column dimensions.
|
|
31
|
+
# The default row height is 12.75 and the default column width is 8.43
|
|
32
|
+
#
|
|
33
|
+
worksheet4.split_panes(12.75, 8.43, 1, 1) # 1 row and column
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
#######################################################################
|
|
37
|
+
#
|
|
38
|
+
# Set up some formatting and text to highlight the panes
|
|
39
|
+
#
|
|
40
|
+
|
|
41
|
+
header = workbook.add_format
|
|
42
|
+
header.set_color('white')
|
|
43
|
+
header.set_align('center')
|
|
44
|
+
header.set_align('vcenter')
|
|
45
|
+
header.set_pattern
|
|
46
|
+
header.set_fg_color('green')
|
|
47
|
+
|
|
48
|
+
center = workbook.add_format
|
|
49
|
+
center.set_align('center')
|
|
50
|
+
|
|
51
|
+
#######################################################################
|
|
52
|
+
#
|
|
53
|
+
# Sheet 1
|
|
54
|
+
#
|
|
55
|
+
|
|
56
|
+
worksheet1.set_column('A:I', 16)
|
|
57
|
+
worksheet1.set_row(0, 20)
|
|
58
|
+
worksheet1.set_selection('C3')
|
|
59
|
+
|
|
60
|
+
(0..8).each { |i| worksheet1.write(0, i, 'Scroll down', header) }
|
|
61
|
+
(1..100).each do |i|
|
|
62
|
+
(0..8).each { |j| worksheet1.write(i, j, i + 1, center) }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
#######################################################################
|
|
66
|
+
#
|
|
67
|
+
# Sheet 2
|
|
68
|
+
#
|
|
69
|
+
|
|
70
|
+
worksheet2.set_column('A:A', 16)
|
|
71
|
+
worksheet2.set_selection('C3')
|
|
72
|
+
|
|
73
|
+
(0..49).each do |i|
|
|
74
|
+
worksheet2.set_row(i, 15)
|
|
75
|
+
worksheet2.write(i, 0, 'Scroll right', header)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
(0..49).each do |i|
|
|
79
|
+
(1..25).each { |j| worksheet2.write(i, j, j, center) }
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
#######################################################################
|
|
83
|
+
#
|
|
84
|
+
# Sheet 3
|
|
85
|
+
#
|
|
86
|
+
|
|
87
|
+
worksheet3.set_column('A:Z', 16)
|
|
88
|
+
worksheet3.set_selection('C3')
|
|
89
|
+
|
|
90
|
+
(1..25).each { |i| worksheet3.write(0, i, 'Scroll down', header) }
|
|
91
|
+
|
|
92
|
+
(1..49).each { |i| worksheet3.write(i, 0, 'Scroll right', header) }
|
|
93
|
+
|
|
94
|
+
(1..49).each do |i|
|
|
95
|
+
(1..25).each { |j| worksheet3.write(i, j, j, center) }
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
#######################################################################
|
|
99
|
+
#
|
|
100
|
+
# Sheet 4
|
|
101
|
+
#
|
|
102
|
+
|
|
103
|
+
worksheet4.set_selection('C3')
|
|
104
|
+
|
|
105
|
+
(1..25).each { |i| worksheet4.write(0, i, 'Scroll', center) }
|
|
106
|
+
|
|
107
|
+
(1..49).each { |i| worksheet4.write(i, 0, 'Scroll', center) }
|
|
108
|
+
|
|
109
|
+
(1..49).each do |i|
|
|
110
|
+
(1..25).each { |j| worksheet4.write(i, j, j, center) }
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
workbook.close
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'writeexcel'
|
|
3
|
+
|
|
4
|
+
workbook = WriteExcel.new('password_protection.xls')
|
|
5
|
+
worksheet = workbook.add_worksheet
|
|
6
|
+
|
|
7
|
+
# Create some format objects
|
|
8
|
+
locked = workbook.add_format(:locked => 1)
|
|
9
|
+
unlocked = workbook.add_format(:locked => 0)
|
|
10
|
+
hidden = workbook.add_format(:hidden => 1)
|
|
11
|
+
|
|
12
|
+
# Format the columns
|
|
13
|
+
worksheet.set_column('A:A', 42)
|
|
14
|
+
worksheet.set_selection('B3:B3')
|
|
15
|
+
|
|
16
|
+
# Protect the worksheet
|
|
17
|
+
worksheet.protect('password')
|
|
18
|
+
|
|
19
|
+
# Examples of cell locking and hiding
|
|
20
|
+
worksheet.write('A1', 'Cell B1 is locked. It cannot be edited.')
|
|
21
|
+
worksheet.write('B1', '=1+2', locked)
|
|
22
|
+
|
|
23
|
+
worksheet.write('A2', 'Cell B2 is unlocked. It can be edited.')
|
|
24
|
+
worksheet.write('B2', '=1+2', unlocked)
|
|
25
|
+
|
|
26
|
+
worksheet.write('A3', "Cell B3 is hidden. The formula isn't visible.")
|
|
27
|
+
worksheet.write('B3', '=1+2', hidden)
|
|
28
|
+
|
|
29
|
+
worksheet.write('A5', 'Use Menu->Tools->Protection->Unprotect Sheet')
|
|
30
|
+
worksheet.write('A6', 'to remove the worksheet protection. ')
|
|
31
|
+
worksheet.write('A7', 'The password is "password". ')
|
|
32
|
+
|
|
33
|
+
workbook.close
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
##############################################################################
|
|
5
|
+
#
|
|
6
|
+
# An example of adding document properties to a WriteExcel file.
|
|
7
|
+
#
|
|
8
|
+
# reverse('©'), August 2008, 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
|
+
workbook = WriteExcel.new('properties.xls')
|
|
17
|
+
worksheet = workbook.add_worksheet
|
|
18
|
+
bp =1
|
|
19
|
+
workbook.set_properties(
|
|
20
|
+
:title => 'This is an example spreadsheet',
|
|
21
|
+
:subject => 'With document properties',
|
|
22
|
+
:author => 'Hideo NAKAMURA',
|
|
23
|
+
:manager => 'John McNamara',
|
|
24
|
+
:company => 'Rubygem',
|
|
25
|
+
:category => 'Example spreadsheets',
|
|
26
|
+
:keywords => 'Sample, Example, Properties',
|
|
27
|
+
:comments => 'Created with Ruby and WriteExcel'
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
worksheet.set_column('A:A', 50)
|
|
32
|
+
worksheet.write('A1', 'Select File->Properties to see the file properties')
|
|
33
|
+
|
|
34
|
+
workbook.close
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
##############################################################################
|
|
5
|
+
#
|
|
6
|
+
# An example of adding document properties to a WriteExcel file.
|
|
7
|
+
#
|
|
8
|
+
# reverse('©'), August 2008, 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
|
+
workbook = WriteExcel.new('properties_jp.xls')
|
|
17
|
+
worksheet = workbook.add_worksheet
|
|
18
|
+
bp =1
|
|
19
|
+
workbook.set_properties(
|
|
20
|
+
:title => 'スプレッドシートの作成例',
|
|
21
|
+
:subject => 'ファイルのプロパティをセット',
|
|
22
|
+
:author => '中村英夫',
|
|
23
|
+
:manager => 'John McNamara',
|
|
24
|
+
:company => 'Rubygem',
|
|
25
|
+
:category => 'エクセルファイル',
|
|
26
|
+
:keywords => 'エクセル プロパティ UTF-8',
|
|
27
|
+
:comments => 'Rubygem writeexcelで作成'
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
worksheet.set_column('A:A', 50)
|
|
31
|
+
worksheet.write('A1', 'メニューのファイル(F)-プロパティ(I)を見てください。')
|
|
32
|
+
|
|
33
|
+
workbook.close
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#!/usr/bin/ruby -w
|
|
3
|
+
|
|
4
|
+
########################################################################
|
|
5
|
+
#
|
|
6
|
+
# Example of cell locking and formula hiding in an Excel worksheet via
|
|
7
|
+
# the WriteExcel module.
|
|
8
|
+
#
|
|
9
|
+
# reverse('©'), August 2001, John McNamara, jmcnamara@cpan.org
|
|
10
|
+
#
|
|
11
|
+
# original written in Perl by John McNamara
|
|
12
|
+
# converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
|
|
13
|
+
#
|
|
14
|
+
|
|
15
|
+
require 'rubygems'
|
|
16
|
+
require 'writeexcel'
|
|
17
|
+
|
|
18
|
+
workbook = WriteExcel.new("protection.xls")
|
|
19
|
+
worksheet = workbook.add_worksheet
|
|
20
|
+
|
|
21
|
+
# Create some format objects
|
|
22
|
+
locked = workbook.add_format(:locked => 1)
|
|
23
|
+
unlocked = workbook.add_format(:locked => 0)
|
|
24
|
+
hidden = workbook.add_format(:hidden => 1)
|
|
25
|
+
|
|
26
|
+
# Format the columns
|
|
27
|
+
worksheet.set_column('A:A', 42)
|
|
28
|
+
worksheet.set_selection('B3:B3')
|
|
29
|
+
|
|
30
|
+
# Protect the worksheet
|
|
31
|
+
worksheet.protect
|
|
32
|
+
|
|
33
|
+
# Examples of cell locking and hiding
|
|
34
|
+
worksheet.write('A1', 'Cell B1 is locked. It cannot be edited.')
|
|
35
|
+
worksheet.write('B1', '=1+2', locked)
|
|
36
|
+
|
|
37
|
+
worksheet.write('A2', 'Cell B2 is unlocked. It can be edited.')
|
|
38
|
+
worksheet.write('B2', '=1+2', unlocked)
|
|
39
|
+
|
|
40
|
+
worksheet.write('A3', "Cell B3 is hidden. The formula isn't visible.")
|
|
41
|
+
worksheet.write('B3', '=1+2', hidden)
|
|
42
|
+
|
|
43
|
+
worksheet.write('A5', 'Use Menu->Tools->Protection->Unprotect Sheet')
|
|
44
|
+
worksheet.write('A6', 'to remove the worksheet protection. ')
|
|
45
|
+
|
|
46
|
+
workbook.close
|
|
47
|
+
|