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.
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