summaryrefslogtreecommitdiffhomepage
path: root/docs/style_reference.md
blob: 01d7f0087c29ce37cadf26f89da258b35ba9aa54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
# Basic Styling
- `b` (Boolean) - Bold
- `i` (Boolean) - Italic
- `u` (Boolean) - Underline
- `fg_color` (String) - Text Color - Ex: `000000`
- `bg_color` (String) - Cell background color - Ex: `CCCCCC`
- `alignment` (Hash) - Text alignment. 
    - Available sub-options are `:horizontal`, `:vertical`, `:wrap_text`. 
    - Example:  `alignment: {horizontal: true, vertical: true, wrap_text: false}`
- `strike` (Boolean) - Indicates if the text should be rendered with a strikethrough
- `outline` (Boolean) - Indicates if the text should be rendered with a shadow
- `sz` (Integer) - Font Size
- `font_name` (String) - Font Name - Ex. `Arial`
- `family` (Integer) - The font family to use. Options are:
  - `1` - Roman (Default)
  - `2` - Swiss
  - `3` - Modern
  - `4` - Script
  - `5` - Decorative
- `charset` (Integer) - The character set to use. Axlsx documentation says this setting is ignored most of the time.
- `type` (Symbol) - Type of the cell. Options are: `:xf` (Default) or `:dxf`
- `border` (Hash) - Borders support style, color and edges options. Example: `border: {style: :thin, color: "000000", edges: [:top, :bottom, :left, :right]}`. Available styles for the border are: 
  - `:none`
  - `:thin`
  - `:medium`
  - `:dashed`
  - `:dotted`
  - `:thick`
  - `:double`
  - `:hair`
  - `:mediumDashed`
  - `:dashDot`
  - `:mediumDashDot`
  - `:dashDotDot`
  - `:mediumDashDotDot`
  - `:slantDashDot`
- `hidden` (Boolean) - Indicates if the cell should be hidden
- `locked` (Boolean) - Indicates if the cell should be locked
- `format_code` (String) - See section below
- `num_fmt` (Integer) - See section below

# `format_code` and `num_fmt`
To output a dollar sign, comma's every three values, and minumum two decimal places use: 
`format_code: '\$#,##0.00'`

This will output a nicely formatted date/time: 
`m/d/yyyy h:mm:ss AM/PM`

I think its much more preferable to write out the `format_code` manually instead of using `num_fmt` however the option is there.

Heres a list of the `num_fmt` code (left side) and corresponding `format_code` string (right side)

- `1` - `'0'`
- `2` - `'0.00'` 
- `3` - `'#,##0'`
- `4` - `'#,##0.00'`
- `5` - `'$#,##0_);($#,##0)'`
- `6` - `'$#,##0_);Red'`
- `7` - `'$#,##0.00_);($#,##0.00)'`
- `8` - `'$#,##0.00_);Red'`
- `9` - `'0%'`
- `10` - `'0.00%' `
- `11` - `'0.00E+00'`
- `12` - `'# ?/?'`
- `13` - `'# ??/??'`
- `14` - `'m/d/yyyy'`
- `15` - `'d-mmm-yy'`
- `16` - `'d-mmm'`
- `17` - `'mmm-yy'`
- `18` - `'h:mm AM/PM'`
- `19` - `'h:mm:ss AM/PM'`
- `20` - `'h:mm'`
- `21` - `'h:mm:ss'`
- `22` - `'m/d/yyyy h:mm'`
- `37` - `'#,##0_);(#,##0) 38 #,##0_);Red'`
- `39` - `'#,##0.00_);(#,##0.00)'`
- `40` - `'#,##0.00_);Red'`
- `45` - `'mm:ss'`
- `46` - `'[h]:mm:ss'`
- `47` - `'mm:ss.0'`
- `48` - `'##0.0E+0'`
- `49` - `'@'`