jruby_excelcom 0.0.1-java
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 +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
|