jruby_excelcom 0.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.//jruby_excelcom.gemspec +13 -0
  3. data/LICENSE +201 -0
  4. data/doc/ExcelColor.html +95 -0
  5. data/doc/ExcelConnection.html +709 -0
  6. data/doc/JavaExcelcom.html +95 -0
  7. data/doc/LICENSE.html +283 -0
  8. data/doc/MiniTest.html +95 -0
  9. data/doc/Object.html +153 -0
  10. data/doc/Time.html +95 -0
  11. data/doc/Workbook.html +520 -0
  12. data/doc/Worksheet.html +1111 -0
  13. data/doc/created.rid +12 -0
  14. data/doc/css/fonts.css +167 -0
  15. data/doc/css/rdoc.css +590 -0
  16. data/doc/fonts/Lato-Light.ttf +0 -0
  17. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  18. data/doc/fonts/Lato-Regular.ttf +0 -0
  19. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  20. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  21. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  22. data/doc/images/add.png +0 -0
  23. data/doc/images/arrow_up.png +0 -0
  24. data/doc/images/brick.png +0 -0
  25. data/doc/images/brick_link.png +0 -0
  26. data/doc/images/bug.png +0 -0
  27. data/doc/images/bullet_black.png +0 -0
  28. data/doc/images/bullet_toggle_minus.png +0 -0
  29. data/doc/images/bullet_toggle_plus.png +0 -0
  30. data/doc/images/date.png +0 -0
  31. data/doc/images/delete.png +0 -0
  32. data/doc/images/find.png +0 -0
  33. data/doc/images/loadingAnimation.gif +0 -0
  34. data/doc/images/macFFBgHack.png +0 -0
  35. data/doc/images/package.png +0 -0
  36. data/doc/images/page_green.png +0 -0
  37. data/doc/images/page_white_text.png +0 -0
  38. data/doc/images/page_white_width.png +0 -0
  39. data/doc/images/plugin.png +0 -0
  40. data/doc/images/ruby.png +0 -0
  41. data/doc/images/tag_blue.png +0 -0
  42. data/doc/images/tag_green.png +0 -0
  43. data/doc/images/transparent.png +0 -0
  44. data/doc/images/wrench.png +0 -0
  45. data/doc/images/wrench_orange.png +0 -0
  46. data/doc/images/zoom.png +0 -0
  47. data/doc/index.html +103 -0
  48. data/doc/jruby_excelcom_gemspec.html +98 -0
  49. data/doc/js/darkfish.js +161 -0
  50. data/doc/js/jquery.js +4 -0
  51. data/doc/js/navigation.js +142 -0
  52. data/doc/js/navigation.js.gz +0 -0
  53. data/doc/js/search.js +109 -0
  54. data/doc/js/search_index.js +1 -0
  55. data/doc/js/search_index.js.gz +0 -0
  56. data/doc/js/searcher.js +228 -0
  57. data/doc/js/searcher.js.gz +0 -0
  58. data/doc/table_of_contents.html +337 -0
  59. data/lib/jars/excelcom-0.0.5.jar +0 -0
  60. data/lib/jars/jna-4.4.0.jar +0 -0
  61. data/lib/jars/jna-platform-4.4.0.jar +0 -0
  62. data/lib/jruby_excelcom/excel_connection.rb +81 -0
  63. data/lib/jruby_excelcom/workbook.rb +46 -0
  64. data/lib/jruby_excelcom/worksheet.rb +136 -0
  65. data/lib/jruby_excelcom.rb +22 -0
  66. data/test/resources/test.xlsx +0 -0
  67. data/test/resources/test2.xlsx +0 -0
  68. data/test/test_helper.rb +4 -0
  69. data/test/unit/excel_connection_spec.rb +38 -0
  70. data/test/unit/workbook_spec.rb +41 -0
  71. data/test/unit/worksheet_spec.rb +100 -0
  72. 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
+ &mdash;
67
+ <span class="container">ExcelConnection</span>
68
+
69
+ <li class="method">
70
+ <a href="ExcelConnection.html#method-c-initialize_com">::initialize_com</a>
71
+ &mdash;
72
+ <span class="container">ExcelConnection</span>
73
+
74
+ <li class="method">
75
+ <a href="ExcelConnection.html#method-c-new">::new</a>
76
+ &mdash;
77
+ <span class="container">ExcelConnection</span>
78
+
79
+ <li class="method">
80
+ <a href="Workbook.html#method-c-new">::new</a>
81
+ &mdash;
82
+ <span class="container">Workbook</span>
83
+
84
+ <li class="method">
85
+ <a href="Worksheet.html#method-c-new">::new</a>
86
+ &mdash;
87
+ <span class="container">Worksheet</span>
88
+
89
+ <li class="method">
90
+ <a href="ExcelConnection.html#method-c-uninitialize_com">::uninitialize_com</a>
91
+ &mdash;
92
+ <span class="container">ExcelConnection</span>
93
+
94
+ <li class="method">
95
+ <a href="ExcelConnection.html#method-i-active_workbook">#active_workbook</a>
96
+ &mdash;
97
+ <span class="container">ExcelConnection</span>
98
+
99
+ <li class="method">
100
+ <a href="Workbook.html#method-i-addWorksheet">#addWorksheet</a>
101
+ &mdash;
102
+ <span class="container">Workbook</span>
103
+
104
+ <li class="method">
105
+ <a href="Workbook.html#method-i-add_worksheet">#add_worksheet</a>
106
+ &mdash;
107
+ <span class="container">Workbook</span>
108
+
109
+ <li class="method">
110
+ <a href="Worksheet.html#method-i-border_color">#border_color</a>
111
+ &mdash;
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
+ &mdash;
117
+ <span class="container">Worksheet</span>
118
+
119
+ <li class="method">
120
+ <a href="Workbook.html#method-i-close">#close</a>
121
+ &mdash;
122
+ <span class="container">Workbook</span>
123
+
124
+ <li class="method">
125
+ <a href="Worksheet.html#method-i-content">#content</a>
126
+ &mdash;
127
+ <span class="container">Worksheet</span>
128
+
129
+ <li class="method">
130
+ <a href="Worksheet.html#method-i-content-3D">#content=</a>
131
+ &mdash;
132
+ <span class="container">Worksheet</span>
133
+
134
+ <li class="method">
135
+ <a href="Worksheet.html#method-i-delete">#delete</a>
136
+ &mdash;
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
+ &mdash;
142
+ <span class="container">ExcelConnection</span>
143
+
144
+ <li class="method">
145
+ <a href="Worksheet.html#method-i-fill_color">#fill_color</a>
146
+ &mdash;
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
+ &mdash;
152
+ <span class="container">Worksheet</span>
153
+
154
+ <li class="method">
155
+ <a href="Worksheet.html#method-i-font_color">#font_color</a>
156
+ &mdash;
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
+ &mdash;
162
+ <span class="container">Worksheet</span>
163
+
164
+ <li class="method">
165
+ <a href="ExcelConnection.html#method-i-getActiveWorkbook">#getActiveWorkbook</a>
166
+ &mdash;
167
+ <span class="container">ExcelConnection</span>
168
+
169
+ <li class="method">
170
+ <a href="Worksheet.html#method-i-getBorderColor">#getBorderColor</a>
171
+ &mdash;
172
+ <span class="container">Worksheet</span>
173
+
174
+ <li class="method">
175
+ <a href="Worksheet.html#method-i-getContent">#getContent</a>
176
+ &mdash;
177
+ <span class="container">Worksheet</span>
178
+
179
+ <li class="method">
180
+ <a href="Worksheet.html#method-i-getFillColor">#getFillColor</a>
181
+ &mdash;
182
+ <span class="container">Worksheet</span>
183
+
184
+ <li class="method">
185
+ <a href="Worksheet.html#method-i-getFontColor">#getFontColor</a>
186
+ &mdash;
187
+ <span class="container">Worksheet</span>
188
+
189
+ <li class="method">
190
+ <a href="Workbook.html#method-i-getName">#getName</a>
191
+ &mdash;
192
+ <span class="container">Workbook</span>
193
+
194
+ <li class="method">
195
+ <a href="Worksheet.html#method-i-getName">#getName</a>
196
+ &mdash;
197
+ <span class="container">Worksheet</span>
198
+
199
+ <li class="method">
200
+ <a href="ExcelConnection.html#method-i-getVersion">#getVersion</a>
201
+ &mdash;
202
+ <span class="container">ExcelConnection</span>
203
+
204
+ <li class="method">
205
+ <a href="Workbook.html#method-i-getWorksheet">#getWorksheet</a>
206
+ &mdash;
207
+ <span class="container">Workbook</span>
208
+
209
+ <li class="method">
210
+ <a href="Workbook.html#method-i-name">#name</a>
211
+ &mdash;
212
+ <span class="container">Workbook</span>
213
+
214
+ <li class="method">
215
+ <a href="Worksheet.html#method-i-name">#name</a>
216
+ &mdash;
217
+ <span class="container">Worksheet</span>
218
+
219
+ <li class="method">
220
+ <a href="Worksheet.html#method-i-name-3D">#name=</a>
221
+ &mdash;
222
+ <span class="container">Worksheet</span>
223
+
224
+ <li class="method">
225
+ <a href="ExcelConnection.html#method-i-openWorkbook">#openWorkbook</a>
226
+ &mdash;
227
+ <span class="container">ExcelConnection</span>
228
+
229
+ <li class="method">
230
+ <a href="ExcelConnection.html#method-i-open_workbook">#open_workbook</a>
231
+ &mdash;
232
+ <span class="container">ExcelConnection</span>
233
+
234
+ <li class="method">
235
+ <a href="ExcelConnection.html#method-i-quit">#quit</a>
236
+ &mdash;
237
+ <span class="container">ExcelConnection</span>
238
+
239
+ <li class="method">
240
+ <a href="Workbook.html#method-i-save">#save</a>
241
+ &mdash;
242
+ <span class="container">Workbook</span>
243
+
244
+ <li class="method">
245
+ <a href="Workbook.html#method-i-saveAs">#saveAs</a>
246
+ &mdash;
247
+ <span class="container">Workbook</span>
248
+
249
+ <li class="method">
250
+ <a href="Workbook.html#method-i-save_as">#save_as</a>
251
+ &mdash;
252
+ <span class="container">Workbook</span>
253
+
254
+ <li class="method">
255
+ <a href="Worksheet.html#method-i-setBorderColor">#setBorderColor</a>
256
+ &mdash;
257
+ <span class="container">Worksheet</span>
258
+
259
+ <li class="method">
260
+ <a href="Worksheet.html#method-i-setContent">#setContent</a>
261
+ &mdash;
262
+ <span class="container">Worksheet</span>
263
+
264
+ <li class="method">
265
+ <a href="ExcelConnection.html#method-i-setDisplayAlerts">#setDisplayAlerts</a>
266
+ &mdash;
267
+ <span class="container">ExcelConnection</span>
268
+
269
+ <li class="method">
270
+ <a href="Worksheet.html#method-i-setFillColor">#setFillColor</a>
271
+ &mdash;
272
+ <span class="container">Worksheet</span>
273
+
274
+ <li class="method">
275
+ <a href="Worksheet.html#method-i-setFontColor">#setFontColor</a>
276
+ &mdash;
277
+ <span class="container">Worksheet</span>
278
+
279
+ <li class="method">
280
+ <a href="Worksheet.html#method-i-setName">#setName</a>
281
+ &mdash;
282
+ <span class="container">Worksheet</span>
283
+
284
+ <li class="method">
285
+ <a href="ExcelConnection.html#method-i-setVisible">#setVisible</a>
286
+ &mdash;
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
+ &mdash;
292
+ <span class="container">Worksheet</span>
293
+
294
+ <li class="method">
295
+ <a href="Worksheet.html#method-i-set_content">#set_content</a>
296
+ &mdash;
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
+ &mdash;
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
+ &mdash;
307
+ <span class="container">Worksheet</span>
308
+
309
+ <li class="method">
310
+ <a href="ExcelConnection.html#method-i-version">#version</a>
311
+ &mdash;
312
+ <span class="container">ExcelConnection</span>
313
+
314
+ <li class="method">
315
+ <a href="ExcelConnection.html#method-i-visible-3D">#visible=</a>
316
+ &mdash;
317
+ <span class="container">ExcelConnection</span>
318
+
319
+ <li class="method">
320
+ <a href="ExcelConnection.html#method-i-workbook">#workbook</a>
321
+ &mdash;
322
+ <span class="container">ExcelConnection</span>
323
+
324
+ <li class="method">
325
+ <a href="Workbook.html#method-i-worksheet">#worksheet</a>
326
+ &mdash;
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
@@ -0,0 +1,4 @@
1
+ # encoding: utf-8
2
+
3
+ require 'minitest/reporters'
4
+ MiniTest::Reporters.use!
@@ -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