fast_excel 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/example.rb +7 -1
- data/fast_excel.gemspec +1 -1
- data/lib/fast_excel.rb +73 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b3fea677b83c37195affe038f16bcc03cad62a0
|
4
|
+
data.tar.gz: 91383abc260bb5df19bf9153efcd53f4d1e3fd43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83b36430c0c230863a9659790932a39c4e670d7e0b8c687a8f26ce82998d4f362a201d07ef9bbcbedae9725e66156a5d1ea37db3b9c390b51bdd69e35f295668
|
7
|
+
data.tar.gz: 0ffe702bfd23a34bcd75e3b33d63629928acf8ca2da407a06262d16c40ca4a0ca75846483ca0cf8dff5438832ba18380a0dbef859338def57e1d836445e1ef4b
|
data/example.rb
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
require_relative './lib/fast_excel'
|
2
|
+
require 'pp'
|
2
3
|
|
3
4
|
workbook = FastExcel.open("ffi_example.xlsx", constant_memory: true)
|
4
5
|
|
5
|
-
workbook.default_format
|
6
|
+
workbook.default_format.set(
|
7
|
+
font_size: 0, # user's default
|
8
|
+
#font_family: "Arial"
|
9
|
+
)
|
10
|
+
|
11
|
+
# pp workbook.default_format
|
6
12
|
|
7
13
|
worksheet = workbook.add_worksheet("Payments Report")
|
8
14
|
|
data/fast_excel.gemspec
CHANGED
data/lib/fast_excel.rb
CHANGED
@@ -65,7 +65,28 @@ module FastExcel
|
|
65
65
|
time.to_f / XLSX_DATE_DAY + XLSX_DATE_EPOCH_DIFF + offset / XLSX_DATE_DAY
|
66
66
|
end
|
67
67
|
|
68
|
+
module AttributeHelper
|
69
|
+
def set(value)
|
70
|
+
value.each do |key, value|
|
71
|
+
if respond_to?("#{key}=")
|
72
|
+
send("#{key}=", value)
|
73
|
+
else
|
74
|
+
self[key] = value
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def pretty_print(pp)
|
80
|
+
res = {}
|
81
|
+
members.each do |key|
|
82
|
+
res[key] = respond_to?(key) ? send(key) : self[key]
|
83
|
+
end
|
84
|
+
pp res
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
68
88
|
module WorkbookExt
|
89
|
+
include AttributeHelper
|
69
90
|
|
70
91
|
def bold_cell_format
|
71
92
|
bold = add_format
|
@@ -87,6 +108,7 @@ module FastExcel
|
|
87
108
|
end
|
88
109
|
|
89
110
|
module WorksheetExt
|
111
|
+
include AttributeHelper
|
90
112
|
|
91
113
|
def write_row(row_number, values, formats = nil)
|
92
114
|
values.each_with_index do |value, index|
|
@@ -109,12 +131,63 @@ module FastExcel
|
|
109
131
|
end
|
110
132
|
|
111
133
|
end
|
134
|
+
|
135
|
+
module FormatExt
|
136
|
+
include AttributeHelper
|
137
|
+
|
138
|
+
[:font_size, :font_name, :underline, :font_script, :num_format, :align, :rotation, :indent, :pattern, :border].each do |prop|
|
139
|
+
define_method(prop) do
|
140
|
+
self[prop]
|
141
|
+
end
|
142
|
+
define_method("#{prop}=") do |value|
|
143
|
+
send("set_#{prop}", value)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
[:bold, :italic, :font_outline, :font_shadow, :hidden, :text_wrap, :font_strikeout, :shrink, :text_justlast].each do |prop|
|
148
|
+
define_method(prop) do
|
149
|
+
self[prop]
|
150
|
+
end
|
151
|
+
define_method("#{prop}=") do |value|
|
152
|
+
value ? send("set_#{prop}") : self[prop] = false
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
[:num_format, :font_name].each do |prop|
|
157
|
+
define_method(prop) do
|
158
|
+
self[prop].to_ptr.read_string
|
159
|
+
end
|
160
|
+
|
161
|
+
define_method("#{prop}=") do |value|
|
162
|
+
send("set_#{prop}", value)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def set_font_size(value)
|
167
|
+
if value < 0
|
168
|
+
raise ArgumentError, "font size should be >= 0 (use 0 for user default font size)"
|
169
|
+
end
|
170
|
+
super(value)
|
171
|
+
end
|
172
|
+
|
173
|
+
def font_family
|
174
|
+
font_name
|
175
|
+
end
|
176
|
+
|
177
|
+
def font_family=(value)
|
178
|
+
self.font_name = value
|
179
|
+
end
|
180
|
+
end
|
112
181
|
end
|
113
182
|
|
114
183
|
Libxlsxwriter::Workbook.instance_eval do
|
115
184
|
include FastExcel::WorkbookExt
|
116
185
|
end
|
117
186
|
|
187
|
+
Libxlsxwriter::Format.instance_eval do
|
188
|
+
include FastExcel::FormatExt
|
189
|
+
end
|
190
|
+
|
118
191
|
Libxlsxwriter::Worksheet.instance_eval do
|
119
192
|
include FastExcel::WorksheetExt
|
120
193
|
end
|