osheet-xmlss 1.0.0.rc.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.
@@ -0,0 +1,42 @@
1
+ # To run:
2
+ # $ bundle install
3
+ # $ bundle exec ruby examples/formula.rb
4
+ # $ open examples/formula.xls
5
+
6
+ require 'rubygems'
7
+ require 'osheet/xmlss'
8
+
9
+ # this will dump the above data to a single-sheet workbook w/ no styles
10
+
11
+ puts "building examples/formula.rb ..."
12
+
13
+ Osheet::Workbook.new(Osheet::XmlssWriter.new(:pp => 2)) {
14
+ title "formula example"
15
+ worksheet {
16
+ name "Formula"
17
+ row {
18
+ cell { data 1 }
19
+ cell { data 2 }
20
+ # please note formulas use R1C1 notation
21
+ # check out for example http://www.bettersolutions.com/excel/EED883/YI416010881.htm
22
+ # this is absolute reference, ie. =$A$1+$B$1
23
+ cell { formula "=R1C1+R1C2" }
24
+ }
25
+ }
26
+ worksheet {
27
+ name "Refers to previous sheet"
28
+ row {
29
+ cell { data 3 }
30
+ cell { data 4 }
31
+ cell {
32
+ # you can still refer to cells in other sheets through the name of the sheet and !
33
+ # this is also a relative reference, ie. =Formula!A1+B2
34
+ formula "=Formula!RC[-2]+RC[-1]"
35
+ # 6 will change into 5 when formula gets recalculated
36
+ data 6
37
+ }
38
+ }
39
+ }
40
+ }.to_file('examples/formula.xls')
41
+
42
+ puts "open examples/formula.xls"
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
3
+ <Styles>
4
+
5
+ </Styles>
6
+ <Worksheet ss:Name="Formula">
7
+ <Table>
8
+ <Row>
9
+ <Cell>
10
+ <Data ss:Type="Number">1</Data>
11
+ </Cell>
12
+ <Cell>
13
+ <Data ss:Type="Number">2</Data>
14
+ </Cell>
15
+ <Cell ss:Formula="=R1C1+R1C2">
16
+ <Data ss:Type="String"></Data>
17
+ </Cell>
18
+ </Row>
19
+ </Table>
20
+ </Worksheet>
21
+ <Worksheet ss:Name="Refers to previous sheet">
22
+ <Table>
23
+ <Row>
24
+ <Cell>
25
+ <Data ss:Type="Number">3</Data>
26
+ </Cell>
27
+ <Cell>
28
+ <Data ss:Type="Number">4</Data>
29
+ </Cell>
30
+ <Cell ss:Formula="=Formula!RC[-2]+RC[-1]">
31
+ <Data ss:Type="Number">6</Data>
32
+ </Cell>
33
+ </Row>
34
+ </Table>
35
+ </Worksheet>
36
+ </Workbook>
@@ -0,0 +1,255 @@
1
+ # To run:
2
+ # $ bundle install
3
+ # $ bundle exec ruby examples/styles.rb
4
+ # $ open examples/styles.xls
5
+
6
+ require 'rubygems'
7
+ require 'osheet/xmlss'
8
+
9
+ puts "building examples/styles.rb ..."
10
+
11
+ Osheet::Workbook.new(Osheet::XmlssWriter.new(:pp => 2)) {
12
+ title "styles"
13
+ template(:cell, :styled) { |style, attribute|
14
+ data attribute == :wrap ? (attribute.to_s+' ')*20 : attribute.to_s
15
+ style_class "#{style} #{attribute}"
16
+ }
17
+
18
+ # align styles
19
+ style('.align.left') { align :left }
20
+ style('.align.center') { align :center }
21
+ style('.align.right') { align :right }
22
+ style('.align.top') { align :top }
23
+ style('.align.middle') { align :middle }
24
+ style('.align.bottom') { align :bottom }
25
+ style('.align.wrap') { align :wrap }
26
+ style('.align.rotA') { align 90 }
27
+ style('.align.rotB') { align -90 }
28
+ style('.align.rotC') { align 45 }
29
+
30
+ worksheet {
31
+ name "align"
32
+
33
+ (0..3).each do
34
+ column {
35
+ width 100
36
+ }
37
+ end
38
+
39
+ { 'Horizontal alignment' => [:left, :center, :right],
40
+ 'Vertical alignment' => [:top, :middle, :bottom],
41
+ 'Wrap text' => [:wrap],
42
+ 'Rotate text' => [:rotA, :rotB, :rotC]
43
+ }.each do |k,v|
44
+ row {
45
+ height 50
46
+ v.each {|a| cell(:styled, 'align', a) }
47
+ }
48
+ end
49
+ }
50
+
51
+
52
+
53
+ # font styles
54
+ style('.font.underline') { font :underline }
55
+ style('.font.double_underline') { font :double_underline }
56
+ style('.font.accounting_underline') { font :accounting_underline }
57
+ style('.font.double_accounting_underline') { font :double_accounting_underline }
58
+ style('.font.subscript') { font :subscript }
59
+ style('.font.superscript') { font :superscript }
60
+ style('.font.strikethrough') { font :strikethrough }
61
+ style('.font.shadow') { font :shadow }
62
+ style('.font.bold') { font :bold }
63
+ style('.font.italic') { font :italic }
64
+ style('.font.sizeA') { font 6 }
65
+ style('.font.sizeB') { font 14 }
66
+ style('.font.colorA') { font '#FF0000' }
67
+ style('.font.colorB') { font '#00FF00' }
68
+ style('.font.nameA') { font 'Courier' }
69
+ style('.font.nameB') { font 'Times New Roman' }
70
+
71
+ worksheet {
72
+ name "font"
73
+
74
+ (0..5).each do
75
+ column {
76
+ width 100
77
+ }
78
+ end
79
+
80
+ row {
81
+ [:underline, :double_underline, :accounting_underline, :double_accounting_underline].each do |a|
82
+ cell {
83
+ data a.to_s
84
+ style_class "font #{a}"
85
+ }
86
+ end
87
+ }
88
+ row {
89
+ [:subscript, :superscript, :strikethrough, :shadow].each do |a|
90
+ cell {
91
+ data a.to_s
92
+ style_class "font #{a}"
93
+ }
94
+ end
95
+ }
96
+ row {
97
+ [:bold, :italic].each do |a|
98
+ cell {
99
+ data a.to_s
100
+ style_class "font #{a}"
101
+ }
102
+ end
103
+ }
104
+ row {
105
+ [:sizeA, :sizeB].each do |a|
106
+ cell {
107
+ data a.to_s
108
+ style_class "font #{a}"
109
+ }
110
+ end
111
+ }
112
+ row {
113
+ [:colorA, :colorB].each do |a|
114
+ cell {
115
+ data a.to_s
116
+ style_class "font #{a}"
117
+ }
118
+ end
119
+ }
120
+ row {
121
+ [:nameA, :nameB].each do |a|
122
+ cell {
123
+ data a.to_s
124
+ style_class "font #{a}"
125
+ }
126
+ end
127
+ }
128
+ }
129
+
130
+
131
+
132
+ # bg styles
133
+ style('.bg.color') {
134
+ bg '#FF0000'
135
+ font '#FFFFFF'
136
+ }
137
+ style('.bg.pattern') {
138
+ bg :horz_stripe
139
+ }
140
+ style('.bg.pattern.color') {
141
+ bg '#FF0000', :horz_stripe => '#000000'
142
+ font '#FFFFFF'
143
+ }
144
+
145
+ worksheet {
146
+ name "bg"
147
+
148
+ column {
149
+ width 100
150
+ }
151
+
152
+ row {
153
+ height 50
154
+ cell {
155
+ style_class "bg color"
156
+ data 'COLOR'
157
+ }
158
+ }
159
+ row {
160
+ height 50
161
+ cell {
162
+ style_class "bg pattern"
163
+ data 'PATTERN'
164
+ }
165
+ }
166
+ row {
167
+ height 50
168
+ cell {
169
+ style_class "bg pattern color"
170
+ data 'PATTERN COLOR'
171
+ }
172
+ }
173
+ }
174
+
175
+
176
+
177
+ # border styles
178
+ style('.border.top.color') { border_top '#FF0000' }
179
+ style('.border.right.color') { border_right '#00FF00' }
180
+ style('.border.bottom.color') { border_bottom '#0000FF' }
181
+ style('.border.left.color') { border_left '#FFFF00' }
182
+ style('.border.top.weight') { border_top :hairline }
183
+ style('.border.right.weight') { border_right :thin }
184
+ style('.border.bottom.weight') { border_bottom :medium }
185
+ style('.border.left.weight') { border_left :thick }
186
+ style('.border.top.style') { border_top :continuous }
187
+ style('.border.right.style') { border_right :dash }
188
+ style('.border.bottom.style') { border_bottom :dot }
189
+ style('.border.left.style') { border_left :dash_dot }
190
+ style('.border.all') {
191
+ border :continuous, :thick, '#00FFFF'
192
+ }
193
+
194
+ worksheet {
195
+ name "border"
196
+
197
+ column {
198
+ width 20
199
+ }
200
+ column {
201
+ width 200
202
+ }
203
+
204
+ row {}
205
+ row {
206
+ height 50
207
+ cell {}
208
+ cell {
209
+ style_class "border top color weight style"
210
+ data 'top red hairline continuous'
211
+ }
212
+ }
213
+ row {}
214
+ row {
215
+ height 50
216
+ cell {}
217
+ cell {
218
+ style_class "border right color weight style"
219
+ data 'right green thin dash'
220
+ }
221
+ }
222
+ row {}
223
+ row {
224
+ height 50
225
+ cell {}
226
+ cell {
227
+ style_class "border bottom color weight style"
228
+ data 'bottom blue medium dat'
229
+ }
230
+ }
231
+ row {}
232
+ row {
233
+ height 50
234
+ cell {}
235
+ cell {
236
+ style_class "border left color weight style"
237
+ data 'left yellow thick dast_dot'
238
+ }
239
+ }
240
+ row {}
241
+ row {
242
+ height 50
243
+ cell {}
244
+ cell {
245
+ style_class "border all"
246
+ data 'all aqua'
247
+ }
248
+ }
249
+ }
250
+
251
+
252
+
253
+ }.to_file('examples/styles.xls')
254
+
255
+ puts "open examples/styles.xls"
@@ -0,0 +1,343 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
3
+ <Styles>
4
+ <Style ss:ID=".align.rotA">
5
+ <Alignment ss:Rotate="90" />
6
+ <NumberFormat />
7
+ </Style>
8
+ <Style ss:ID=".align.rotB">
9
+ <Alignment ss:Rotate="-90" />
10
+ <NumberFormat />
11
+ </Style>
12
+ <Style ss:ID=".align.rotC">
13
+ <Alignment ss:Rotate="45" />
14
+ <NumberFormat />
15
+ </Style>
16
+ <Style ss:ID=".align.top">
17
+ <Alignment ss:Vertical="Top" />
18
+ <NumberFormat />
19
+ </Style>
20
+ <Style ss:ID=".align.middle">
21
+ <Alignment ss:Vertical="Center" />
22
+ <NumberFormat />
23
+ </Style>
24
+ <Style ss:ID=".align.bottom">
25
+ <Alignment ss:Vertical="Bottom" />
26
+ <NumberFormat />
27
+ </Style>
28
+ <Style ss:ID=".align.wrap">
29
+ <Alignment ss:WrapText="1" />
30
+ <NumberFormat />
31
+ </Style>
32
+ <Style ss:ID=".align.left">
33
+ <Alignment ss:Horizontal="Left" />
34
+ <NumberFormat />
35
+ </Style>
36
+ <Style ss:ID=".align.center">
37
+ <Alignment ss:Horizontal="Center" />
38
+ <NumberFormat />
39
+ </Style>
40
+ <Style ss:ID=".align.right">
41
+ <Alignment ss:Horizontal="Right" />
42
+ <NumberFormat />
43
+ </Style>
44
+ <Style ss:ID=".font.underline">
45
+ <Font ss:Underline="Single" />
46
+ <NumberFormat />
47
+ </Style>
48
+ <Style ss:ID=".font.double_underline">
49
+ <Font ss:Underline="Double" />
50
+ <NumberFormat />
51
+ </Style>
52
+ <Style ss:ID=".font.accounting_underline">
53
+ <Font ss:Underline="SingleAccounting" />
54
+ <NumberFormat />
55
+ </Style>
56
+ <Style ss:ID=".font.double_accounting_underline">
57
+ <Font ss:Underline="DoubleAccounting" />
58
+ <NumberFormat />
59
+ </Style>
60
+ <Style ss:ID=".font.subscript">
61
+ <Font ss:VerticalAlign="Subscript" />
62
+ <NumberFormat />
63
+ </Style>
64
+ <Style ss:ID=".font.superscript">
65
+ <Font ss:VerticalAlign="Superscript" />
66
+ <NumberFormat />
67
+ </Style>
68
+ <Style ss:ID=".font.strikethrough">
69
+ <Font ss:StrikeThrough="1" />
70
+ <NumberFormat />
71
+ </Style>
72
+ <Style ss:ID=".font.shadow">
73
+ <Font ss:Shadow="1" />
74
+ <NumberFormat />
75
+ </Style>
76
+ <Style ss:ID=".font.bold">
77
+ <Font ss:Bold="1" />
78
+ <NumberFormat />
79
+ </Style>
80
+ <Style ss:ID=".font.italic">
81
+ <Font ss:Italic="1" />
82
+ <NumberFormat />
83
+ </Style>
84
+ <Style ss:ID=".font.sizeA">
85
+ <Font ss:Size="6" />
86
+ <NumberFormat />
87
+ </Style>
88
+ <Style ss:ID=".font.sizeB">
89
+ <Font ss:Size="14" />
90
+ <NumberFormat />
91
+ </Style>
92
+ <Style ss:ID=".font.colorA">
93
+ <Font ss:Color="#FF0000" />
94
+ <NumberFormat />
95
+ </Style>
96
+ <Style ss:ID=".font.colorB">
97
+ <Font ss:Color="#00FF00" />
98
+ <NumberFormat />
99
+ </Style>
100
+ <Style ss:ID=".font.nameA">
101
+ <Font ss:FontName="Courier" />
102
+ <NumberFormat />
103
+ </Style>
104
+ <Style ss:ID=".font.nameB">
105
+ <Font ss:FontName="Times New Roman" />
106
+ <NumberFormat />
107
+ </Style>
108
+ <Style ss:ID=".bg.color">
109
+ <Font ss:Color="#FFFFFF" />
110
+ <Interior ss:Color="#FF0000" ss:Pattern="Solid" />
111
+ <NumberFormat />
112
+ </Style>
113
+ <Style ss:ID=".bg.pattern">
114
+ <Interior ss:Pattern="HorzStripe" />
115
+ <NumberFormat />
116
+ </Style>
117
+ <Style ss:ID=".bg.pattern.color">
118
+ <Font ss:Color="#FFFFFF" />
119
+ <Interior ss:Color="#FF0000" ss:Pattern="HorzStripe" ss:PatternColor="#000000" />
120
+ <NumberFormat />
121
+ </Style>
122
+ <Style ss:ID=".border.top.color.weight.style">
123
+ <Borders>
124
+ <Border ss:Color="#FF0000" ss:LineStyle="Continuous" ss:Position="Top" ss:Weight="0" />
125
+ </Borders>
126
+ <NumberFormat />
127
+ </Style>
128
+ <Style ss:ID=".border.right.color.weight.style">
129
+ <Borders>
130
+ <Border ss:Color="#00FF00" ss:LineStyle="Dash" ss:Position="Right" ss:Weight="1" />
131
+ </Borders>
132
+ <NumberFormat />
133
+ </Style>
134
+ <Style ss:ID=".border.bottom.color.weight.style">
135
+ <Borders>
136
+ <Border ss:Color="#0000FF" ss:LineStyle="Dot" ss:Position="Bottom" ss:Weight="2" />
137
+ </Borders>
138
+ <NumberFormat />
139
+ </Style>
140
+ <Style ss:ID=".border.left.color.weight.style">
141
+ <Borders>
142
+ <Border ss:Color="#FFFF00" ss:LineStyle="DashDot" ss:Position="Left" ss:Weight="3" />
143
+ </Borders>
144
+ <NumberFormat />
145
+ </Style>
146
+ <Style ss:ID=".border.all">
147
+ <Borders>
148
+ <Border ss:Color="#00FFFF" ss:LineStyle="Continuous" ss:Position="Top" ss:Weight="3" />
149
+ <Border ss:Color="#00FFFF" ss:LineStyle="Continuous" ss:Position="Right" ss:Weight="3" />
150
+ <Border ss:Color="#00FFFF" ss:LineStyle="Continuous" ss:Position="Bottom" ss:Weight="3" />
151
+ <Border ss:Color="#00FFFF" ss:LineStyle="Continuous" ss:Position="Left" ss:Weight="3" />
152
+ </Borders>
153
+ <NumberFormat />
154
+ </Style>
155
+ </Styles>
156
+ <Worksheet ss:Name="align">
157
+ <Table>
158
+ <Column ss:Width="100" />
159
+ <Column ss:Width="100" />
160
+ <Column ss:Width="100" />
161
+ <Column ss:Width="100" />
162
+ <Row ss:Height="50">
163
+ <Cell ss:StyleID=".align.rotA">
164
+ <Data ss:Type="String">rotA</Data>
165
+ </Cell>
166
+ <Cell ss:StyleID=".align.rotB">
167
+ <Data ss:Type="String">rotB</Data>
168
+ </Cell>
169
+ <Cell ss:StyleID=".align.rotC">
170
+ <Data ss:Type="String">rotC</Data>
171
+ </Cell>
172
+ </Row>
173
+ <Row ss:Height="50">
174
+ <Cell ss:StyleID=".align.top">
175
+ <Data ss:Type="String">top</Data>
176
+ </Cell>
177
+ <Cell ss:StyleID=".align.middle">
178
+ <Data ss:Type="String">middle</Data>
179
+ </Cell>
180
+ <Cell ss:StyleID=".align.bottom">
181
+ <Data ss:Type="String">bottom</Data>
182
+ </Cell>
183
+ </Row>
184
+ <Row ss:Height="50">
185
+ <Cell ss:StyleID=".align.wrap">
186
+ <Data ss:Type="String">wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap wrap </Data>
187
+ </Cell>
188
+ </Row>
189
+ <Row ss:Height="50">
190
+ <Cell ss:StyleID=".align.left">
191
+ <Data ss:Type="String">left</Data>
192
+ </Cell>
193
+ <Cell ss:StyleID=".align.center">
194
+ <Data ss:Type="String">center</Data>
195
+ </Cell>
196
+ <Cell ss:StyleID=".align.right">
197
+ <Data ss:Type="String">right</Data>
198
+ </Cell>
199
+ </Row>
200
+ </Table>
201
+ </Worksheet>
202
+ <Worksheet ss:Name="font">
203
+ <Table>
204
+ <Column ss:Width="100" />
205
+ <Column ss:Width="100" />
206
+ <Column ss:Width="100" />
207
+ <Column ss:Width="100" />
208
+ <Column ss:Width="100" />
209
+ <Column ss:Width="100" />
210
+ <Row>
211
+ <Cell ss:StyleID=".font.underline">
212
+ <Data ss:Type="String">underline</Data>
213
+ </Cell>
214
+ <Cell ss:StyleID=".font.double_underline">
215
+ <Data ss:Type="String">double_underline</Data>
216
+ </Cell>
217
+ <Cell ss:StyleID=".font.accounting_underline">
218
+ <Data ss:Type="String">accounting_underline</Data>
219
+ </Cell>
220
+ <Cell ss:StyleID=".font.double_accounting_underline">
221
+ <Data ss:Type="String">double_accounting_underline</Data>
222
+ </Cell>
223
+ </Row>
224
+ <Row>
225
+ <Cell ss:StyleID=".font.subscript">
226
+ <Data ss:Type="String">subscript</Data>
227
+ </Cell>
228
+ <Cell ss:StyleID=".font.superscript">
229
+ <Data ss:Type="String">superscript</Data>
230
+ </Cell>
231
+ <Cell ss:StyleID=".font.strikethrough">
232
+ <Data ss:Type="String">strikethrough</Data>
233
+ </Cell>
234
+ <Cell ss:StyleID=".font.shadow">
235
+ <Data ss:Type="String">shadow</Data>
236
+ </Cell>
237
+ </Row>
238
+ <Row>
239
+ <Cell ss:StyleID=".font.bold">
240
+ <Data ss:Type="String">bold</Data>
241
+ </Cell>
242
+ <Cell ss:StyleID=".font.italic">
243
+ <Data ss:Type="String">italic</Data>
244
+ </Cell>
245
+ </Row>
246
+ <Row>
247
+ <Cell ss:StyleID=".font.sizeA">
248
+ <Data ss:Type="String">sizeA</Data>
249
+ </Cell>
250
+ <Cell ss:StyleID=".font.sizeB">
251
+ <Data ss:Type="String">sizeB</Data>
252
+ </Cell>
253
+ </Row>
254
+ <Row>
255
+ <Cell ss:StyleID=".font.colorA">
256
+ <Data ss:Type="String">colorA</Data>
257
+ </Cell>
258
+ <Cell ss:StyleID=".font.colorB">
259
+ <Data ss:Type="String">colorB</Data>
260
+ </Cell>
261
+ </Row>
262
+ <Row>
263
+ <Cell ss:StyleID=".font.nameA">
264
+ <Data ss:Type="String">nameA</Data>
265
+ </Cell>
266
+ <Cell ss:StyleID=".font.nameB">
267
+ <Data ss:Type="String">nameB</Data>
268
+ </Cell>
269
+ </Row>
270
+ </Table>
271
+ </Worksheet>
272
+ <Worksheet ss:Name="bg">
273
+ <Table>
274
+ <Column ss:Width="100" />
275
+ <Row ss:Height="50">
276
+ <Cell ss:StyleID=".bg.color">
277
+ <Data ss:Type="String">COLOR</Data>
278
+ </Cell>
279
+ </Row>
280
+ <Row ss:Height="50">
281
+ <Cell ss:StyleID=".bg.pattern">
282
+ <Data ss:Type="String">PATTERN</Data>
283
+ </Cell>
284
+ </Row>
285
+ <Row ss:Height="50">
286
+ <Cell ss:StyleID=".bg.pattern.color">
287
+ <Data ss:Type="String">PATTERN COLOR</Data>
288
+ </Cell>
289
+ </Row>
290
+ </Table>
291
+ </Worksheet>
292
+ <Worksheet ss:Name="border">
293
+ <Table>
294
+ <Column ss:Width="20" />
295
+ <Column ss:Width="200" />
296
+ <Row />
297
+ <Row ss:Height="50">
298
+ <Cell>
299
+ <Data ss:Type="String"></Data>
300
+ </Cell>
301
+ <Cell ss:StyleID=".border.top.color.weight.style">
302
+ <Data ss:Type="String">top red hairline continuous</Data>
303
+ </Cell>
304
+ </Row>
305
+ <Row />
306
+ <Row ss:Height="50">
307
+ <Cell>
308
+ <Data ss:Type="String"></Data>
309
+ </Cell>
310
+ <Cell ss:StyleID=".border.right.color.weight.style">
311
+ <Data ss:Type="String">right green thin dash</Data>
312
+ </Cell>
313
+ </Row>
314
+ <Row />
315
+ <Row ss:Height="50">
316
+ <Cell>
317
+ <Data ss:Type="String"></Data>
318
+ </Cell>
319
+ <Cell ss:StyleID=".border.bottom.color.weight.style">
320
+ <Data ss:Type="String">bottom blue medium dat</Data>
321
+ </Cell>
322
+ </Row>
323
+ <Row />
324
+ <Row ss:Height="50">
325
+ <Cell>
326
+ <Data ss:Type="String"></Data>
327
+ </Cell>
328
+ <Cell ss:StyleID=".border.left.color.weight.style">
329
+ <Data ss:Type="String">left yellow thick dast_dot</Data>
330
+ </Cell>
331
+ </Row>
332
+ <Row />
333
+ <Row ss:Height="50">
334
+ <Cell>
335
+ <Data ss:Type="String"></Data>
336
+ </Cell>
337
+ <Cell ss:StyleID=".border.all">
338
+ <Data ss:Type="String">all aqua</Data>
339
+ </Cell>
340
+ </Row>
341
+ </Table>
342
+ </Worksheet>
343
+ </Workbook>
@@ -0,0 +1,25 @@
1
+ # To run:
2
+ # $ bundle install
3
+ # $ bundle exec ruby examples/trivial.rb
4
+ # $ open examples/trivial.xls
5
+
6
+ require 'rubygems'
7
+ require 'osheet/xmlss'
8
+
9
+ puts "building examples/trivial.rb ..."
10
+
11
+ Osheet::Workbook.new(Osheet::XmlssWriter.new(:pp => 2)) {
12
+ title "basic"
13
+ worksheet {
14
+ name "one dollar"
15
+ column
16
+ row {
17
+ cell {
18
+ data 1
19
+ format :currency
20
+ }
21
+ }
22
+ }
23
+ }.to_file('examples/trivial.xls')
24
+
25
+ puts "open examples/trivial.xls"