fast_excel 0.1.3 → 0.1.4
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.
- 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
|