jruby_excelcom 0.0.1-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.//jruby_excelcom.gemspec +13 -0
- data/LICENSE +201 -0
- data/doc/ExcelColor.html +95 -0
- data/doc/ExcelConnection.html +709 -0
- data/doc/JavaExcelcom.html +95 -0
- data/doc/LICENSE.html +283 -0
- data/doc/MiniTest.html +95 -0
- data/doc/Object.html +153 -0
- data/doc/Time.html +95 -0
- data/doc/Workbook.html +520 -0
- data/doc/Worksheet.html +1111 -0
- data/doc/created.rid +12 -0
- data/doc/css/fonts.css +167 -0
- data/doc/css/rdoc.css +590 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +103 -0
- data/doc/jruby_excelcom_gemspec.html +98 -0
- data/doc/js/darkfish.js +161 -0
- data/doc/js/jquery.js +4 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search.js +109 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js +228 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/table_of_contents.html +337 -0
- data/lib/jars/excelcom-0.0.5.jar +0 -0
- data/lib/jars/jna-4.4.0.jar +0 -0
- data/lib/jars/jna-platform-4.4.0.jar +0 -0
- data/lib/jruby_excelcom/excel_connection.rb +81 -0
- data/lib/jruby_excelcom/workbook.rb +46 -0
- data/lib/jruby_excelcom/worksheet.rb +136 -0
- data/lib/jruby_excelcom.rb +22 -0
- data/test/resources/test.xlsx +0 -0
- data/test/resources/test2.xlsx +0 -0
- data/test/test_helper.rb +4 -0
- data/test/unit/excel_connection_spec.rb +38 -0
- data/test/unit/workbook_spec.rb +41 -0
- data/test/unit/worksheet_spec.rb +100 -0
- metadata +114 -0
@@ -0,0 +1,337 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
|
7
|
+
<title>Table of Contents - RDoc Documentation</title>
|
8
|
+
|
9
|
+
<script type="text/javascript">
|
10
|
+
var rdoc_rel_prefix = "./";
|
11
|
+
</script>
|
12
|
+
|
13
|
+
<script src="./js/jquery.js"></script>
|
14
|
+
<script src="./js/darkfish.js"></script>
|
15
|
+
|
16
|
+
<link href="./css/fonts.css" rel="stylesheet">
|
17
|
+
<link href="./css/rdoc.css" rel="stylesheet">
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
<body id="top" class="table-of-contents">
|
22
|
+
<main role="main">
|
23
|
+
<h1 class="class">Table of Contents - RDoc Documentation</h1>
|
24
|
+
|
25
|
+
<h2 id="pages">Pages</h2>
|
26
|
+
<ul>
|
27
|
+
<li class="file">
|
28
|
+
<a href="LICENSE.html">LICENSE</a>
|
29
|
+
</li>
|
30
|
+
<li class="file">
|
31
|
+
<a href="jruby_excelcom_gemspec.html">jruby_excelcom.gemspec</a>
|
32
|
+
</li>
|
33
|
+
|
34
|
+
</ul>
|
35
|
+
|
36
|
+
<h2 id="classes">Classes and Modules</h2>
|
37
|
+
<ul>
|
38
|
+
<li class="module">
|
39
|
+
<a href="ExcelColor.html">ExcelColor</a>
|
40
|
+
</li>
|
41
|
+
<li class="class">
|
42
|
+
<a href="ExcelConnection.html">ExcelConnection</a>
|
43
|
+
</li>
|
44
|
+
<li class="module">
|
45
|
+
<a href="JavaExcelcom.html">JavaExcelcom</a>
|
46
|
+
</li>
|
47
|
+
<li class="module">
|
48
|
+
<a href="MiniTest.html">MiniTest</a>
|
49
|
+
</li>
|
50
|
+
<li class="module">
|
51
|
+
<a href="Time.html">Time</a>
|
52
|
+
</li>
|
53
|
+
<li class="class">
|
54
|
+
<a href="Workbook.html">Workbook</a>
|
55
|
+
</li>
|
56
|
+
<li class="class">
|
57
|
+
<a href="Worksheet.html">Worksheet</a>
|
58
|
+
</li>
|
59
|
+
</ul>
|
60
|
+
|
61
|
+
<h2 id="methods">Methods</h2>
|
62
|
+
<ul>
|
63
|
+
|
64
|
+
<li class="method">
|
65
|
+
<a href="ExcelConnection.html#method-c-connect">::connect</a>
|
66
|
+
—
|
67
|
+
<span class="container">ExcelConnection</span>
|
68
|
+
|
69
|
+
<li class="method">
|
70
|
+
<a href="ExcelConnection.html#method-c-initialize_com">::initialize_com</a>
|
71
|
+
—
|
72
|
+
<span class="container">ExcelConnection</span>
|
73
|
+
|
74
|
+
<li class="method">
|
75
|
+
<a href="ExcelConnection.html#method-c-new">::new</a>
|
76
|
+
—
|
77
|
+
<span class="container">ExcelConnection</span>
|
78
|
+
|
79
|
+
<li class="method">
|
80
|
+
<a href="Workbook.html#method-c-new">::new</a>
|
81
|
+
—
|
82
|
+
<span class="container">Workbook</span>
|
83
|
+
|
84
|
+
<li class="method">
|
85
|
+
<a href="Worksheet.html#method-c-new">::new</a>
|
86
|
+
—
|
87
|
+
<span class="container">Worksheet</span>
|
88
|
+
|
89
|
+
<li class="method">
|
90
|
+
<a href="ExcelConnection.html#method-c-uninitialize_com">::uninitialize_com</a>
|
91
|
+
—
|
92
|
+
<span class="container">ExcelConnection</span>
|
93
|
+
|
94
|
+
<li class="method">
|
95
|
+
<a href="ExcelConnection.html#method-i-active_workbook">#active_workbook</a>
|
96
|
+
—
|
97
|
+
<span class="container">ExcelConnection</span>
|
98
|
+
|
99
|
+
<li class="method">
|
100
|
+
<a href="Workbook.html#method-i-addWorksheet">#addWorksheet</a>
|
101
|
+
—
|
102
|
+
<span class="container">Workbook</span>
|
103
|
+
|
104
|
+
<li class="method">
|
105
|
+
<a href="Workbook.html#method-i-add_worksheet">#add_worksheet</a>
|
106
|
+
—
|
107
|
+
<span class="container">Workbook</span>
|
108
|
+
|
109
|
+
<li class="method">
|
110
|
+
<a href="Worksheet.html#method-i-border_color">#border_color</a>
|
111
|
+
—
|
112
|
+
<span class="container">Worksheet</span>
|
113
|
+
|
114
|
+
<li class="method">
|
115
|
+
<a href="Worksheet.html#method-i-border_color-3D">#border_color=</a>
|
116
|
+
—
|
117
|
+
<span class="container">Worksheet</span>
|
118
|
+
|
119
|
+
<li class="method">
|
120
|
+
<a href="Workbook.html#method-i-close">#close</a>
|
121
|
+
—
|
122
|
+
<span class="container">Workbook</span>
|
123
|
+
|
124
|
+
<li class="method">
|
125
|
+
<a href="Worksheet.html#method-i-content">#content</a>
|
126
|
+
—
|
127
|
+
<span class="container">Worksheet</span>
|
128
|
+
|
129
|
+
<li class="method">
|
130
|
+
<a href="Worksheet.html#method-i-content-3D">#content=</a>
|
131
|
+
—
|
132
|
+
<span class="container">Worksheet</span>
|
133
|
+
|
134
|
+
<li class="method">
|
135
|
+
<a href="Worksheet.html#method-i-delete">#delete</a>
|
136
|
+
—
|
137
|
+
<span class="container">Worksheet</span>
|
138
|
+
|
139
|
+
<li class="method">
|
140
|
+
<a href="ExcelConnection.html#method-i-display_alerts-3D">#display_alerts=</a>
|
141
|
+
—
|
142
|
+
<span class="container">ExcelConnection</span>
|
143
|
+
|
144
|
+
<li class="method">
|
145
|
+
<a href="Worksheet.html#method-i-fill_color">#fill_color</a>
|
146
|
+
—
|
147
|
+
<span class="container">Worksheet</span>
|
148
|
+
|
149
|
+
<li class="method">
|
150
|
+
<a href="Worksheet.html#method-i-fill_color-3D">#fill_color=</a>
|
151
|
+
—
|
152
|
+
<span class="container">Worksheet</span>
|
153
|
+
|
154
|
+
<li class="method">
|
155
|
+
<a href="Worksheet.html#method-i-font_color">#font_color</a>
|
156
|
+
—
|
157
|
+
<span class="container">Worksheet</span>
|
158
|
+
|
159
|
+
<li class="method">
|
160
|
+
<a href="Worksheet.html#method-i-font_color-3D">#font_color=</a>
|
161
|
+
—
|
162
|
+
<span class="container">Worksheet</span>
|
163
|
+
|
164
|
+
<li class="method">
|
165
|
+
<a href="ExcelConnection.html#method-i-getActiveWorkbook">#getActiveWorkbook</a>
|
166
|
+
—
|
167
|
+
<span class="container">ExcelConnection</span>
|
168
|
+
|
169
|
+
<li class="method">
|
170
|
+
<a href="Worksheet.html#method-i-getBorderColor">#getBorderColor</a>
|
171
|
+
—
|
172
|
+
<span class="container">Worksheet</span>
|
173
|
+
|
174
|
+
<li class="method">
|
175
|
+
<a href="Worksheet.html#method-i-getContent">#getContent</a>
|
176
|
+
—
|
177
|
+
<span class="container">Worksheet</span>
|
178
|
+
|
179
|
+
<li class="method">
|
180
|
+
<a href="Worksheet.html#method-i-getFillColor">#getFillColor</a>
|
181
|
+
—
|
182
|
+
<span class="container">Worksheet</span>
|
183
|
+
|
184
|
+
<li class="method">
|
185
|
+
<a href="Worksheet.html#method-i-getFontColor">#getFontColor</a>
|
186
|
+
—
|
187
|
+
<span class="container">Worksheet</span>
|
188
|
+
|
189
|
+
<li class="method">
|
190
|
+
<a href="Workbook.html#method-i-getName">#getName</a>
|
191
|
+
—
|
192
|
+
<span class="container">Workbook</span>
|
193
|
+
|
194
|
+
<li class="method">
|
195
|
+
<a href="Worksheet.html#method-i-getName">#getName</a>
|
196
|
+
—
|
197
|
+
<span class="container">Worksheet</span>
|
198
|
+
|
199
|
+
<li class="method">
|
200
|
+
<a href="ExcelConnection.html#method-i-getVersion">#getVersion</a>
|
201
|
+
—
|
202
|
+
<span class="container">ExcelConnection</span>
|
203
|
+
|
204
|
+
<li class="method">
|
205
|
+
<a href="Workbook.html#method-i-getWorksheet">#getWorksheet</a>
|
206
|
+
—
|
207
|
+
<span class="container">Workbook</span>
|
208
|
+
|
209
|
+
<li class="method">
|
210
|
+
<a href="Workbook.html#method-i-name">#name</a>
|
211
|
+
—
|
212
|
+
<span class="container">Workbook</span>
|
213
|
+
|
214
|
+
<li class="method">
|
215
|
+
<a href="Worksheet.html#method-i-name">#name</a>
|
216
|
+
—
|
217
|
+
<span class="container">Worksheet</span>
|
218
|
+
|
219
|
+
<li class="method">
|
220
|
+
<a href="Worksheet.html#method-i-name-3D">#name=</a>
|
221
|
+
—
|
222
|
+
<span class="container">Worksheet</span>
|
223
|
+
|
224
|
+
<li class="method">
|
225
|
+
<a href="ExcelConnection.html#method-i-openWorkbook">#openWorkbook</a>
|
226
|
+
—
|
227
|
+
<span class="container">ExcelConnection</span>
|
228
|
+
|
229
|
+
<li class="method">
|
230
|
+
<a href="ExcelConnection.html#method-i-open_workbook">#open_workbook</a>
|
231
|
+
—
|
232
|
+
<span class="container">ExcelConnection</span>
|
233
|
+
|
234
|
+
<li class="method">
|
235
|
+
<a href="ExcelConnection.html#method-i-quit">#quit</a>
|
236
|
+
—
|
237
|
+
<span class="container">ExcelConnection</span>
|
238
|
+
|
239
|
+
<li class="method">
|
240
|
+
<a href="Workbook.html#method-i-save">#save</a>
|
241
|
+
—
|
242
|
+
<span class="container">Workbook</span>
|
243
|
+
|
244
|
+
<li class="method">
|
245
|
+
<a href="Workbook.html#method-i-saveAs">#saveAs</a>
|
246
|
+
—
|
247
|
+
<span class="container">Workbook</span>
|
248
|
+
|
249
|
+
<li class="method">
|
250
|
+
<a href="Workbook.html#method-i-save_as">#save_as</a>
|
251
|
+
—
|
252
|
+
<span class="container">Workbook</span>
|
253
|
+
|
254
|
+
<li class="method">
|
255
|
+
<a href="Worksheet.html#method-i-setBorderColor">#setBorderColor</a>
|
256
|
+
—
|
257
|
+
<span class="container">Worksheet</span>
|
258
|
+
|
259
|
+
<li class="method">
|
260
|
+
<a href="Worksheet.html#method-i-setContent">#setContent</a>
|
261
|
+
—
|
262
|
+
<span class="container">Worksheet</span>
|
263
|
+
|
264
|
+
<li class="method">
|
265
|
+
<a href="ExcelConnection.html#method-i-setDisplayAlerts">#setDisplayAlerts</a>
|
266
|
+
—
|
267
|
+
<span class="container">ExcelConnection</span>
|
268
|
+
|
269
|
+
<li class="method">
|
270
|
+
<a href="Worksheet.html#method-i-setFillColor">#setFillColor</a>
|
271
|
+
—
|
272
|
+
<span class="container">Worksheet</span>
|
273
|
+
|
274
|
+
<li class="method">
|
275
|
+
<a href="Worksheet.html#method-i-setFontColor">#setFontColor</a>
|
276
|
+
—
|
277
|
+
<span class="container">Worksheet</span>
|
278
|
+
|
279
|
+
<li class="method">
|
280
|
+
<a href="Worksheet.html#method-i-setName">#setName</a>
|
281
|
+
—
|
282
|
+
<span class="container">Worksheet</span>
|
283
|
+
|
284
|
+
<li class="method">
|
285
|
+
<a href="ExcelConnection.html#method-i-setVisible">#setVisible</a>
|
286
|
+
—
|
287
|
+
<span class="container">ExcelConnection</span>
|
288
|
+
|
289
|
+
<li class="method">
|
290
|
+
<a href="Worksheet.html#method-i-set_border_color">#set_border_color</a>
|
291
|
+
—
|
292
|
+
<span class="container">Worksheet</span>
|
293
|
+
|
294
|
+
<li class="method">
|
295
|
+
<a href="Worksheet.html#method-i-set_content">#set_content</a>
|
296
|
+
—
|
297
|
+
<span class="container">Worksheet</span>
|
298
|
+
|
299
|
+
<li class="method">
|
300
|
+
<a href="Worksheet.html#method-i-set_fill_color">#set_fill_color</a>
|
301
|
+
—
|
302
|
+
<span class="container">Worksheet</span>
|
303
|
+
|
304
|
+
<li class="method">
|
305
|
+
<a href="Worksheet.html#method-i-set_font_color">#set_font_color</a>
|
306
|
+
—
|
307
|
+
<span class="container">Worksheet</span>
|
308
|
+
|
309
|
+
<li class="method">
|
310
|
+
<a href="ExcelConnection.html#method-i-version">#version</a>
|
311
|
+
—
|
312
|
+
<span class="container">ExcelConnection</span>
|
313
|
+
|
314
|
+
<li class="method">
|
315
|
+
<a href="ExcelConnection.html#method-i-visible-3D">#visible=</a>
|
316
|
+
—
|
317
|
+
<span class="container">ExcelConnection</span>
|
318
|
+
|
319
|
+
<li class="method">
|
320
|
+
<a href="ExcelConnection.html#method-i-workbook">#workbook</a>
|
321
|
+
—
|
322
|
+
<span class="container">ExcelConnection</span>
|
323
|
+
|
324
|
+
<li class="method">
|
325
|
+
<a href="Workbook.html#method-i-worksheet">#worksheet</a>
|
326
|
+
—
|
327
|
+
<span class="container">Workbook</span>
|
328
|
+
</ul>
|
329
|
+
</main>
|
330
|
+
|
331
|
+
|
332
|
+
<footer id="validator-badges" role="contentinfo">
|
333
|
+
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
334
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.1.
|
335
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
336
|
+
</footer>
|
337
|
+
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
class ExcelConnection
|
4
|
+
# initializes com and connects to an excel instance
|
5
|
+
# +use_active_instance+:: whether an existing excel instance should be used or a new isntance should be created. Default value is +false+
|
6
|
+
def initialize(use_active_instance = false)
|
7
|
+
@con = JavaExcelcom::ExcelConnection::connect(use_active_instance)
|
8
|
+
end
|
9
|
+
|
10
|
+
# see +new+
|
11
|
+
# optional block possible, where <tt>ExcelConnection#quit</tt> gets called on blocks end
|
12
|
+
# e.g. <tt>ExcelConnection::connect{|con| con.workbook ... }</tt>
|
13
|
+
def self.connect(use_active_instance = false)
|
14
|
+
con = self.new(use_active_instance)
|
15
|
+
if block_given?
|
16
|
+
yield(con)
|
17
|
+
con.quit
|
18
|
+
else
|
19
|
+
con
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# initializes com manually, not recommended! happens automatically when an instance is created
|
24
|
+
def self.initialize_com
|
25
|
+
JavaExcelcom::ExcelConnection::initialize_com
|
26
|
+
end
|
27
|
+
|
28
|
+
# uninitializes com manually, not recommended! should happen automatically when <tt>ExcelConnection#quit</tt> is called.
|
29
|
+
def self.uninitialize_com
|
30
|
+
JavaExcelcom::ExcelConnection::uninitialize_com
|
31
|
+
end
|
32
|
+
|
33
|
+
# whether the excel instance should be visible or not
|
34
|
+
def visible=(v)
|
35
|
+
@con.setVisible v
|
36
|
+
end
|
37
|
+
alias :setVisible :visible=
|
38
|
+
|
39
|
+
# whether dialog boxes should show up or not (e.g. when saving and overwriting a file)
|
40
|
+
def display_alerts=(da)
|
41
|
+
@con.setDisplayAlerts(da)
|
42
|
+
end
|
43
|
+
alias :setDisplayAlerts :display_alerts=
|
44
|
+
|
45
|
+
# gets excel version
|
46
|
+
def version
|
47
|
+
@con.getVersion
|
48
|
+
end
|
49
|
+
alias :getVersion :version
|
50
|
+
|
51
|
+
# quits the excel instance and uninitializes com
|
52
|
+
def quit
|
53
|
+
@con.quit
|
54
|
+
end
|
55
|
+
|
56
|
+
# gets the active workbook
|
57
|
+
def active_workbook
|
58
|
+
Workbook.new(@con.getActiveWorkbook)
|
59
|
+
end
|
60
|
+
alias :getActiveWorkbook :active_workbook
|
61
|
+
|
62
|
+
# opens a workbook. Optional block possible where workbook gets closed on blocks end, e.g.
|
63
|
+
# <tt>con.workbook{|wb| puts wb.name }</tt>
|
64
|
+
# +file+:: workbook to be opened. Can be a string or a file object
|
65
|
+
def workbook(file)
|
66
|
+
if file.is_a? String
|
67
|
+
wb = Workbook.new(@con.openWorkbook(java.io.File.new(file)))
|
68
|
+
else
|
69
|
+
wb = Workbook.new(@con.openWorkbook(java.io.File.new(file.path)))
|
70
|
+
end
|
71
|
+
if block_given?
|
72
|
+
yield(wb)
|
73
|
+
wb.close
|
74
|
+
else
|
75
|
+
wb
|
76
|
+
end
|
77
|
+
end
|
78
|
+
alias :openWorkbook :workbook
|
79
|
+
alias :open_workbook :workbook
|
80
|
+
|
81
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
class Workbook
|
4
|
+
|
5
|
+
def initialize(java_wb)
|
6
|
+
@wb = java_wb
|
7
|
+
end
|
8
|
+
|
9
|
+
# gets the name of this workbook
|
10
|
+
def name
|
11
|
+
@wb.getName
|
12
|
+
end
|
13
|
+
alias :getName :name
|
14
|
+
|
15
|
+
# closes this workbook
|
16
|
+
# +save+:: whether changes should be saved or not, default is +false+
|
17
|
+
def close(save = false)
|
18
|
+
@wb.close(save)
|
19
|
+
end
|
20
|
+
|
21
|
+
# saves this workbook
|
22
|
+
def save
|
23
|
+
@wb.save
|
24
|
+
end
|
25
|
+
|
26
|
+
# saves this workbook to a new location. Every further operations on this workbook will happen to the newly saved file.
|
27
|
+
def save_as(path)
|
28
|
+
@wb.saveAs(java.io.File.new(path))
|
29
|
+
end
|
30
|
+
alias :saveAs :save_as
|
31
|
+
|
32
|
+
# adds and returns a worksheet to this workbook
|
33
|
+
# +name+:: name of new worksheet
|
34
|
+
def add_worksheet(name)
|
35
|
+
Worksheet.new(@wb.addWorksheet(name))
|
36
|
+
end
|
37
|
+
alias :addWorksheet :add_worksheet
|
38
|
+
|
39
|
+
# gets a worksheet
|
40
|
+
# +name+:: name of worksheet to get
|
41
|
+
def worksheet(name)
|
42
|
+
Worksheet.new(@wb.getWorksheet(name))
|
43
|
+
end
|
44
|
+
alias :getWorksheet :worksheet
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
class Worksheet
|
4
|
+
|
5
|
+
def initialize(java_ws)
|
6
|
+
@ws = java_ws
|
7
|
+
end
|
8
|
+
|
9
|
+
# sets the name of this worksheet
|
10
|
+
def name=(name)
|
11
|
+
@ws.setName(name)
|
12
|
+
end
|
13
|
+
alias :setName :name=
|
14
|
+
|
15
|
+
# gets the name of this worksheet
|
16
|
+
def name
|
17
|
+
@ws.getName
|
18
|
+
end
|
19
|
+
alias :getName :name
|
20
|
+
|
21
|
+
# deletes this worksheet
|
22
|
+
def delete
|
23
|
+
@ws.delete
|
24
|
+
end
|
25
|
+
|
26
|
+
# returns the content in range as a matrix, a vector or a single value, depending on +range+'s dimensions
|
27
|
+
# +range+:: range with content to get, default value is _UsedRange_
|
28
|
+
def content(range = 'UsedRange')
|
29
|
+
c = @ws.getContent(range).to_a.each{ |row| row.to_a }
|
30
|
+
columns = c.size
|
31
|
+
rows = columns > 0 ? c[0].size : 0
|
32
|
+
if columns == 1 and rows == 1 # range is one cell
|
33
|
+
c[0][0].is_a?(Java::JavaUtil::Date) ? Time.at(c[0][0].getTime/1000) : c[0][0]
|
34
|
+
elsif (columns > 1 and rows == 1) or (columns == 1 and rows > 1) # range is one column or row
|
35
|
+
c.flatten.map!{|cell| cell.is_a?(Java::JavaUtil::Date) ? Time.at(cell.getTime/1000) : cell }
|
36
|
+
else # range is a matrix
|
37
|
+
c.map!{|row| row.map!{|cell| cell.is_a?(Java::JavaUtil::Date) ? Time.at(cell.getTime/1000) : cell }}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
alias :getContent :content
|
41
|
+
|
42
|
+
# sets content in a range
|
43
|
+
# +range+:: range in worksheet, e.g. 'A1:B3'
|
44
|
+
# +content+:: may be a matrix, a vector or a single value. If it's a matrix or vector, its dimensions must be equal to +range+'s dimensions
|
45
|
+
def set_content(range, content)
|
46
|
+
if content.is_a?(Array)
|
47
|
+
if content[0].is_a?(Array) # content is a matrix
|
48
|
+
@ws.java_send :setContent, [java.lang.String, java.lang.Object[][]], range, content
|
49
|
+
elsif JavaExcelcom::Util::getRangeSize(range)[0] == 1 # content is a row
|
50
|
+
@ws.java_send :setContent, [java.lang.String, java.lang.Object[][]], range, [content]
|
51
|
+
else # content is a column
|
52
|
+
@ws.java_send :setContent, [java.lang.String, java.lang.Object[][]], range, content.map{|cell| [cell] }
|
53
|
+
end
|
54
|
+
else # content is a single value
|
55
|
+
@ws.java_send :setContent, [java.lang.String, java.lang.Object], range, content
|
56
|
+
end
|
57
|
+
end
|
58
|
+
alias :setContent :set_content
|
59
|
+
|
60
|
+
# sets content in a range
|
61
|
+
# +hash+:: must contain +:range+ and +:content+, e.g. <tt>{:range => 'A1:A3', :content => [1,2,3]}</tt>. Otherwise an +ArgumentError+ is raised
|
62
|
+
def content=(hash)
|
63
|
+
raise ArgumentError, 'cannot set content, argument is not a hash' unless hash.is_a? Hash
|
64
|
+
raise ArgumentError, 'cannot set content, hash does not contain :range or :content key' if hash[:range].nil? or hash[:content].nil?
|
65
|
+
set_content hash[:range], hash[:content]
|
66
|
+
end
|
67
|
+
|
68
|
+
# fills cells in range with color
|
69
|
+
# +range+:: range to be colorized
|
70
|
+
# +color+:: color to be used, must be an ExcelColor, e.g. ExcelColor::RED
|
71
|
+
def set_fill_color(range, color)
|
72
|
+
@ws.setFillColor(range, color)
|
73
|
+
end
|
74
|
+
alias :setFillColor :set_fill_color
|
75
|
+
|
76
|
+
# fills cells in range with color
|
77
|
+
# +hash+:: must contain +:range+ and +:color+
|
78
|
+
def fill_color=(hash)
|
79
|
+
raise ArgumentError, 'cannot set fill color, argument is not a hash' unless hash.is_a? Hash
|
80
|
+
raise ArgumentError, 'cannot set fill color, hash does not contain :range or :color key' if hash[:range].nil? or hash[:color].nil?
|
81
|
+
set_fill_color hash[:range], hash[:color]
|
82
|
+
end
|
83
|
+
|
84
|
+
# gets the fill color of cells in range. Throws a +NullpointerException+ if range contains multiple colors
|
85
|
+
def fill_color(range)
|
86
|
+
@ws.getFillColor(range)
|
87
|
+
end
|
88
|
+
alias :getFillColor :fill_color
|
89
|
+
|
90
|
+
# sets font color of cells in range
|
91
|
+
# +range+:: range to be colorized
|
92
|
+
# +color+:: color to be used, must be an ExcelColor, e.g. ExcelColor::RED
|
93
|
+
def set_font_color(range, color)
|
94
|
+
@ws.setFontColor(range, color)
|
95
|
+
end
|
96
|
+
alias :setFontColor :set_font_color
|
97
|
+
|
98
|
+
# sets font color of cells in range
|
99
|
+
# +hash+:: must contain +:range+ and +:color+
|
100
|
+
def font_color=(hash)
|
101
|
+
raise ArgumentError, 'cannot set font color, argument is not a hash' unless hash.is_a? Hash
|
102
|
+
raise ArgumentError, 'cannot set font color, hash does not contain :range or :color key' if hash[:range].nil? or hash[:color].nil?
|
103
|
+
set_font_color hash[:range], hash[:color]
|
104
|
+
end
|
105
|
+
|
106
|
+
# gets the font color of cells in range. Throws a +NullpointerException+ if range contains multiple colors
|
107
|
+
def font_color(range)
|
108
|
+
@ws.getFontColor(range)
|
109
|
+
end
|
110
|
+
alias :getFontColor :font_color
|
111
|
+
|
112
|
+
# sets border color of cells in range
|
113
|
+
# +range+:: range to be colorized
|
114
|
+
# +color+:: color to be used, must be an ExcelColor, e.g. ExcelColor::RED
|
115
|
+
def set_border_color(range, color)
|
116
|
+
@ws.setBorderColor(range, color)
|
117
|
+
end
|
118
|
+
alias :setBorderColor :set_border_color
|
119
|
+
|
120
|
+
# sets border color of cells in range
|
121
|
+
# +hash+:: must contain +:range+ and +:color+
|
122
|
+
def border_color=(hash)
|
123
|
+
raise ArgumentError, 'cannot set border color, argument is not a hash' unless hash.is_a? Hash
|
124
|
+
raise ArgumentError, 'cannot set border color, hash does not contain :range or :color key' if hash[:range].nil? or hash[:color].nil?
|
125
|
+
set_border_color hash[:range], hash[:color]
|
126
|
+
end
|
127
|
+
|
128
|
+
# gets the border color of cells in range. Throws a +NullpointerException+ if range contains multiple colors
|
129
|
+
def border_color(range)
|
130
|
+
@ws.getBorderColor(range)
|
131
|
+
end
|
132
|
+
alias :getBorderColor :border_color
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'java'
|
4
|
+
require_relative 'jars/jna-4.4.0.jar'
|
5
|
+
require_relative 'jars/jna-platform-4.4.0.jar'
|
6
|
+
require_relative 'jars/excelcom-0.0.5.jar'
|
7
|
+
require_relative 'jruby_excelcom/excel_connection'
|
8
|
+
require_relative 'jruby_excelcom/workbook'
|
9
|
+
require_relative 'jruby_excelcom/worksheet'
|
10
|
+
|
11
|
+
java_import 'excelcom.api.ExcelException'
|
12
|
+
|
13
|
+
module JavaExcelcom
|
14
|
+
java_import 'excelcom.api.ExcelConnection'
|
15
|
+
java_import 'excelcom.util.Util'
|
16
|
+
java_import 'excelcom.api.ExcelColor'
|
17
|
+
end
|
18
|
+
|
19
|
+
module ExcelColor
|
20
|
+
# derive constants from java enum ExcelColor
|
21
|
+
JavaExcelcom::ExcelColor.constants.each{|c| ExcelColor::const_set(c, JavaExcelcom::ExcelColor::const_get(c)) }
|
22
|
+
end
|
Binary file
|
Binary file
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'minitest/autorun'
|
4
|
+
require_relative '../../lib/jruby_excelcom'
|
5
|
+
|
6
|
+
describe 'ExcelConnection' do
|
7
|
+
|
8
|
+
$con ||= begin
|
9
|
+
e = ExcelConnection::connect
|
10
|
+
e.display_alerts = false
|
11
|
+
e
|
12
|
+
end
|
13
|
+
$wb ||= $con.workbook("#{File.dirname(File.absolute_path(__FILE__))}/../resources/test.xlsx")
|
14
|
+
|
15
|
+
Minitest.after_run {
|
16
|
+
$wb.close unless $wb.nil?; $wb = nil
|
17
|
+
$con.quit unless $con.nil?; $con = nil
|
18
|
+
}
|
19
|
+
|
20
|
+
it '::connect' do
|
21
|
+
$con.wont_be_nil
|
22
|
+
ExcelConnection::connect(false) do |con|
|
23
|
+
con.version.is_a? String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it '#version' do
|
28
|
+
$con.version.is_a? String
|
29
|
+
end
|
30
|
+
|
31
|
+
it '#workbook' do
|
32
|
+
$wb.wont_be_nil
|
33
|
+
$con.workbook("#{File.dirname(File.absolute_path(__FILE__))}/../resources/test2.xlsx") { |wb|
|
34
|
+
wb.name.is_a? String
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|