Class: Writeexcel::Format

Inherits:
Colors
  • Object
show all
Defined in:
lib/writeexcel/format.rb

Constant Summary

Constants inherited from Colors

Colors::COLORS

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Colors

#get_color, #inspect

Constructor Details

#initialize(xf_index = 0, properties = {}) ⇒ Format

Constructor

xf_index   :
properties : Hash of property => value

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/writeexcel/format.rb', line 34

def initialize(xf_index = 0, properties = {})   # :nodoc:
  @xf_index       = xf_index

  @type           = 0
  @font_index     = 0
  @font           = 'Arial'
  @size           = 10
  @bold           = 0x0190
  @italic         = 0
  @color          = 0x7FFF
  @underline      = 0
  @font_strikeout = 0
  @font_outline   = 0
  @font_shadow    = 0
  @font_script    = 0
  @font_family    = 0
  @font_charset   = 0
  @font_encoding  = 0

  @num_format     = 0
  @num_format_enc = 0

  @hidden         = 0
  @locked         = 1

  @text_h_align   = 0
  @text_wrap      = 0
  @text_v_align   = 2
  @text_justlast  = 0
  @rotation       = 0

  @fg_color       = 0x40
  @bg_color       = 0x41

  @pattern        = 0

  @bottom         = 0
  @top            = 0
  @left           = 0
  @right          = 0

  @bottom_color   = 0x40
  @top_color      = 0x40
  @left_color     = 0x40
  @right_color    = 0x40

  @indent         = 0
  @shrink         = 0
  @merge_range    = 0
  @reading_order  = 0

  @diag_type      = 0
  @diag_color     = 0x40
  @diag_border    = 0

  @font_only      = 0

  # Temp code to prevent merged formats in non-merged cells.
  @used_merge     = 0

  set_format_properties(properties) unless properties.empty?
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object

Dynamically create set methods that aren't already defined.


1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
# File 'lib/writeexcel/format.rb', line 1543

def method_missing(name, *args)  # :nodoc:
  # -- original perl comment --
  # There are two types of set methods: set_property() and
  # set_property_color(). When a method is AUTOLOADED we store a new anonymous
  # sub in the appropriate slot in the symbol table. The speeds up subsequent
  # calls to the same method.

  method = "#{name}"

  # Check for a valid method names, i.e. "set_xxx_yyy".
  method =~ /set_(\w+)/ or raise "Unknown method: #{method}\n"

  # Match the attribute, i.e. "@xxx_yyy".
  attribute = "@#{$1}"

  # Check that the attribute exists
  # ........
  if method =~ /set\w+color$/    # for "set_property_color" methods
    value = get_color(args[0])
  else                            # for "set_xxx" methods
    value = args[0].nil? ? 1 : args[0]
  end
  if value.respond_to?(:to_str) || !value.respond_to?(:+)
    s = %Q!#{attribute} = "#{value.to_s}"!
  else
    s = %Q!#{attribute} =   #{value.to_s}!
  end
  eval s
end

Class Method Details

._get_color(color) ⇒ Object

used from Worksheet.rb

this is cut & copy of get_color().

610
611
612
# File 'lib/writeexcel/format.rb', line 610

def self._get_color(color)  # :nodoc:
  Colors.new.get_color(color)
end

Instance Method Details

#bg_colorObject

:nodoc:


537
538
539
# File 'lib/writeexcel/format.rb', line 537

def bg_color  # :nodoc:
  @bg_color
end

#boldObject

:nodoc:


449
450
451
# File 'lib/writeexcel/format.rb', line 449

def bold  # :nodoc:
  @bold
end

#bottomObject

:nodoc:


545
546
547
# File 'lib/writeexcel/format.rb', line 545

def bottom  # :nodoc:
  @bottom
end

#bottom_colorObject

:nodoc:


561
562
563
# File 'lib/writeexcel/format.rb', line 561

def bottom_color  # :nodoc:
  @bottom_color
end

#colorObject

:nodoc:


457
458
459
# File 'lib/writeexcel/format.rb', line 457

def color  # :nodoc:
  @color
end

#copy(other) ⇒ Object

:call-seq:

copy(format)

Copy the attributes of another Format object.

This method is used to copy all of the properties from one Format object to another:

lorry1 = workbook.add_format
lorry1.set_bold
lorry1.set_italic
lorry1.set_color('red')     # lorry1 is bold, italic and red

lorry2 = workbook.add_format
lorry2.copy(lorry1)
lorry2.set_color('yellow')  # lorry2 is bold, italic and yellow

The copy() method is only useful if you are using the method interface to Format properties. It generally isn't required if you are setting Format properties directly using hashes.

Note: this is not a copy constructor, both objects must exist prior to copying.


123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# File 'lib/writeexcel/format.rb', line 123

def copy(other)
  # copy properties except xf, merge_range, used_merge
  # Copy properties
  @type           = other.type
  @font_index     = other.font_index
  @font           = other.font
  @size           = other.size
  @bold           = other.bold
  @italic         = other.italic
  @color          = other.color
  @underline      = other.underline
  @font_strikeout = other.font_strikeout
  @font_outline   = other.font_outline
  @font_shadow    = other.font_shadow
  @font_script    = other.font_script
  @font_family    = other.font_family
  @font_charset   = other.font_charset
  @font_encoding  = other.font_encoding

  @num_format     = other.num_format
  @num_format_enc = other.num_format_enc

  @hidden         = other.hidden
  @locked         = other.locked

  @text_h_align   = other.text_h_align
  @text_wrap      = other.text_wrap
  @text_v_align   = other.text_v_align
  @text_justlast  = other.text_justlast
  @rotation       = other.rotation

  @fg_color       = other.fg_color
  @bg_color       = other.bg_color

  @pattern        = other.pattern

  @bottom         = other.bottom
  @top            = other.top
  @left           = other.left
  @right          = other.right

  @bottom_color   = other.bottom_color
  @top_color      = other.top_color
  @left_color     = other.left_color
  @right_color    = other.right_color

  @indent         = other.indent
  @shrink         = other.shrink
  @reading_order  = other.reading_order

  @diag_type      = other.diag_type
  @diag_color     = other.diag_color
  @diag_border    = other.diag_border

  @font_only      = other.font_only
end

#diag_borderObject

:nodoc:


597
598
599
# File 'lib/writeexcel/format.rb', line 597

def diag_border  # :nodoc:
  @diag_border
end

#diag_colorObject

:nodoc:


593
594
595
# File 'lib/writeexcel/format.rb', line 593

def diag_color  # :nodoc:
  @diag_color
end

#diag_typeObject

:nodoc:


589
590
591
# File 'lib/writeexcel/format.rb', line 589

def diag_type  # :nodoc:
  @diag_type
end

#fg_colorObject

:nodoc:


533
534
535
# File 'lib/writeexcel/format.rb', line 533

def fg_color  # :nodoc:
  @fg_color
end

#fontObject

:nodoc:


441
442
443
# File 'lib/writeexcel/format.rb', line 441

def font  # :nodoc:
  @font
end

#font_charsetObject

:nodoc:


485
486
487
# File 'lib/writeexcel/format.rb', line 485

def font_charset  # :nodoc:
  @font_charset
end

#font_encodingObject

:nodoc:


489
490
491
# File 'lib/writeexcel/format.rb', line 489

def font_encoding  # :nodoc:
  @font_encoding
end

#font_familyObject

:nodoc:


481
482
483
# File 'lib/writeexcel/format.rb', line 481

def font_family  # :nodoc:
  @font_family
end

#font_indexObject

:nodoc:


433
434
435
# File 'lib/writeexcel/format.rb', line 433

def font_index  # :nodoc:
  @font_index
end

#font_index=(val) ⇒ Object

:nodoc:


437
438
439
# File 'lib/writeexcel/format.rb', line 437

def font_index=(val)  # :nodoc:
  @font_index = val
end

#font_onlyObject

:nodoc:


601
602
603
# File 'lib/writeexcel/format.rb', line 601

def font_only  # :nodoc:
  @font_only
end

#font_outlineObject

:nodoc:


469
470
471
# File 'lib/writeexcel/format.rb', line 469

def font_outline  # :nodoc:
  @font_outline
end

#font_scriptObject

:nodoc:


477
478
479
# File 'lib/writeexcel/format.rb', line 477

def font_script  # :nodoc:
  @font_script
end

#font_shadowObject

:nodoc:


473
474
475
# File 'lib/writeexcel/format.rb', line 473

def font_shadow  # :nodoc:
  @font_shadow
end

#font_strikeoutObject

:nodoc:


465
466
467
# File 'lib/writeexcel/format.rb', line 465

def font_strikeout  # :nodoc:
  @font_strikeout
end

#get_fontObject

Generate an Excel BIFF FONT record.


336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'lib/writeexcel/format.rb', line 336

def get_font  # :nodoc:

  #   my $record;     # Record identifier
  #   my $length;     # Record length

  #   my $dyHeight;   # Height of font (1/20 of a point)
  #   my $grbit;      # Font attributes
  #   my $icv;        # Index to color palette
  #   my $bls;        # Bold style
  #   my $sss;        # Superscript/subscript
  #   my $uls;        # Underline
  #   my $bFamily;    # Font family
  #   my $bCharSet;   # Character set
  #   my $reserved;   # Reserved
  #   my $cch;        # Length of font name
  #   my $rgch;       # Font name
  #   my $encoding;   # Font name character encoding


  dyHeight   = @size * 20
  icv        = @color
  bls        = @bold
  sss        = @font_script
  uls        = @underline
  bFamily    = @font_family
  bCharSet   = @font_charset
  rgch       = @font
  encoding   = @font_encoding

  ruby_19 { rgch = convert_to_ascii_if_ascii(rgch) }

  # Handle utf8 strings
  if is_utf8?(rgch)
    rgch = utf8_to_16be(rgch)
    encoding = 1
  end

  cch = rgch.bytesize
  #
  # Handle Unicode font names.
  if (encoding == 1)
    raise "Uneven number of bytes in Unicode font name" if cch % 2 != 0
    cch  /= 2 if encoding !=0
    rgch  = utf16be_to_16le(rgch)
  end

  record     = 0x31
  length     = 0x10 + rgch.bytesize
  reserved   = 0x00

  grbit      = 0x00
  grbit     |= 0x02 if @italic != 0
  grbit     |= 0x08 if @font_strikeout != 0
  grbit     |= 0x10 if @font_outline != 0
  grbit     |= 0x20 if @font_shadow != 0


  header = [record, length].pack("vv")
  data   = [dyHeight, grbit, icv, bls,
            sss, uls, bFamily,
            bCharSet, reserved, cch, encoding].pack('vvvvvCCCCCC')

  header + data + rgch
end

#get_font_keyObject

Returns a unique hash key for a font. Used by Workbook->_store_all_fonts()


404
405
406
407
408
409
410
411
412
# File 'lib/writeexcel/format.rb', line 404

def get_font_key  # :nodoc:
  # The following elements are arranged to increase the probability of
  # generating a unique key. Elements that hold a large range of numbers
  # e.g. _color are placed between two binary elements such as _italic

  key  = "#{@font}#{@size}#{@font_script}#{@underline}#{@font_strikeout}#{@bold}#{@font_outline}"
  key += "#{@font_family}#{@font_charset}#{@font_shadow}#{@color}#{@italic}#{@font_encoding}"
  key.gsub(' ', '_') # Convert the key to a single word
end

#get_xfObject

Generate an Excel BIFF XF record.


183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
# File 'lib/writeexcel/format.rb', line 183

def get_xf  # :nodoc:

  # Local Variable
  #    record;     # Record identifier
  #    length;     # Number of bytes to follow
  #
  #    ifnt;       # Index to FONT record
  #    ifmt;       # Index to FORMAT record
  #    style;      # Style and other options
  #    align;      # Alignment
  #    indent;     #
  #    icv;        # fg and bg pattern colors
  #    border1;    # Border line options
  #    border2;    # Border line options
  #    border3;    # Border line options

  # Set the type of the XF record and some of the attributes.
  if @type == 0xFFF5 then
    style = 0xFFF5
  else
    style  = @locked
    style |= @hidden << 1
  end

  # Flags to indicate if attributes have been set.
  atr_num  = (@num_format   != 0) ? 1 : 0
  atr_fnt  = (@font_index   != 0) ? 1 : 0
  atr_alc  = (@text_h_align != 0 ||
              @text_v_align != 2 ||
              @shrink       != 0 ||
              @merge_range  != 0 ||
              @text_wrap    != 0 ||
              @indent       != 0) ? 1 : 0
  atr_bdr  = (@bottom       != 0 ||
              @top          != 0 ||
              @left         != 0 ||
              @right        != 0 ||
              @diag_type    != 0) ? 1 : 0
  atr_pat  = (@fg_color     != 0x40 ||
              @bg_color     != 0x41 ||
              @pattern      != 0x00) ? 1 : 0
  atr_prot = (@hidden       != 0 ||
              @locked       != 1) ? 1 : 0

  # Set attribute changed flags for the style formats.
  if @xf_index != 0 and @type == 0xFFF5
    if @xf_index >= 16
      atr_num    = 0
      atr_fnt    = 1
    else
      atr_num    = 1
      atr_fnt    = 0
    end
    atr_alc    = 1
    atr_bdr    = 1
    atr_pat    = 1
    atr_prot   = 1
  end

  # Set a default diagonal border style if none was specified.
  @diag_border = 1 if (@diag_border ==0 and @diag_type != 0)

  # Reset the default colours for the non-font properties
  @fg_color     = 0x40 if @fg_color     == 0x7FFF
  @bg_color     = 0x41 if @bg_color     == 0x7FFF
  @bottom_color = 0x40 if @bottom_color == 0x7FFF
  @top_color    = 0x40 if @top_color    == 0x7FFF
  @left_color   = 0x40 if @left_color   == 0x7FFF
  @right_color  = 0x40 if @right_color  == 0x7FFF
  @diag_color   = 0x40 if @diag_color   == 0x7FFF

  # Zero the default border colour if the border has not been set.
  @bottom_color = 0 if @bottom    == 0
  @top_color    = 0 if @top       == 0
  @right_color  = 0 if @right     == 0
  @left_color   = 0 if @left      == 0
  @diag_color   = 0 if @diag_type == 0

  # The following 2 logical statements take care of special cases in relation
  # to cell colours and patterns:
  # 1. For a solid fill (_pattern == 1) Excel reverses the role of foreground
  #    and background colours.
  # 2. If the user specifies a foreground or background colour without a
  #    pattern they probably wanted a solid fill, so we fill in the defaults.
  #
  if (@pattern  <= 0x01 && @bg_color != 0x41 && @fg_color == 0x40)
    @fg_color = @bg_color
    @bg_color = 0x40
    @pattern  = 1
  end

  if (@pattern <= 0x01 && @bg_color == 0x41 && @fg_color != 0x40)
    @bg_color = 0x40
    @pattern  = 1
  end

  # Set default alignment if indent is set.
  @text_h_align = 1 if @indent != 0 and @text_h_align == 0


  record         = 0x00E0
  length         = 0x0014

  ifnt           = @font_index
  ifmt           = @num_format


  align          = @text_h_align
  align         |= @text_wrap     << 3
  align         |= @text_v_align  << 4
  align         |= @text_justlast << 7
  align         |= @rotation      << 8

  indent         = @indent
  indent        |= @shrink        << 4
  indent        |= @merge_range   << 5
  indent        |= @reading_order << 6
  indent        |= atr_num        << 10
  indent        |= atr_fnt        << 11
  indent        |= atr_alc        << 12
  indent        |= atr_bdr        << 13
  indent        |= atr_pat        << 14
  indent        |= atr_prot       << 15


  border1        = @left
  border1       |= @right         << 4
  border1       |= @top           << 8
  border1       |= @bottom        << 12

  border2        = @left_color
  border2       |= @right_color   << 7
  border2       |= @diag_type     << 14

  border3        = @top_color
  border3       |= @bottom_color  << 7
  border3       |= @diag_color    << 14
  border3       |= @diag_border   << 21
  border3       |= @pattern       << 26

  icv            = @fg_color
  icv           |= @bg_color      << 7

  header = [record, length].pack("vv")
  data   = [ifnt, ifmt, style, align, indent,
            border1, border2, border3, icv].pack("vvvvvvvVv")

  header + data
end

#hiddenObject

:nodoc:


505
506
507
# File 'lib/writeexcel/format.rb', line 505

def hidden  # :nodoc:
  @hidden
end

#indentObject

:nodoc:


577
578
579
# File 'lib/writeexcel/format.rb', line 577

def indent  # :nodoc:
  @indent
end

#italicObject

:nodoc:


453
454
455
# File 'lib/writeexcel/format.rb', line 453

def italic  # :nodoc:
  @italic
end

#leftObject

:nodoc:


553
554
555
# File 'lib/writeexcel/format.rb', line 553

def left  # :nodoc:
  @left
end

#left_colorObject

:nodoc:


569
570
571
# File 'lib/writeexcel/format.rb', line 569

def left_color  # :nodoc:
  @left_color
end

#lockedObject

:nodoc:


509
510
511
# File 'lib/writeexcel/format.rb', line 509

def locked  # :nodoc:
  @locked
end

#num_formatObject

:nodoc:


493
494
495
# File 'lib/writeexcel/format.rb', line 493

def num_format  # :nodoc:
  @num_format
end

#num_format=(val) ⇒ Object

:nodoc:


497
498
499
# File 'lib/writeexcel/format.rb', line 497

def num_format=(val)  # :nodoc:
  @num_format = val
end

#num_format_encObject

:nodoc:


501
502
503
# File 'lib/writeexcel/format.rb', line 501

def num_format_enc  # :nodoc:
  @num_format_enc
end

#patternObject

:nodoc:


541
542
543
# File 'lib/writeexcel/format.rb', line 541

def pattern  # :nodoc:
  @pattern
end

#reading_orderObject

:nodoc:


585
586
587
# File 'lib/writeexcel/format.rb', line 585

def reading_order  # :nodoc:
  @reading_order
end

#rightObject

:nodoc:


557
558
559
# File 'lib/writeexcel/format.rb', line 557

def right  # :nodoc:
  @right
end

#right_colorObject

:nodoc:


573
574
575
# File 'lib/writeexcel/format.rb', line 573

def right_color  # :nodoc:
  @right_color
end

#rotationObject

:nodoc:


529
530
531
# File 'lib/writeexcel/format.rb', line 529

def rotation  # :nodoc:
  @rotation
end

#set_align(align = 'left') ⇒ Object

Set cell alignment.

Default state:      Alignment is off
Default action:     Left alignment
Valid args:         'left'              Horizontal
                    'center'
                    'right'
                    'fill'
                    'justify'
                    'center_across'

                    'top'               Vertical
                    'vcenter'
                    'bottom'
                    'vjustify'

This method is used to set the horizontal and vertical text alignment within a cell. Vertical and horizontal alignments can be combined.

The method is used as follows:

   format = workbook.add_format
   format->set_align('center')
   format->set_align('vcenter')
   worksheet->set_row(0, 30)
   worksheet->write(0, 0, 'X', format)

Text can be aligned across two or more adjacent cells using the center_across property. However, for genuine merged cells it is better to use the merge_range() worksheet method.

The vjustify (vertical justify) option can be used to provide automatic text wrapping in a cell. The height of the cell will be adjusted to accommodate the wrapped text. To specify where the text wraps use the set_text_wrap() method.

For further examples see the 'Alignment' worksheet created by formats.rb.


946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
# File 'lib/writeexcel/format.rb', line 946

def set_align(align = 'left')
  case align.to_s.downcase
  when 'left'             then set_text_h_align(1)
  when 'centre', 'center' then set_text_h_align(2)
  when 'right'            then set_text_h_align(3)
  when 'fill'             then set_text_h_align(4)
  when 'justify'          then set_text_h_align(5)
  when 'center_across', 'centre_across' then set_text_h_align(6)
  when 'merge'            then set_text_h_align(6) # S:WE name
  when 'distributed'      then set_text_h_align(7)
  when 'equal_space'      then set_text_h_align(7) # ParseExcel

  when 'top'              then set_text_v_align(0)
  when 'vcentre'          then set_text_v_align(1)
  when 'vcenter'          then set_text_v_align(1)
  when 'bottom'           then set_text_v_align(2)
  when 'vjustify'         then set_text_v_align(3)
  when 'vdistributed'     then set_text_v_align(4)
  when 'vequal_space'     then set_text_v_align(4) # ParseExcel
  else nil
  end
end

#set_bg_color(color = 0x41) ⇒ Object

The set_bg_color() method can be used to set the background colour of a pattern. Patterns are defined via the set_pattern() method. If a pattern hasn't been defined then a solid fill pattern is used as the default.

Default state:      Color is off
Default action:     Solid fill.
Valid args:         See set_color()

Here is an example of how to set up a solid fill in a cell:

format = workbook.add_format

format.set_pattern()  # This is optional when using a solid fill

format.set_bg_color('green')
worksheet.write('A1', 'Ray', format)

For further examples see the 'Patterns' worksheet created by formats.rb.


1524
1525
1526
# File 'lib/writeexcel/format.rb', line 1524

def set_bg_color(color = 0x41)
  @bg_color = get_color(color)
end

#set_bold(weight = nil) ⇒ Object

Set the bold property of the font:

Default state:      bold is off
Default action:     Turn bold on
Valid args:         0, 1 [1]

format.set_bold()   # Turn bold on
1

Actually, values in the range 100..1000 are also valid. 400 is normal,

700 is bold and 1000 is very bold indeed. It is probably best to set the value to 1 and use normal bold.


701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
# File 'lib/writeexcel/format.rb', line 701

def set_bold(weight = nil)

  if weight.nil?
    weight = 0x2BC
  elsif !weight.respond_to?(:to_int) || !weight.respond_to?(:+) # avoid Symbol
    weight = 0x190
  elsif weight == 1                       # Bold text
    weight = 0x2BC
  elsif weight == 0                       # Normal text
    weight = 0x190
  elsif weight <  0x064 || 0x3E8 < weight # Out bound
    weight = 0x190
  else
    weight = weight.to_i
  end

  @bold = weight
end

#set_border(style) ⇒ Object

Set cells borders to the same style

Also applies to:    set_bottom()
                    set_top()
                    set_left()
                    set_right()

Default state:      Border is off
Default action:     Set border type 1
Valid args:         0-13, See below.

A cell border is comprised of a border on the bottom, top, left and right. These can be set to the same value using set_border() or individually using the relevant method calls shown above.

The following shows the border styles sorted by WriteExcel index number:

Index   Name            Weight   Style
=====   =============   ======   ===========
0       None            0
1       Continuous      1        -----------
2       Continuous      2        -----------
3       Dash            1        - - - - - -
4       Dot             1        . . . . . .
5       Continuous      3        -----------
6       Double          3        ===========
7       Continuous      0        -----------
8       Dash            2        - - - - - -
9       Dash Dot        1        - . - . - .
10      Dash Dot        2        - . - . - .
11      Dash Dot Dot    1        - . . - . .
12      Dash Dot Dot    2        - . . - . .
13      SlantDash Dot   2        / - . / - .

The following shows the borders sorted by style:

Name            Weight   Style         Index
=============   ======   ===========   =====
Continuous      0        -----------   7
Continuous      1        -----------   1
Continuous      2        -----------   2
Continuous      3        -----------   5
Dash            1        - - - - - -   3
Dash            2        - - - - - -   8
Dash Dot        1        - . - . - .   9
Dash Dot        2        - . - . - .   10
Dash Dot Dot    1        - . . - . .   11
Dash Dot Dot    2        - . . - . .   12
Dot             1        . . . . . .   4
Double          3        ===========   6
None            0                      0
SlantDash Dot   2        / - . / - .   13

The following shows the borders in the order shown in the Excel Dialog.

Index   Style             Index   Style
=====   =====             =====   =====
0       None              12      - . . - . .
7       -----------       13      / - . / - .
4       . . . . . .       10      - . - . - .
11      - . . - . .       8       - - - - - -
9       - . - . - .       2       -----------
3       - - - - - -       5       -----------
1       -----------       6       ===========

Examples of the available border styles are shown in the 'Borders' worksheet created by formats.rb.


1106
1107
1108
1109
1110
1111
# File 'lib/writeexcel/format.rb', line 1106

def set_border(style)
  set_bottom(style)
  set_top(style)
  set_left(style)
  set_right(style)
end

#set_border_color(color) ⇒ Object

Set cells border to the same color

Also applies to:    set_bottom_color()
                    set_top_color()
                    set_left_color()
                    set_right_color()

Default state:      Color is off
Default action:     Undefined
Valid args:         See set_color()

Set the colour of the cell borders. A cell border is comprised of a border on the bottom, top, left and right. These can be set to the same colour using set_border_color() or individually using the relevant method calls shown above. Examples of the border styles and colours are shown in the 'Borders' worksheet created by formats.rb.


1163
1164
1165
1166
1167
1168
# File 'lib/writeexcel/format.rb', line 1163

def set_border_color(color)
  set_bottom_color(color)
  set_top_color(color)
  set_left_color(color)
  set_right_color(color)
end

#set_bottom(style) ⇒ Object

set bottom border of the cell. see set_border() about style.


1117
1118
1119
# File 'lib/writeexcel/format.rb', line 1117

def set_bottom(style)
  @bottom = style
end

#set_bottom_color(color) ⇒ Object

set bottom border color of the cell. see set_border_color() about color.


1174
1175
1176
# File 'lib/writeexcel/format.rb', line 1174

def set_bottom_color(color)
  @bottom_color = get_color(color)
end

#set_center_across(arg = 1) ⇒ Object

Implements the Excel5 style “merge”.

Default state:      Center across selection is off
Default action:     Turn center across on
Valid args:         1

Text can be aligned across two or more adjacent cells using the set_center_across() method. This is an alias for the set_align('center_across') method call.

Only one cell should contain the text, the other cells should be blank:

format = workbook.add_format
format.set_center_across

worksheet.write(1, 1, 'Center across selection', format)
worksheet.write_blank(1, 2, format)

See also the merge1.pl to merge6.rb programs in the examples directory and the merge_range() method.


999
1000
1001
# File 'lib/writeexcel/format.rb', line 999

def set_center_across(arg = 1)
  set_text_h_align(6)
end

#set_color(color = 0x7FFF) ⇒ Object

Set the font colour.

Default state:      Excels default color, usually black
Default action:     Set the default color
Valid args:         Integers from 8..63 or the following strings:
                    'black', 'blue', 'brown', 'cyan', 'gray'
                    'green', 'lime', 'magenta', 'navy', 'orange'
                    'pink', 'purple', 'red', 'silver', 'white', 'yellow'

The set_color() method is used as follows:

format = workbook.add_format()
format.set_color('red')
worksheet.write(0, 0, 'wheelbarrow', format)

Note: The set_color() method is used to set the colour of the font in a cell.

To set the colour of a cell use the set_bg_color()
and set_pattern() methods.

664
665
666
# File 'lib/writeexcel/format.rb', line 664

def set_color(color = 0x7FFF)
  @color = get_color(color)
end

#set_fg_color(color = 0x40) ⇒ Object

The set_fg_color() method can be used to set the foreground colour of a pattern.

Default state:      Color is off
Default action:     Solid fill.
Valid args:         See set_color()

For further examples see the 'Patterns' worksheet created by formats.rb.


1538
1539
1540
# File 'lib/writeexcel/format.rb', line 1538

def set_fg_color(color = 0x40)
  @fg_color = get_color(color)
end

#set_font(fontname) ⇒ Object

Default state: Font is Arial

Default action:     None
Valid args:         Any valid font name

Specify the font used:

format.set_font('Times New Roman');

Excel can only display fonts that are installed on the system that it is running on. Therefore it is best to use the fonts that come as standard such as 'Arial', 'Times New Roman' and 'Courier New'. See also the Fonts worksheet created by formats.rb


1297
1298
1299
# File 'lib/writeexcel/format.rb', line 1297

def set_font(fontname)
  @font = fontname
end

#set_font_outline(arg = 1) ⇒ Object

Macintosh only.

Default state:      Outline is off
Default action:     Turn outline on
Valid args:         0, 1

798
799
800
801
802
803
804
805
806
807
808
# File 'lib/writeexcel/format.rb', line 798

def set_font_outline(arg = 1)
  begin
    if    arg == 0 then @font_outline = 0
    elsif arg == 1 then @font_outline = 1
    else
      raise ArgumentError,
      "\n\n  set_font_outline(#{arg.inspect})\n    arg must be 0, 1, or none.\n"
      " ( 0:OFF, 1 and none:outline on )\n"
    end
  end
end

#set_font_script(arg = 1) ⇒ Object

Set the superscript/subscript property of the font. This format is currently not very useful.

Default state:      Super/Subscript is off
Default action:     Turn Superscript on
Valid args:         0  = Normal
                    1  = Superscript
                    2  = Subscript

778
779
780
781
782
783
784
785
786
787
788
789
# File 'lib/writeexcel/format.rb', line 778

def set_font_script(arg = 1)
  begin
    if    arg == 0 then @font_script = 0
    elsif arg == 1 then @font_script = 1
    elsif arg == 2 then @font_script = 2
    else
      raise ArgumentError,
      "\n\n  set_font_script(#{arg.inspect})\n    arg must be 0, 1, or none. or 2\n"
      " ( 0:OFF, 1 and none:Superscript, 2:Subscript )\n"
    end
  end
end

#set_font_shadow(arg = 1) ⇒ Object

Macintosh only.

Default state:      Shadow is off
Default action:     Turn shadow on
Valid args:         0, 1

817
818
819
820
821
822
823
824
825
826
827
# File 'lib/writeexcel/format.rb', line 817

def set_font_shadow(arg = 1)
  begin
    if    arg == 0 then @font_shadow = 0
    elsif arg == 1 then @font_shadow = 1
    else
      raise ArgumentError,
      "\n\n  set_font_shadow(#{arg.inspect})\n    arg must be 0, 1, or none.\n"
      " ( 0:OFF, 1 and none:shadow on )\n"
    end
  end
end

#set_font_strikeout(arg = 1) ⇒ Object

Set the strikeout property of the font.

Default state:      Strikeout is off
Default action:     Turn strikeout on
Valid args:         0, 1

756
757
758
759
760
761
762
763
764
765
766
# File 'lib/writeexcel/format.rb', line 756

def set_font_strikeout(arg = 1)
  begin
    if    arg == 0 then @font_strikeout = 0
    elsif arg == 1 then @font_strikeout = 1
    else
      raise ArgumentError,
      "\n\n  set_font_strikeout(#{arg.inspect})\n    arg must be 0, 1, or none.\n"
      " ( 0:OFF, 1 and none:Strikeout )\n"
    end
  end
end

#set_format_properties(*properties) ⇒ Object

:call-seq:

set_format_properties( :bold => 1 [, :color => 'red'..] )
set_format_properties( font [, shade, ..])
set_format_properties( :bold => 1, font, ...)
  *) font  = { :color => 'red', :bold => 1 }
     shade = { :bg_color => 'green', :pattern => 1 }

Convert hashes of properties to method calls.

The properties of an existing Format object can be also be set by means of set_format_properties():

format = workbook.add_format
format.set_format_properties(:bold => 1, :color => 'red');

However, this method is here mainly for legacy reasons. It is preferable to set the properties in the format constructor:

format = workbook.add_format(:bold => 1, :color => 'red');

1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
# File 'lib/writeexcel/format.rb', line 1265

def set_format_properties(*properties)   # :nodoc:
  return if properties.empty?
  properties.each do |property|
    property.each do |key, value|
      # Strip leading "-" from Tk style properties e.g. "-color" => 'red'.
      key = key.sub(/^-/, '') if key.respond_to?(:to_str)

      # Create a sub to set the property.
      if value.respond_to?(:to_str) || !value.respond_to?(:+)
        s = "set_#{key}('#{value}')"
      else
        s = "set_#{key}(#{value})"
      end
      eval s
    end
  end
end

#set_hidden(arg = 1) ⇒ Object

hide a formula while still displaying its result.

Default state:      Formula hiding is off
Default action:     Turn hiding on
Valid args:         0, 1

This property is used to hide a formula while still displaying its result. This is generally used to hide complex calculations from end users who are only interested in the result. It only has an effect if the worksheet has been protected, see the worksheet protect() method.

hidden = workbook.add_format
hidden.set_hidden

# Enable worksheet protection
worksheet.protect

# The formula in this cell isn't visible
worksheet.write('A1', '=1+2', hidden)

Note: This offers weak protection even with a password,

see the note in relation to the protect() method  .

896
897
898
899
900
901
902
903
904
905
906
# File 'lib/writeexcel/format.rb', line 896

def set_hidden(arg = 1)
  begin
    if    arg == 0 then @hidden = 0
    elsif arg == 1 then @hidden = 1
    else
      raise ArgumentError,
      "\n\n  set_hidden(#{arg.inspect})\n    arg must be 0, 1, or none.\n"
      " ( 0:OFF, 1 and none:hiding On )\n"
    end
  end
end

#set_indent(indent = 1) ⇒ Object

This method can be used to indent text. The argument, which should be an integer, is taken as the level of indentation:

Default state:      Text indentation is off
Default action:     Indent text 1 level
Valid args:         Positive integers

format = workbook.add_format
format.set_indent(2)
worksheet.write(0, 0, 'This text is indented', format)

Indentation is a horizontal alignment property. It will override any other horizontal properties but it can be used in conjunction with vertical properties.


1459
1460
1461
# File 'lib/writeexcel/format.rb', line 1459

def set_indent(indent = 1)
  @indent = indent
end

#set_italic(arg = 1) ⇒ Object

Set the italic property of the font:

Default state:      Italic is off
Default action:     Turn italic on
Valid args:         0, 1

format.set_italic    # Turn italic on

677
678
679
680
681
682
683
684
685
686
# File 'lib/writeexcel/format.rb', line 677

def set_italic(arg = 1)
  begin
    if    arg == 1  then @italic = 1   # italic on
    elsif arg == 0  then @italic = 0   # italic off
    else
      raise ArgumentError,
      "\n\n  set_italic(#{arg.inspect})\n    arg must be 0, 1, or none. ( 0:OFF , 1 and none:ON )\n"
    end
  end
end

#set_left(style) ⇒ Object

set left border of the cell. see set_border() about style.


1133
1134
1135
# File 'lib/writeexcel/format.rb', line 1133

def set_left(style)
  @left = style
end

#set_left_color(color) ⇒ Object

set left border color of the cell. see set_border_color() about color.


1190
1191
1192
# File 'lib/writeexcel/format.rb', line 1190

def set_left_color(color)
  @left_color = get_color(color)
end

#set_locked(arg = 1) ⇒ Object

prevent modification of a cells contents.

Default state:      Cell locking is on
Default action:     Turn locking on
Valid args:         0, 1

This property can be used to prevent modification of a cells contents. Following Excel's convention, cell locking is turned on by default. However, it only has an effect if the worksheet has been protected, see the worksheet protect() method.

locked  = workbook.add_format()
locked.set_locked(1) # A non-op

unlocked = workbook.add_format()
locked.set_locked(0)

# Enable worksheet protection
worksheet.protect()

# This cell cannot be edited.
worksheet.write('A1', '=1+2', locked)

# This cell can be edited.
worksheet.write('A2', '=1+2', unlocked)

Note: This offers weak protection even with a password, see the note in relation to the protect() method.


859
860
861
862
863
864
865
866
867
868
869
# File 'lib/writeexcel/format.rb', line 859

def set_locked(arg = 1)
  begin
    if    arg == 0 then @locked = 0
    elsif arg == 1 then @locked = 1
    else
      raise ArgumentError,
      "\n\n  set_locked(#{arg.inspect})\n    arg must be 0, 1, or none.\n"
      " ( 0:OFF, 1 and none:Lock On )\n"
    end
  end
end

#set_merge(val = true) ⇒ Object

This was the way to implement a merge in Excel5. However it should have been called “center_across” and not “merge”. This is now deprecated. Use set_center_across() or better merge_range().


1009
1010
1011
# File 'lib/writeexcel/format.rb', line 1009

def set_merge(val=true)  # :nodoc:
  set_text_h_align(6)
end

#set_num_format(num_format) ⇒ Object

This method is used to define the numerical format of a number in Excel.

Default state:      General format
Default action:     Format index 1
Valid args:         See the following table

It controls whether a number is displayed as an integer, a floating point number, a date, a currency value or some other user defined format.

The numerical format of a cell can be specified by using a format string or an index to one of Excel's built-in formats:

format1 = workbook.add_format
format2 = workbook.add_format
format1.set_num_format('d mmm yyyy')  # Format string
format2.set_num_format(0x0f)          # Format index

worksheet.write(0, 0, 36892.521, format1)       # 1 Jan 2001
worksheet.write(0, 0, 36892.521, format2)       # 1-Jan-01

Using format strings you can define very sophisticated formatting of numbers.

format01.set_num_format('0.000')
worksheet.write(0,  0, 3.1415926, format01)     # 3.142

format02.set_num_format('#,##0')
worksheet.write(1,  0, 1234.56,   format02)     # 1,235

format03.set_num_format('#,##0.00')
worksheet.write(2,  0, 1234.56,   format03)     # 1,234.56

format04.set_num_format('0.00')
worksheet.write(3,  0, 49.99,     format04)     # 49.99

# Note you can use other currency symbols such as the pound or yen as well.
# Other currencies may require the use of Unicode.

format07.set_num_format('mm/dd/yy')
worksheet.write(6,  0, 36892.521, format07)     # 01/01/01

format08.set_num_format('mmm d yyyy')
worksheet.write(7,  0, 36892.521, format08)     # Jan 1 2001

format09.set_num_format('d mmmm yyyy')
worksheet.write(8,  0, 36892.521, format09)     # 1 January 2001

format10.set_num_format('dd/mm/yyyy hh:mm AM/PM')
worksheet.write(9,  0, 36892.521, format10)     # 01/01/2001 12:30 AM

format11.set_num_format('0 "dollar and" .00 "cents"')
worksheet.write(10, 0, 1.87,      format11)     # 1 dollar and .87 cents

# Conditional formatting
format12.set_num_format('[Green]General;[Red]-General;General')
worksheet.write(11, 0, 123,       format12)     # > 0 Green
worksheet.write(12, 0, -45,       format12)     # < 0 Red
worksheet.write(13, 0, 0,         format12)     # = 0 Default colour

# Zip code
format13.set_num_format('00000')
worksheet.write(14, 0, '01209',   format13)

The number system used for dates is described in “DATES AND TIME IN EXCEL”.

The colour format should have one of the following values:

[Black] [Blue] [Cyan] [Green] [Magenta] [Red] [White] [Yellow]

Alternatively you can specify the colour based on a colour index as follows: [Color n], where n is a standard Excel colour index - 7. See the 'Standard colors' worksheet created by formats.rb.

For more information refer to the documentation on formatting in the doc directory of the WriteExcel distro, the Excel on-line help or office.microsoft.com/en-gb/assistance/HP051995001033.aspx

You should ensure that the format string is valid in Excel prior to using it in WriteExcel.

Excel's built-in formats are shown in the following table:

Index   Index   Format String
0       0x00    General
1       0x01    0
2       0x02    0.00
3       0x03    #,##0
4       0x04    #,##0.00
5       0x05    ($#,##0_);($#,##0)
6       0x06    ($#,##0_);[Red]($#,##0)
7       0x07    ($#,##0.00_);($#,##0.00)
8       0x08    ($#,##0.00_);[Red]($#,##0.00)
9       0x09    0%
10      0x0a    0.00%
11      0x0b    0.00E+00
12      0x0c    # ?/?
13      0x0d    # ??/??
14      0x0e    m/d/yy
15      0x0f    d-mmm-yy
16      0x10    d-mmm
17      0x11    mmm-yy
18      0x12    h:mm AM/PM
19      0x13    h:mm:ss AM/PM
20      0x14    h:mm
21      0x15    h:mm:ss
22      0x16    m/d/yy h:mm
..      ....    ...........
37      0x25    (#,##0_);(#,##0)
38      0x26    (#,##0_);[Red](#,##0)
39      0x27    (#,##0.00_);(#,##0.00)
40      0x28    (#,##0.00_);[Red](#,##0.00)
41      0x29    _(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)
42      0x2a    _($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)
43      0x2b    _(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)
44      0x2c    _($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
45      0x2d    mm:ss
46      0x2e    [h]:mm:ss
47      0x2f    mm:ss.0
48      0x30    ##0.0E+0
49      0x31    @

For examples of these formatting codes see the 'Numerical formats' worksheet created by formats.rb. – See also the number_formats1.html and the number_formats2.html documents in the doc directory of the distro. ++

Note 1. Numeric formats 23 to 36 are not documented by Microsoft and may differ in international versions.

Note 2. In Excel 5 the dollar sign appears as a dollar sign. In Excel 97-2000 it appears as the defined local currency symbol.

Note 3. The red negative numeric formats display slightly differently in Excel 5 and Excel 97-2000.


1439
1440
1441
# File 'lib/writeexcel/format.rb', line 1439

def set_num_format(num_format)
  @num_format = num_format
end

#set_pattern(pattern = 1) ⇒ Object

Default state: Pattern is off

Default action:     Solid fill is on
Valid args:         0 .. 18

Set the background pattern of a cell.

Examples of the available patterns are shown in the 'Patterns' worksheet created by formats.rb. However, it is unlikely that you will ever need anything other than Pattern 1 which is a solid fill of the background color.


1500
1501
1502
# File 'lib/writeexcel/format.rb', line 1500

def set_pattern(pattern = 1)
  @pattern = pattern
end

#set_right(style) ⇒ Object

set right border of the cell. see set_border() about style.


1141
1142
1143
# File 'lib/writeexcel/format.rb', line 1141

def set_right(style)
  @right = style
end

#set_right_color(color) ⇒ Object

set right border color of the cell. see set_border_color() about color.


1198
1199
1200
# File 'lib/writeexcel/format.rb', line 1198

def set_right_color(color)
  @right_color = get_color(color)
end

#set_rotation(rotation) ⇒ Object

Set the rotation angle of the text. An alignment property.

Default state:      Text rotation is off
Default action:     None
Valid args:         Integers in the range -90 to 90 and 270

Set the rotation of the text in a cell. The rotation can be any angle in the range -90 to 90 degrees.

format = workbook.add_format
format.set_rotation(30)
worksheet.write(0, 0, 'This text is rotated', format)

The angle 270 is also supported. This indicates text where the letters run from top to bottom.


1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
# File 'lib/writeexcel/format.rb', line 1219

def set_rotation(rotation)
  # The arg type can be a double but the Excel dialog only allows integers.
  rotation = rotation.to_i

  #      if (rotation == 270)
  #         rotation = 255
  #      elsif (rotation >= -90 or rotation <= 90)
  #         rotation = -rotation +90 if rotation < 0;
  #      else
  #         # carp "Rotation $rotation outside range: -90 <= angle <= 90";
  #         rotation = 0;
  #      end
  #
  if rotation == 270
    rotation = 255
  elsif rotation >= -90 && rotation <= 90
    rotation = -rotation + 90 if rotation < 0
  else
    rotation = 0
  end

  @rotation = rotation
end

#set_shrink(arg = 1) ⇒ Object

This method can be used to shrink text so that it fits in a cell.

Default state:      Text shrinking is off
Default action:     Turn "shrink to fit" on
Valid args:         1

format = workbook.add_format
format.set_shrink
worksheet.write(0, 0, 'Honey, I shrunk the text!', format)

1474
1475
1476
# File 'lib/writeexcel/format.rb', line 1474

def set_shrink(arg = 1)
  @shrink = 1
end

#set_size(size = 1) ⇒ Object

Default state: Font size is 10

Default action:     Set font size to 1
Valid args:         Integer values from 1 to as big as your screen.

Set the font size. Excel adjusts the height of a row to accommodate the largest font size in the row. You can also explicitly specify the height of a row using the set_row() worksheet method.

format = workbook.add_format
format.set_size(30)

638
639
640
641
642
# File 'lib/writeexcel/format.rb', line 638

def set_size(size = 1)
 if size.respond_to?(:to_int) && size.respond_to?(:+) && size >= 1 # avoid Symbol
   @size = size.to_int
 end
end

#set_text_justlast(arg = 1) ⇒ Object

Default state: Justify last is off

Default action:     Turn justify last on
Valid args:         0, 1

Only applies to Far Eastern versions of Excel.


1485
1486
1487
# File 'lib/writeexcel/format.rb', line 1485

def set_text_justlast(arg = 1)
  @text_justlast = 1
end

#set_text_wrap(arg = 1) ⇒ Object

Default state: Text wrap is off

Default action:     Turn text wrap on
Valid args:         0, 1

Here is an example using the text wrap property, the escape character n is used to indicate the end of line:

format = workbook.add_format()
format.set_text_wrap()
worksheet.write(0, 0, "It's\na bum\nwrap", format)

1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
# File 'lib/writeexcel/format.rb', line 1025

def set_text_wrap(arg = 1)
  begin
    if    arg == 0 then @text_wrap = 0
    elsif arg == 1 then @text_wrap = 1
    else
      raise ArgumentError,
      "\n\n  set_text_wrap(#{arg.inspect})\n    arg must be 0, 1, or none.\n"
      " ( 0:OFF, 1 and none:text wrap On )\n"
    end
  end
end

#set_top(style) ⇒ Object

set top border of the cell. see set_border() about style.


1125
1126
1127
# File 'lib/writeexcel/format.rb', line 1125

def set_top(style)
  @top = style
end

#set_top_color(color) ⇒ Object

set top border color of the cell. see set_border_color() about color.


1182
1183
1184
# File 'lib/writeexcel/format.rb', line 1182

def set_top_color(color)
  @top_color = get_color(color)
end

#set_type(type = nil) ⇒ Object

Set the XF object type as 0 = cell XF or 0xFFF5 = style XF.


617
618
619
620
621
622
623
624
# File 'lib/writeexcel/format.rb', line 617

def set_type(type = nil)  # :nodoc:

  if !type.nil? and type == 0
    @type = 0x0000
  else
    @type = 0xFFF5
  end
end

#set_underline(arg = 1) ⇒ Object

Set the underline property of the font.

Default state:      Underline is off
Default action:     Turn on single underline
Valid args:         0  = No underline
                    1  = Single underline
                    2  = Double underline
                    33 = Single accounting underline
                    34 = Double accounting underline

format.set_underline();   # Single underline

733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
# File 'lib/writeexcel/format.rb', line 733

def set_underline(arg = 1)
  begin
    case arg
    when  0  then @underline =  0    # off
    when  1  then @underline =  1    # Single
    when  2  then @underline =  2    # Double
    when 33  then @underline = 33    # Single accounting
    when 34  then @underline = 34    # Double accounting
    else
      raise ArgumentError,
      "\n\n  set_underline(#{arg.inspect})\n    arg must be 0, 1, or none, 2, 33, 34.\n"
      " ( 0:OFF, 1 and none:Single, 2:Double, 33:Single accounting, 34:Double accounting )\n"
    end
  end
end

#set_valign(alignment) ⇒ Object

Set vertical cell alignment. This is required by the set_format_properties() method to differentiate between the vertical and horizontal properties.


973
974
975
# File 'lib/writeexcel/format.rb', line 973

def set_valign(alignment)  # :nodoc:
  set_align(alignment)
end

#shrinkObject

:nodoc:


581
582
583
# File 'lib/writeexcel/format.rb', line 581

def shrink  # :nodoc:
  @shrink
end

#sizeObject

:nodoc:


445
446
447
# File 'lib/writeexcel/format.rb', line 445

def size  # :nodoc:
  @size
end

#text_h_alignObject

:nodoc:


513
514
515
# File 'lib/writeexcel/format.rb', line 513

def text_h_align  # :nodoc:
  @text_h_align
end

#text_justlastObject

:nodoc:


525
526
527
# File 'lib/writeexcel/format.rb', line 525

def text_justlast  # :nodoc:
  @text_justlast
end

#text_v_alignObject

:nodoc:


521
522
523
# File 'lib/writeexcel/format.rb', line 521

def text_v_align  # :nodoc:
  @text_v_align
end

#text_wrapObject

:nodoc:


517
518
519
# File 'lib/writeexcel/format.rb', line 517

def text_wrap  # :nodoc:
  @text_wrap
end

#topObject

:nodoc:


549
550
551
# File 'lib/writeexcel/format.rb', line 549

def top  # :nodoc:
  @top
end

#top_colorObject

:nodoc:


565
566
567
# File 'lib/writeexcel/format.rb', line 565

def top_color  # :nodoc:
  @top_color
end

#typeObject

:nodoc:


429
430
431
# File 'lib/writeexcel/format.rb', line 429

def type  # :nodoc:
  @type
end

#underlineObject

:nodoc:


461
462
463
# File 'lib/writeexcel/format.rb', line 461

def underline  # :nodoc:
  @underline
end

#used_mergeObject

:nodoc:


421
422
423
# File 'lib/writeexcel/format.rb', line 421

def used_merge  # :nodoc:
  @used_merge
end

#used_merge=(val) ⇒ Object

:nodoc:


425
426
427
# File 'lib/writeexcel/format.rb', line 425

def used_merge=(val)  # :nodoc:
  @used_merge = val
end

#xf_indexObject

Returns the used by Worksheet->_XF()


417
418
419
# File 'lib/writeexcel/format.rb', line 417

def xf_index  # :nodoc:
  @xf_index
end