nurettin-jruby-poi 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/.travis.yml +2 -0
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +29 -0
  4. data/LICENSE +507 -0
  5. data/NOTICE +21 -0
  6. data/README.markdown +87 -0
  7. data/Rakefile +35 -0
  8. data/VERSION +1 -0
  9. data/bin/autospec +16 -0
  10. data/bin/htmldiff +16 -0
  11. data/bin/ldiff +16 -0
  12. data/bin/rdebug +16 -0
  13. data/bin/rspec +16 -0
  14. data/jruby-poi.gemspec +90 -0
  15. data/lib/ooxml-lib/dom4j-1.6.1.jar +0 -0
  16. data/lib/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar +0 -0
  17. data/lib/ooxml-lib/xmlbeans-2.3.0.jar +0 -0
  18. data/lib/poi/workbook/area.rb +81 -0
  19. data/lib/poi/workbook/cell.rb +175 -0
  20. data/lib/poi/workbook/named_range.rb +30 -0
  21. data/lib/poi/workbook/row.rb +58 -0
  22. data/lib/poi/workbook/workbook.rb +262 -0
  23. data/lib/poi/workbook/worksheet.rb +78 -0
  24. data/lib/poi/workbook.rb +41 -0
  25. data/lib/poi-3.7-20101029.jar +0 -0
  26. data/lib/poi-examples-3.7-20101029.jar +0 -0
  27. data/lib/poi-ooxml-3.7-20101029.jar +0 -0
  28. data/lib/poi-ooxml-schemas-3.7-20101029.jar +0 -0
  29. data/lib/poi-scratchpad-3.7-20101029.jar +0 -0
  30. data/lib/poi.rb +15 -0
  31. data/spec/data/simple_with_picture.ods +0 -0
  32. data/spec/data/simple_with_picture.xls +0 -0
  33. data/spec/data/spreadsheet.ods +0 -0
  34. data/spec/data/timesheet.xlsx +0 -0
  35. data/spec/data/various_samples.xlsx +0 -0
  36. data/spec/facade_spec.rb +48 -0
  37. data/spec/io_spec.rb +69 -0
  38. data/spec/spec_helper.rb +16 -0
  39. data/spec/support/java/jrubypoi/MockOutputStream.java +24 -0
  40. data/spec/support/java/support.jar +0 -0
  41. data/spec/support/matchers/cell_matcher.rb +17 -0
  42. data/spec/workbook_spec.rb +370 -0
  43. data/spec/writing_spec.rb +146 -0
  44. data/spec_debug.sh +32 -0
  45. metadata +135 -0
data/.travis.yml ADDED
@@ -0,0 +1,2 @@
1
+ rvm:
2
+ - jruby
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Add dependencies to develop your gem here.
4
+ # Include everything needed to run rake, tests, features, etc.
5
+ group :development do
6
+ gem "rspec", ">= 2.5.0"
7
+ gem "jeweler", ">= 1.6.0"
8
+ gem "rcov", ">= 0"
9
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,29 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.2)
5
+ git (1.2.5)
6
+ jeweler (1.6.0)
7
+ bundler (~> 1.0.0)
8
+ git (>= 1.2.5)
9
+ rake
10
+ rake (0.9.0)
11
+ rcov (0.9.9)
12
+ rcov (0.9.9-java)
13
+ rspec (2.6.0)
14
+ rspec-core (~> 2.6.0)
15
+ rspec-expectations (~> 2.6.0)
16
+ rspec-mocks (~> 2.6.0)
17
+ rspec-core (2.6.2)
18
+ rspec-expectations (2.6.0)
19
+ diff-lcs (~> 1.1.2)
20
+ rspec-mocks (2.6.0)
21
+
22
+ PLATFORMS
23
+ java
24
+ ruby
25
+
26
+ DEPENDENCIES
27
+ jeweler (>= 1.6.0)
28
+ rcov
29
+ rspec (>= 2.5.0)
data/LICENSE ADDED
@@ -0,0 +1,507 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
203
+
204
+
205
+ APACHE POI SUBCOMPONENTS:
206
+
207
+ Apache POI includes subcomponents with separate copyright notices and
208
+ license terms. Your use of these subcomponents is subject to the terms
209
+ and conditions of the following licenses:
210
+
211
+
212
+ Office Open XML schemas (ooxml-schemas-1.0.jar)
213
+
214
+ The Office Open XML schema definitions used by Apache POI are
215
+ a part of the Office Open XML ECMA Specification (ECMA-376, [1]).
216
+ As defined in section 9.4 of the ECMA bylaws [2], this specification
217
+ is available to all interested parties without restriction:
218
+
219
+ 9.4 All documents when approved shall be made available to
220
+ all interested parties without restriction.
221
+
222
+ Furthermore, both Microsoft and Adobe have granted patent licenses
223
+ to this work [3,4,5].
224
+
225
+ [1] http://www.ecma-international.org/publications/standards/Ecma-376.htm
226
+ [2] http://www.ecma-international.org/memento/Ecmabylaws.htm
227
+ [3] http://www.microsoft.com/interop/osp/
228
+ [4] http://www.ecma-international.org/publications/files/ECMA-ST/Ecma%20PATENT/ECMA-376%20Edition%201%20Microsoft%20Patent%20Declaration.pdf
229
+ [5] http://www.ecma-international.org/publications/files/ECMA-ST/Ecma%20PATENT/ga-2006-191.pdf
230
+
231
+
232
+ DOM4J library (dom4j-1.6.1.jar)
233
+
234
+ Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
235
+
236
+ Redistribution and use of this software and associated documentation
237
+ ("Software"), with or without modification, are permitted provided
238
+ that the following conditions are met:
239
+
240
+ 1. Redistributions of source code must retain copyright
241
+ statements and notices. Redistributions must also contain a
242
+ copy of this document.
243
+
244
+ 2. Redistributions in binary form must reproduce the
245
+ above copyright notice, this list of conditions and the
246
+ following disclaimer in the documentation and/or other
247
+ materials provided with the distribution.
248
+
249
+ 3. The name "DOM4J" must not be used to endorse or promote
250
+ products derived from this Software without prior written
251
+ permission of MetaStuff, Ltd. For written permission,
252
+ please contact dom4j-info@metastuff.com.
253
+
254
+ 4. Products derived from this Software may not be called "DOM4J"
255
+ nor may "DOM4J" appear in their names without prior written
256
+ permission of MetaStuff, Ltd. DOM4J is a registered
257
+ trademark of MetaStuff, Ltd.
258
+
259
+ 5. Due credit should be given to the DOM4J Project -
260
+ http://www.dom4j.org
261
+
262
+ THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS
263
+ ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
264
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
265
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
266
+ METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
267
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
268
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
269
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
270
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
271
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
272
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
273
+ OF THE POSSIBILITY OF SUCH DAMAGE.
274
+
275
+
276
+ JUnit test library (junit-3.8.1.jar)
277
+
278
+ Common Public License - v 1.0
279
+
280
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON
281
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
282
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
283
+
284
+ 1. DEFINITIONS
285
+
286
+ "Contribution" means:
287
+
288
+ a) in the case of the initial Contributor, the initial code and
289
+ documentation distributed under this Agreement, and
290
+
291
+ b) in the case of each subsequent Contributor:
292
+
293
+ i) changes to the Program, and
294
+
295
+ ii) additions to the Program;
296
+
297
+ where such changes and/or additions to the Program originate from
298
+ and are distributed by that particular Contributor. A Contribution
299
+ 'originates' from a Contributor if it was added to the Program by
300
+ such Contributor itself or anyone acting on such Contributor's behalf.
301
+ Contributions do not include additions to the Program which: (i) are
302
+ separate modules of software distributed in conjunction with the
303
+ Program under their own license agreement, and (ii) are not derivative
304
+ works of the Program.
305
+
306
+ "Contributor" means any person or entity that distributes the Program.
307
+
308
+ "Licensed Patents " mean patent claims licensable by a Contributor which
309
+ are necessarily infringed by the use or sale of its Contribution alone
310
+ or when combined with the Program.
311
+
312
+ "Program" means the Contributions distributed in accordance with this
313
+ Agreement.
314
+
315
+ "Recipient" means anyone who receives the Program under this Agreement,
316
+ including all Contributors.
317
+
318
+ 2. GRANT OF RIGHTS
319
+
320
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
321
+ Recipient a non-exclusive, worldwide, royalty-free copyright license
322
+ to reproduce, prepare derivative works of, publicly display, publicly
323
+ perform, distribute and sublicense the Contribution of such
324
+ Contributor, if any, and such derivative works, in source code and
325
+ object code form.
326
+
327
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
328
+ Recipient a non-exclusive, worldwide, royalty-free patent license under
329
+ Licensed Patents to make, use, sell, offer to sell, import and
330
+ otherwise transfer the Contribution of such Contributor, if any, in
331
+ source code and object code form. This patent license shall apply to
332
+ the combination of the Contribution and the Program if, at the time
333
+ the Contribution is added by the Contributor, such addition of the
334
+ Contribution causes such combination to be covered by the Licensed
335
+ Patents. The patent license shall not apply to any other combinations
336
+ which include the Contribution. No hardware per se is licensed
337
+ hereunder.
338
+
339
+ c) Recipient understands that although each Contributor grants the
340
+ licenses to its Contributions set forth herein, no assurances are
341
+ provided by any Contributor that the Program does not infringe the
342
+ patent or other intellectual property rights of any other entity.
343
+ Each Contributor disclaims any liability to Recipient for claims
344
+ brought by any other entity based on infringement of intellectual
345
+ property rights or otherwise. As a condition to exercising the rights
346
+ and licenses granted hereunder, each Recipient hereby assumes sole
347
+ responsibility to secure any other intellectual property rights
348
+ needed, if any. For example, if a third party patent license is
349
+ required to allow Recipient to distribute the Program, it is
350
+ Recipient's responsibility to acquire that license before
351
+ distributing the Program.
352
+
353
+ d) Each Contributor represents that to its knowledge it has sufficient
354
+ copyright rights in its Contribution, if any, to grant the copyright
355
+ license set forth in this Agreement.
356
+
357
+ 3. REQUIREMENTS
358
+
359
+ A Contributor may choose to distribute the Program in object code form
360
+ under its own license agreement, provided that:
361
+
362
+ a) it complies with the terms and conditions of this Agreement; and
363
+
364
+ b) its license agreement:
365
+
366
+ i) effectively disclaims on behalf of all Contributors all warranties
367
+ and conditions, express and implied, including warranties or
368
+ conditions of title and non-infringement, and implied warranties
369
+ or conditions of merchantability and fitness for a particular
370
+ purpose;
371
+
372
+ ii) effectively excludes on behalf of all Contributors all liability
373
+ for damages, including direct, indirect, special, incidental and
374
+ consequential damages, such as lost profits;
375
+
376
+ iii) states that any provisions which differ from this Agreement are
377
+ offered by that Contributor alone and not by any other party; and
378
+
379
+ iv) states that source code for the Program is available from such
380
+ Contributor, and informs licensees how to obtain it in a
381
+ reasonable manner on or through a medium customarily used for
382
+ software exchange.
383
+
384
+ When the Program is made available in source code form:
385
+
386
+ a) it must be made available under this Agreement; and
387
+
388
+ b) a copy of this Agreement must be included with each copy of
389
+ the Program.
390
+
391
+ Contributors may not remove or alter any copyright notices contained
392
+ within the Program.
393
+
394
+ Each Contributor must identify itself as the originator of its
395
+ Contribution, if any, in a manner that reasonably allows subsequent
396
+ Recipients to identify the originator of the Contribution.
397
+
398
+ 4. COMMERCIAL DISTRIBUTION
399
+
400
+ Commercial distributors of software may accept certain responsibilities
401
+ with respect to end users, business partners and the like. While this
402
+ license is intended to facilitate the commercial use of the Program,
403
+ the Contributor who includes the Program in a commercial product offering
404
+ should do so in a manner which does not create potential liability for
405
+ other Contributors. Therefore, if a Contributor includes the Program
406
+ in a commercial product offering, such Contributor ("Commercial
407
+ Contributor") hereby agrees to defend and indemnify every other
408
+ Contributor ("Indemnified Contributor") against any losses, damages
409
+ and costs (collectively "Losses") arising from claims, lawsuits and
410
+ other legal actions brought by a third party against the Indemnified
411
+ Contributor to the extent caused by the acts or omissions of such
412
+ Commercial Contributor in connection with its distribution of the
413
+ Program in a commercial product offering. The obligations in this
414
+ section do not apply to any claims or Losses relating to any actual
415
+ or alleged intellectual property infringement. In order to qualify,
416
+ an Indemnified Contributor must: a) promptly notify the Commercial
417
+ Contributor in writing of such claim, and b) allow the Commercial
418
+ Contributor to control, and cooperate with the Commercial Contributor
419
+ in, the defense and any related settlement negotiations. The Indemnified
420
+ Contributor may participate in any such claim at its own expense.
421
+
422
+ For example, a Contributor might include the Program in a commercial
423
+ product offering, Product X. That Contributor is then a Commercial
424
+ Contributor. If that Commercial Contributor then makes performance
425
+ claims, or offers warranties related to Product X, those performance
426
+ claims and warranties are such Commercial Contributor's responsibility
427
+ alone. Under this section, the Commercial Contributor would have to
428
+ defend claims against the other Contributors related to those
429
+ performance claims and warranties, and if a court requires any other
430
+ Contributor to pay any damages as a result, the Commercial Contributor
431
+ must pay those damages.
432
+
433
+ 5. NO WARRANTY
434
+
435
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED
436
+ ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
437
+ EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
438
+ CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR
439
+ A PARTICULAR PURPOSE. Each Recipient is solely responsible for
440
+ determining the appropriateness of using and distributing the Program
441
+ and assumes all risks associated with its exercise of rights under this
442
+ Agreement, including but not limited to the risks and costs of program
443
+ errors, compliance with applicable laws, damage to or loss of data,
444
+ programs or equipment, and unavailability or interruption of operations.
445
+
446
+ 6. DISCLAIMER OF LIABILITY
447
+
448
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
449
+ ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
450
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
451
+ WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
452
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
453
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
454
+ DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
455
+ HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
456
+
457
+ 7. GENERAL
458
+
459
+ If any provision of this Agreement is invalid or unenforceable under
460
+ applicable law, it shall not affect the validity or enforceability of
461
+ the remainder of the terms of this Agreement, and without further
462
+ action by the parties hereto, such provision shall be reformed to the
463
+ minimum extent necessary to make such provision valid and enforceable.
464
+
465
+ If Recipient institutes patent litigation against a Contributor with
466
+ respect to a patent applicable to software (including a cross-claim or
467
+ counterclaim in a lawsuit), then any patent licenses granted by that
468
+ Contributor to such Recipient under this Agreement shall terminate as of
469
+ the date such litigation is filed. In addition, if Recipient institutes
470
+ patent litigation against any entity (including a cross-claim or
471
+ counterclaim in a lawsuit) alleging that the Program itself (excluding
472
+ combinations of the Program with other software or hardware) infringes
473
+ such Recipient's patent(s), then such Recipient's rights granted under
474
+ Section 2(b) shall terminate as of the date such litigation is filed.
475
+
476
+ All Recipient's rights under this Agreement shall terminate if it fails
477
+ to comply with any of the material terms or conditions of this Agreement
478
+ and does not cure such failure in a reasonable period of time after
479
+ becoming aware of such noncompliance. If all Recipient's rights under
480
+ this Agreement terminate, Recipient agrees to cease use and distribution
481
+ of the Program as soon as reasonably practicable. However, Recipient's
482
+ obligations under this Agreement and any licenses granted by Recipient
483
+ relating to the Program shall continue and survive.
484
+
485
+ Everyone is permitted to copy and distribute copies of this Agreement,
486
+ but in order to avoid inconsistency the Agreement is copyrighted and may
487
+ only be modified in the following manner. The Agreement Steward reserves
488
+ the right to publish new versions (including revisions) of this Agreement
489
+ from time to time. No one other than the Agreement Steward has the right
490
+ to modify this Agreement. IBM is the initial Agreement Steward. IBM may
491
+ assign the responsibility to serve as the Agreement Steward to a suitable
492
+ separate entity. Each new version of the Agreement will be given a
493
+ distinguishing version number. The Program (including Contributions) may
494
+ always be distributed subject to the version of the Agreement under which
495
+ it was received. In addition, after a new version of the Agreement is
496
+ published, Contributor may elect to distribute the Program (including
497
+ its Contributions) under the new version. Except as expressly stated in
498
+ Sections 2(a) and 2(b) above, Recipient receives no rights or licenses
499
+ to the intellectual property of any Contributor under this Agreement,
500
+ whether expressly, by implication, estoppel or otherwise. All rights in
501
+ the Program not expressly granted under this Agreement are reserved.
502
+
503
+ This Agreement is governed by the laws of the State of New York and the
504
+ intellectual property laws of the United States of America. No party to
505
+ this Agreement will bring a legal action under this Agreement more than
506
+ one year after the cause of action arose. Each party waives its rights
507
+ to a jury trial in any resulting litigation.
data/NOTICE ADDED
@@ -0,0 +1,21 @@
1
+ Apache POI
2
+ Copyright 2009 The Apache Software Foundation
3
+
4
+ This product includes software developed by
5
+ The Apache Software Foundation (http://www.apache.org/).
6
+
7
+ This product contains the DOM4J library (http://www.dom4j.org).
8
+ Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
9
+
10
+ This product contains parts that were originally based on software from BEA.
11
+ Copyright (c) 2000-2003, BEA Systems, <http://www.bea.com/>.
12
+
13
+ This product contains W3C XML Schema documents. Copyright 2001-2003 (c)
14
+ World Wide Web Consortium (Massachusetts Institute of Technology, European
15
+ Research Consortium for Informatics and Mathematics, Keio University)
16
+
17
+ This product contains the Piccolo XML Parser for Java
18
+ (http://piccolo.sourceforge.net/). Copyright 2002 Yuval Oren.
19
+
20
+ This product contains the chunks_parse_cmds.tbl file from the vsdump program.
21
+ Copyright (C) 2006-2007 Valek Filippov (frob@df.ru)
data/README.markdown ADDED
@@ -0,0 +1,87 @@
1
+ [jruby-poi](http://github.com/kameeoze/jruby-poi)
2
+ =========
3
+
4
+ This little gem provides an alternative interface to the Apache POI java library, for JRuby. For now the API is targeted at wrapping spreadsheets. We may expand this in the future.
5
+
6
+ INSTALL
7
+ =======
8
+
9
+ * gem install jruby-poi
10
+
11
+ USAGE
12
+ =====
13
+ It's pretty simple really, create a POI::Workbook and access its sheets, rows, and cells. You can read from the spreadsheet, save it (as the filename with which you created or as a new spreadsheet via Workbook#save_as).
14
+
15
+ require 'poi'
16
+
17
+ # given an Excel spreadsheet whose first sheet (Sheet 1) has this data:
18
+ # A B C D E
19
+ # 1 4 A 2010-01-04
20
+ # 2 3 B =DATE(YEAR($E$1), MONTH($E$1), A2)
21
+ # 3 2 C =DATE(YEAR($E$1), MONTH($E$1), A3)
22
+ # 4 1 D =DATE(YEAR($E$1), MONTH($E$1), A4)
23
+
24
+ workbook = POI::Workbook.open('spreadsheet.xlsx')
25
+ sheet = workbook.worksheets["Sheet 1"]
26
+ rows = sheet.rows
27
+
28
+ # get a cell's value -- returns the value as its proper type, evaluating formulas if need be
29
+ rows[0][0].value # => 4.0
30
+ rows[0][1].value # => nil
31
+ rows[0][2].value # => 'A'
32
+ rows[0][3].value # => nil
33
+ rows[0][4].value # => 2010-01-04 as a Date instance
34
+ rows[1][4].value # => 2010-01-03 as a Date instance
35
+ rows[2][4].value # => 2010-01-02 as a Date instance
36
+ rows[3][4].value # => 2010-01-01 as a Date instance
37
+
38
+ # you can access a cell in array style as well... these snippets are all equivalent
39
+ workbook.sheets[0][2][2] # => 'C'
40
+ workbook[0][2][2] # => 'C'
41
+ workbook.sheets['Sheet 1'][2][2] # => 'C'
42
+ workbook['Sheet 1'][2][2] # => 'C'
43
+
44
+ # you can access a cell in 3D cell format too
45
+ workbook['Sheet 1!A1'] # => 4.0
46
+
47
+ # you can even refer to ranges of cells
48
+ workbook['Sheet 1!A1:A3'] # => [4.0, 3.0, 2.0]
49
+
50
+ # if cells E1 - E4 were a named range, you could refer to those cells by its name
51
+ # eg. if the cells were named "dates"...
52
+ workbook['dates'] # => dates from E1 - E4
53
+
54
+ # to get the Cell instance, instead of its value, just use the Workbook#cell method
55
+ workbook.cell('dates') # => cells that contain dates from E1 to E4
56
+ workbook['Sheet 1!A1:A3'] # => cells that contain 4.0, 3.0, and 2.0
57
+
58
+ There's a formatted version of this code [here](http://gist.github.com/557607), but Github doesn't allow embedding script tags in Markdown. Go figure!
59
+
60
+ TODO
61
+ ====
62
+ * fix reading ODS files -- we have a broken spec for this in io_spec.rb
63
+ * add APIs for updating cells in a spreadsheet
64
+ * create API for non-spreadsheet files
65
+
66
+ Contributors
67
+ ============
68
+
69
+ * [Scott Deming](http://github.com/sdeming)
70
+ * [Jason Rogers](http://github.com/jacaetevha)
71
+
72
+ Note on Patches/Pull Requests
73
+ =============================
74
+
75
+ * Fork the project.
76
+ * Make your feature addition or bug fix.
77
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
78
+ * Commit, do not mess with rakefile, version, or history.
79
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
80
+ * Send me a pull request.
81
+
82
+ Copyright
83
+ =========
84
+
85
+ Copyright (c) 2010 Scott Deming and others.
86
+ See NOTICE and LICENSE for details.
87
+