spreadsheet_architect 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -14
- data/lib/spreadsheet_architect.rb +53 -15
- data/lib/spreadsheet_architect/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be2d251d985ed779019709a19cd14047e8f26c18
|
4
|
+
data.tar.gz: 5076391ee7d477af958ef6f9dd1cbc438695c57a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87ea6396eb5bed677c7fce4bec9da8588620ecd247ea4bbb9fbf964908809803f27e7959527917a8a404b981f60c31d025b76ea92c16856e0f06f36e84f21790
|
7
|
+
data.tar.gz: 3c5022fd0922a7c2fc2eeec0fbdce445b75ef9a8439b561d412b6c1564b9091de5f89f4d4db414e4243cbe83efb961c2baa881a93474a765884a55c09483306b
|
data/README.md
CHANGED
@@ -105,31 +105,21 @@ end
|
|
105
105
|
### to_xlsx
|
106
106
|
**sheet_name** - *String*
|
107
107
|
|
108
|
-
**header_style** - *Hash* - Default: `{
|
108
|
+
**header_style** - *Hash* - Default: `{background_color: "AAAAAA", color: "FFFFFF", align: :center, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false}`
|
109
109
|
|
110
|
-
**row_style** - Hash
|
110
|
+
**row_style** - Hash - Default: `{background_color: "FFFFFF", color: "FFFFFF", align: :left, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false}`
|
111
111
|
|
112
112
|
### to_ods
|
113
113
|
**sheet_name** - *String*
|
114
114
|
|
115
|
-
**header_style** - *Hash* - Default: {bold: true} - Note: Currently only supports
|
115
|
+
**header_style** - *Hash* - Default: {color: "000000", align: :center, font_size: 10, bold: true} - Note: Currently only supports these options
|
116
116
|
|
117
|
-
**row_style** - *Hash*
|
117
|
+
**row_style** - *Hash* - Default: {color: "000000", align: :left, font_size: 10, bold: false} - Note: Currently only supports these options
|
118
118
|
|
119
119
|
### to_csv
|
120
120
|
Only the generic options
|
121
121
|
|
122
122
|
|
123
|
-
# Style Options
|
124
|
-
**bg_color** - *6 Digit Hex Color without the # Symbol* - Ex. "AAAAAAA"
|
125
|
-
|
126
|
-
**fg_color** - *Text Color - 6 Digit Hex Color without the # Symbol* - Ex. "0000000"
|
127
|
-
|
128
|
-
**alignment** - *Hash* - Ex. {horizontal: :right, vertical: :top}
|
129
|
-
|
130
|
-
**bold** - *Boolean*
|
131
|
-
|
132
|
-
|
133
123
|
# Credits
|
134
124
|
Created by Weston Ganger - @westonganger
|
135
125
|
|
@@ -44,17 +44,20 @@ module SpreadsheetArchitect
|
|
44
44
|
|
45
45
|
headers = (options[:headers] == false ? false : headers)
|
46
46
|
|
47
|
+
header_style = {background_color: "AAAAAA", color: "FFFFFF", align: :center, bold: false, font_name: 'Arial', font_size: 10, italic: false, underline: false}
|
48
|
+
|
47
49
|
if options[:header_style]
|
48
|
-
header_style
|
50
|
+
header_style.merge!(options[:header_style])
|
49
51
|
elsif options[:header_style] == false
|
50
52
|
header_style = false
|
51
53
|
elsif options[:row_style]
|
52
54
|
header_style = options[:row_style]
|
53
|
-
else
|
54
|
-
header_style = {bg_color: "AAAAAA", fg_color: "FFFFFF", alignment: { horizontal: :center }, bold: true}
|
55
55
|
end
|
56
56
|
|
57
|
-
row_style =
|
57
|
+
row_style = {background_color: "FFFFFF", color: "000000", align: :left, bold: false, font_name: 'Arial', font_size: 10, italic: false, underline: false}
|
58
|
+
if options[:row_style]
|
59
|
+
row_style.merge!(options[:row_style])
|
60
|
+
end
|
58
61
|
|
59
62
|
sheet_name = options[:sheet_name] || self.name
|
60
63
|
|
@@ -106,12 +109,17 @@ module SpreadsheetArchitect
|
|
106
109
|
|
107
110
|
spreadsheet.office_style :header_style, family: :cell do
|
108
111
|
if options[:header_style]
|
109
|
-
|
112
|
+
unless opts[:row_style] && opts[:row_style][:bold] == false #uses opts, temporary
|
110
113
|
property :text, 'font-weight': :bold
|
111
|
-
property :text, 'align': :center
|
112
114
|
end
|
113
|
-
if options[:header_style][:
|
114
|
-
property :text, '
|
115
|
+
if options[:header_style][:align]
|
116
|
+
property :text, 'align': options[:header_style][:align]
|
117
|
+
end
|
118
|
+
if options[:header_style][:size]
|
119
|
+
property :text, 'font-size': options[:header_style][:size]
|
120
|
+
end
|
121
|
+
if options[:header_style][:color] && opts[:header_style] && opts[:header_style][:color] #temporary
|
122
|
+
property :text, 'color': "##{options[:header_style][:color]}"
|
115
123
|
end
|
116
124
|
end
|
117
125
|
end
|
@@ -120,8 +128,14 @@ module SpreadsheetArchitect
|
|
120
128
|
if options[:row_style][:bold]
|
121
129
|
property :text, 'font-weight': :bold
|
122
130
|
end
|
123
|
-
if options[:row_style][:
|
124
|
-
property :text, '
|
131
|
+
if options[:row_style][:align]
|
132
|
+
property :text, 'align': options[:row_style][:align]
|
133
|
+
end
|
134
|
+
if options[:row_style][:size]
|
135
|
+
property :text, 'font-size': options[:row_style][:size]
|
136
|
+
end
|
137
|
+
if opts[:row_style] && opts[:row_style][:color] #uses opts, temporary
|
138
|
+
property :text, 'color': "##{options[:row_style][:color]}"
|
125
139
|
end
|
126
140
|
end
|
127
141
|
end
|
@@ -131,14 +145,14 @@ module SpreadsheetArchitect
|
|
131
145
|
if options[:headers]
|
132
146
|
row do
|
133
147
|
options[:headers].each do |header|
|
134
|
-
cell header, style:
|
148
|
+
cell header, style: :header_style
|
135
149
|
end
|
136
150
|
end
|
137
151
|
end
|
138
152
|
options[:data].each do |x|
|
139
153
|
row do
|
140
154
|
this_class.sa_get_row_data(options[:columns], x).each do |y|
|
141
|
-
cell y, style:
|
155
|
+
cell y, style: :row_style
|
142
156
|
end
|
143
157
|
end
|
144
158
|
end
|
@@ -149,18 +163,42 @@ module SpreadsheetArchitect
|
|
149
163
|
|
150
164
|
def to_xlsx(opts={})
|
151
165
|
options = sa_get_options(opts)
|
166
|
+
|
167
|
+
header_style = {}
|
168
|
+
header_style[:fg_color] = options[:header_style].delete(:color)
|
169
|
+
header_style[:bg_color] = options[:header_style].delete(:background_color)
|
170
|
+
if header_style[:align]
|
171
|
+
header_style[:alignment] = {}
|
172
|
+
header_style[:alignment][:horizontal] = options[:header_style][:align]
|
173
|
+
end
|
174
|
+
header_style[:b] = options[:header_style].delete(:bold)
|
175
|
+
header_style[:sz] = options[:header_style].delete(:font_size)
|
176
|
+
header_style[:i] = options[:header_style].delete(:italic)
|
177
|
+
header_style[:u] = options[:header_style].delete(:underline)
|
178
|
+
|
179
|
+
row_style = {}
|
180
|
+
row_style[:fg_color] = options[:row_style].delete(:color)
|
181
|
+
row_style[:bg_color] = options[:row_style].delete(:background_color)
|
182
|
+
if row_style[:align]
|
183
|
+
row_style[:alignment] = {}
|
184
|
+
row_style[:alignment][:horizontal] = options[:row_style][:align]
|
185
|
+
end
|
186
|
+
row_style[:b] = options[:row_style].delete(:bold)
|
187
|
+
row_style[:sz] = options[:row_style].delete(:font_size)
|
188
|
+
row_style[:i] = options[:row_style].delete(:italic)
|
189
|
+
row_style[:u] = options[:row_style].delete(:underline)
|
152
190
|
|
153
|
-
package =
|
191
|
+
package = Axlsx::Package.new
|
154
192
|
|
155
193
|
return package if options[:data].empty?
|
156
194
|
|
157
195
|
package.workbook.add_worksheet(name: options[:sheet_name]) do |sheet|
|
158
196
|
if options[:headers]
|
159
|
-
sheet.add_row options[:headers], style:
|
197
|
+
sheet.add_row options[:headers], style: package.workbook.styles.add_style(header_style)
|
160
198
|
end
|
161
199
|
|
162
200
|
options[:data].each do |x|
|
163
|
-
sheet.add_row sa_get_row_data(options[:columns], x), style:
|
201
|
+
sheet.add_row sa_get_row_data(options[:columns], x), style: package.workbook.styles.add_style(row_style), types: options[:types]
|
164
202
|
end
|
165
203
|
end
|
166
204
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spreadsheet_architect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Weston Ganger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: axlsx
|