roo 1.13.1 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (235) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +17 -0
  3. data/.github/issue_template.md +16 -0
  4. data/.github/pull_request_template.md +14 -0
  5. data/.github/workflows/pull-request.yml +15 -0
  6. data/.github/workflows/ruby.yml +34 -0
  7. data/.gitignore +11 -0
  8. data/.rubocop.yml +186 -0
  9. data/.simplecov +4 -0
  10. data/CHANGELOG.md +702 -0
  11. data/Gemfile +18 -12
  12. data/Guardfile +23 -0
  13. data/LICENSE +5 -1
  14. data/README.md +328 -0
  15. data/Rakefile +23 -23
  16. data/examples/roo_soap_client.rb +28 -31
  17. data/examples/roo_soap_server.rb +4 -6
  18. data/examples/write_me.rb +9 -10
  19. data/lib/roo/base.rb +317 -504
  20. data/lib/roo/constants.rb +7 -0
  21. data/lib/roo/csv.rb +141 -113
  22. data/lib/roo/errors.rb +11 -0
  23. data/lib/roo/excelx/cell/base.rb +108 -0
  24. data/lib/roo/excelx/cell/boolean.rb +30 -0
  25. data/lib/roo/excelx/cell/date.rb +28 -0
  26. data/lib/roo/excelx/cell/datetime.rb +107 -0
  27. data/lib/roo/excelx/cell/empty.rb +20 -0
  28. data/lib/roo/excelx/cell/number.rb +99 -0
  29. data/lib/roo/excelx/cell/string.rb +19 -0
  30. data/lib/roo/excelx/cell/time.rb +44 -0
  31. data/lib/roo/excelx/cell.rb +110 -0
  32. data/lib/roo/excelx/comments.rb +55 -0
  33. data/lib/roo/excelx/coordinate.rb +19 -0
  34. data/lib/roo/excelx/extractor.rb +39 -0
  35. data/lib/roo/excelx/format.rb +71 -0
  36. data/lib/roo/excelx/images.rb +26 -0
  37. data/lib/roo/excelx/relationships.rb +33 -0
  38. data/lib/roo/excelx/shared.rb +39 -0
  39. data/lib/roo/excelx/shared_strings.rb +151 -0
  40. data/lib/roo/excelx/sheet.rb +151 -0
  41. data/lib/roo/excelx/sheet_doc.rb +257 -0
  42. data/lib/roo/excelx/styles.rb +64 -0
  43. data/lib/roo/excelx/workbook.rb +64 -0
  44. data/lib/roo/excelx.rb +407 -601
  45. data/lib/roo/font.rb +17 -0
  46. data/lib/roo/formatters/base.rb +15 -0
  47. data/lib/roo/formatters/csv.rb +84 -0
  48. data/lib/roo/formatters/matrix.rb +23 -0
  49. data/lib/roo/formatters/xml.rb +31 -0
  50. data/lib/roo/formatters/yaml.rb +40 -0
  51. data/lib/roo/helpers/default_attr_reader.rb +20 -0
  52. data/lib/roo/helpers/weak_instance_cache.rb +41 -0
  53. data/lib/roo/libre_office.rb +4 -0
  54. data/lib/roo/link.rb +34 -0
  55. data/lib/roo/open_office.rb +631 -0
  56. data/lib/roo/spreadsheet.rb +28 -23
  57. data/lib/roo/tempdir.rb +24 -0
  58. data/lib/roo/utils.rb +128 -0
  59. data/lib/roo/version.rb +3 -0
  60. data/lib/roo.rb +26 -24
  61. data/roo.gemspec +29 -202
  62. data/spec/helpers.rb +5 -0
  63. data/spec/lib/roo/base_spec.rb +291 -3
  64. data/spec/lib/roo/csv_spec.rb +38 -11
  65. data/spec/lib/roo/excelx/cell/time_spec.rb +15 -0
  66. data/spec/lib/roo/excelx/format_spec.rb +7 -6
  67. data/spec/lib/roo/excelx/relationships_spec.rb +43 -0
  68. data/spec/lib/roo/excelx/sheet_doc_spec.rb +11 -0
  69. data/spec/lib/roo/excelx_spec.rb +682 -6
  70. data/spec/lib/roo/libreoffice_spec.rb +16 -6
  71. data/spec/lib/roo/openoffice_spec.rb +30 -8
  72. data/spec/lib/roo/spreadsheet_spec.rb +60 -12
  73. data/spec/lib/roo/strict_spec.rb +43 -0
  74. data/spec/lib/roo/utils_spec.rb +119 -0
  75. data/spec/lib/roo/weak_instance_cache_spec.rb +92 -0
  76. data/spec/lib/roo_spec.rb +0 -0
  77. data/spec/spec_helper.rb +7 -6
  78. data/test/all_ss.rb +12 -11
  79. data/test/excelx/cell/test_attr_reader_default.rb +72 -0
  80. data/test/excelx/cell/test_base.rb +68 -0
  81. data/test/excelx/cell/test_boolean.rb +36 -0
  82. data/test/excelx/cell/test_date.rb +38 -0
  83. data/test/excelx/cell/test_datetime.rb +45 -0
  84. data/test/excelx/cell/test_empty.rb +18 -0
  85. data/test/excelx/cell/test_number.rb +90 -0
  86. data/test/excelx/cell/test_string.rb +48 -0
  87. data/test/excelx/cell/test_time.rb +30 -0
  88. data/test/excelx/test_coordinate.rb +51 -0
  89. data/test/formatters/test_csv.rb +136 -0
  90. data/test/formatters/test_matrix.rb +76 -0
  91. data/test/formatters/test_xml.rb +78 -0
  92. data/test/formatters/test_yaml.rb +20 -0
  93. data/test/helpers/test_accessing_files.rb +81 -0
  94. data/test/helpers/test_comments.rb +43 -0
  95. data/test/helpers/test_formulas.rb +9 -0
  96. data/test/helpers/test_labels.rb +103 -0
  97. data/test/helpers/test_sheets.rb +55 -0
  98. data/test/helpers/test_styles.rb +62 -0
  99. data/test/roo/test_base.rb +182 -0
  100. data/test/roo/test_csv.rb +88 -0
  101. data/test/roo/test_excelx.rb +360 -0
  102. data/test/roo/test_libre_office.rb +9 -0
  103. data/test/roo/test_open_office.rb +289 -0
  104. data/test/test_helper.rb +123 -59
  105. data/test/test_roo.rb +392 -2292
  106. metadata +153 -296
  107. data/CHANGELOG +0 -412
  108. data/Gemfile.lock +0 -78
  109. data/README.markdown +0 -126
  110. data/VERSION +0 -1
  111. data/lib/roo/excel.rb +0 -355
  112. data/lib/roo/excel2003xml.rb +0 -300
  113. data/lib/roo/google.rb +0 -292
  114. data/lib/roo/openoffice.rb +0 -496
  115. data/lib/roo/roo_rails_helper.rb +0 -83
  116. data/lib/roo/worksheet.rb +0 -18
  117. data/scripts/txt2html +0 -67
  118. data/spec/lib/roo/excel2003xml_spec.rb +0 -15
  119. data/spec/lib/roo/excel_spec.rb +0 -17
  120. data/spec/lib/roo/google_spec.rb +0 -64
  121. data/test/files/1900_base.xls +0 -0
  122. data/test/files/1900_base.xlsx +0 -0
  123. data/test/files/1904_base.xls +0 -0
  124. data/test/files/1904_base.xlsx +0 -0
  125. data/test/files/Bibelbund.csv +0 -3741
  126. data/test/files/Bibelbund.ods +0 -0
  127. data/test/files/Bibelbund.xls +0 -0
  128. data/test/files/Bibelbund.xlsx +0 -0
  129. data/test/files/Bibelbund.xml +0 -62518
  130. data/test/files/Bibelbund1.ods +0 -0
  131. data/test/files/Pfand_from_windows_phone.xlsx +0 -0
  132. data/test/files/bad_excel_date.xls +0 -0
  133. data/test/files/bbu.ods +0 -0
  134. data/test/files/bbu.xls +0 -0
  135. data/test/files/bbu.xlsx +0 -0
  136. data/test/files/bbu.xml +0 -152
  137. data/test/files/bode-v1.ods.zip +0 -0
  138. data/test/files/bode-v1.xls.zip +0 -0
  139. data/test/files/boolean.csv +0 -2
  140. data/test/files/boolean.ods +0 -0
  141. data/test/files/boolean.xls +0 -0
  142. data/test/files/boolean.xlsx +0 -0
  143. data/test/files/boolean.xml +0 -112
  144. data/test/files/borders.ods +0 -0
  145. data/test/files/borders.xls +0 -0
  146. data/test/files/borders.xlsx +0 -0
  147. data/test/files/borders.xml +0 -144
  148. data/test/files/bug-numbered-sheet-names.xlsx +0 -0
  149. data/test/files/bug-row-column-fixnum-float.xls +0 -0
  150. data/test/files/bug-row-column-fixnum-float.xml +0 -127
  151. data/test/files/comments.ods +0 -0
  152. data/test/files/comments.xls +0 -0
  153. data/test/files/comments.xlsx +0 -0
  154. data/test/files/csvtypes.csv +0 -1
  155. data/test/files/datetime.ods +0 -0
  156. data/test/files/datetime.xls +0 -0
  157. data/test/files/datetime.xlsx +0 -0
  158. data/test/files/datetime.xml +0 -142
  159. data/test/files/datetime_floatconv.xls +0 -0
  160. data/test/files/datetime_floatconv.xml +0 -148
  161. data/test/files/dreimalvier.ods +0 -0
  162. data/test/files/emptysheets.ods +0 -0
  163. data/test/files/emptysheets.xls +0 -0
  164. data/test/files/emptysheets.xlsx +0 -0
  165. data/test/files/emptysheets.xml +0 -105
  166. data/test/files/excel2003.xml +0 -21140
  167. data/test/files/false_encoding.xls +0 -0
  168. data/test/files/false_encoding.xml +0 -132
  169. data/test/files/file_item_error.xlsx +0 -0
  170. data/test/files/formula.ods +0 -0
  171. data/test/files/formula.xls +0 -0
  172. data/test/files/formula.xlsx +0 -0
  173. data/test/files/formula.xml +0 -134
  174. data/test/files/formula_parse_error.xls +0 -0
  175. data/test/files/formula_parse_error.xml +0 -1833
  176. data/test/files/formula_string_error.xlsx +0 -0
  177. data/test/files/html-escape.ods +0 -0
  178. data/test/files/link.xls +0 -0
  179. data/test/files/link.xlsx +0 -0
  180. data/test/files/matrix.ods +0 -0
  181. data/test/files/matrix.xls +0 -0
  182. data/test/files/named_cells.ods +0 -0
  183. data/test/files/named_cells.xls +0 -0
  184. data/test/files/named_cells.xlsx +0 -0
  185. data/test/files/no_spreadsheet_file.txt +0 -1
  186. data/test/files/numbers1.csv +0 -18
  187. data/test/files/numbers1.ods +0 -0
  188. data/test/files/numbers1.xls +0 -0
  189. data/test/files/numbers1.xlsx +0 -0
  190. data/test/files/numbers1.xml +0 -312
  191. data/test/files/only_one_sheet.ods +0 -0
  192. data/test/files/only_one_sheet.xls +0 -0
  193. data/test/files/only_one_sheet.xlsx +0 -0
  194. data/test/files/only_one_sheet.xml +0 -67
  195. data/test/files/paragraph.ods +0 -0
  196. data/test/files/paragraph.xls +0 -0
  197. data/test/files/paragraph.xlsx +0 -0
  198. data/test/files/paragraph.xml +0 -127
  199. data/test/files/prova.xls +0 -0
  200. data/test/files/ric.ods +0 -0
  201. data/test/files/simple_spreadsheet.ods +0 -0
  202. data/test/files/simple_spreadsheet.xls +0 -0
  203. data/test/files/simple_spreadsheet.xlsx +0 -0
  204. data/test/files/simple_spreadsheet.xml +0 -225
  205. data/test/files/simple_spreadsheet_from_italo.ods +0 -0
  206. data/test/files/simple_spreadsheet_from_italo.xls +0 -0
  207. data/test/files/simple_spreadsheet_from_italo.xml +0 -242
  208. data/test/files/so_datetime.csv +0 -7
  209. data/test/files/style.ods +0 -0
  210. data/test/files/style.xls +0 -0
  211. data/test/files/style.xlsx +0 -0
  212. data/test/files/style.xml +0 -154
  213. data/test/files/time-test.csv +0 -2
  214. data/test/files/time-test.ods +0 -0
  215. data/test/files/time-test.xls +0 -0
  216. data/test/files/time-test.xlsx +0 -0
  217. data/test/files/time-test.xml +0 -131
  218. data/test/files/type_excel.ods +0 -0
  219. data/test/files/type_excel.xlsx +0 -0
  220. data/test/files/type_excelx.ods +0 -0
  221. data/test/files/type_excelx.xls +0 -0
  222. data/test/files/type_openoffice.xls +0 -0
  223. data/test/files/type_openoffice.xlsx +0 -0
  224. data/test/files/whitespace.ods +0 -0
  225. data/test/files/whitespace.xls +0 -0
  226. data/test/files/whitespace.xlsx +0 -0
  227. data/test/files/whitespace.xml +0 -184
  228. data/test/rm_sub_test.rb +0 -12
  229. data/test/rm_test.rb +0 -7
  230. data/test/test_generic_spreadsheet.rb +0 -259
  231. data/website/index.html +0 -385
  232. data/website/index.txt +0 -423
  233. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  234. data/website/stylesheets/screen.css +0 -130
  235. data/website/template.rhtml +0 -48
data/CHANGELOG.md ADDED
@@ -0,0 +1,702 @@
1
+ ## [2.10.1] 2024-01-17
2
+
3
+ ### Changed/Added
4
+ - Prevent warnings on Ruby 3.1 if finalizer is called twice [586](https://github.com/roo-rb/roo/pull/586)
5
+ - Fix Roo::Base#each_with_pagename degraded at [576](https://github.com/roo-rb/roo/pull/576) [583](https://github.com/roo-rb/roo/pull/583)
6
+
7
+ ## [2.10.0] 2023-02-07
8
+
9
+ ### Changed/Added
10
+ - Fix gsub! usage for open office documents on a frozen string [581](https://github.com/roo-rb/roo/pull/581)
11
+ - Add support for boolean values in open office files that were generated via Google Sheets [580](https://github.com/roo-rb/roo/pull/580)
12
+ - Roo::Base#each_with_pagename returns Enumerator Object [576](https://github.com/roo-rb/roo/pull/576)
13
+
14
+ ## [2.9.0] 2022-03-19
15
+
16
+ ### Changed/Added
17
+ - Ruby 3.x Support [555](https://github.com/roo-rb/roo/pull/555)
18
+ - Ignore all richdata at 'xl/richData' of XSLX [552](https://github.com/roo-rb/roo/pull/552)
19
+ - Only copy if cell is present when `expand_merged_ranges: true` [557](https://github.com/roo-rb/roo/pull/557)
20
+ - Fixes issue where the contents of hidden sheet was returned when parsing visible sheets only. [536](https://github.com/roo-rb/roo/pull/536)
21
+ - Add formats [525](https://github.com/roo-rb/roo/pull/525)
22
+ - Fix warnings caused by Ruby 2.7 update [530](https://github.com/roo-rb/roo/pull/530)
23
+ - Add formats [525](https://github.com/roo-rb/roo/pull/525)
24
+
25
+ ### Removed
26
+ - Support for ruby 2.4, 2.5, 2.6(excluded jRuby)
27
+
28
+ ## [2.8.3] 2020-02-03
29
+ ### Changed/Added
30
+ - Updated rubyzip version. Now minimal version is 1.3.0 [515](https://github.com/roo-rb/roo/pull/515) - [CVE-2019-16892](https://github.com/rubyzip/rubyzip/pull/403)
31
+
32
+ ## [2.8.2] 2019-02-01
33
+ ### Changed/Added
34
+ - Support range cell for Excelx's links [490](https://github.com/roo-rb/roo/pull/490)
35
+ - Skip `extract_hyperlinks` if not required [488](https://github.com/roo-rb/roo/pull/488)
36
+
37
+ ### Fixed
38
+ - Fixed error for invalid link [492](https://github.com/roo-rb/roo/pull/492)
39
+
40
+ ## [2.8.1] 2019-01-21
41
+ ### Fixed
42
+ - Fixed error if excelx's cell have empty children [487](https://github.com/roo-rb/roo/pull/487)
43
+
44
+ ## [2.8.0] 2019-01-18
45
+ ### Fixed
46
+ - Fixed inconsistent column length for CSV [375](https://github.com/roo-rb/roo/pull/375)
47
+ - Fixed formatted_value with `%` for Excelx [416](https://github.com/roo-rb/roo/pull/416)
48
+ - Improved Memory consumption and performance [434](https://github.com/roo-rb/roo/pull/434) [449](https://github.com/roo-rb/roo/pull/449) [454](https://github.com/roo-rb/roo/pull/454) [456](https://github.com/roo-rb/roo/pull/456) [458](https://github.com/roo-rb/roo/pull/458) [462](https://github.com/roo-rb/roo/pull/462) [466](https://github.com/roo-rb/roo/pull/466)
49
+ - Accept both Transitional and Strict Type for Excelx's worksheets [441](https://github.com/roo-rb/roo/pull/441)
50
+ - Fixed ruby warnings [442](https://github.com/roo-rb/roo/pull/442) [476](https://github.com/roo-rb/roo/pull/476)
51
+ - Restore support for URL as file identifier for CSV [462](https://github.com/roo-rb/roo/pull/462)
52
+ - Fixed missing location for Excelx's links [482](https://github.com/roo-rb/roo/pull/482)
53
+
54
+ ### Changed / Added
55
+ - Drop support for ruby 2.2.x and lower
56
+ - Updated rubyzip version for fixing security issue. Now minimal version is 1.2.1
57
+ - Roo::Excelx::Coordinate now inherits Array [458](https://github.com/roo-rb/roo/pull/458)
58
+ - Improved Roo::HeaderRowNotFoundError exception's message [461](https://github.com/roo-rb/roo/pull/461)
59
+ - Added `empty_cell` option which by default disable allocation for Roo::Excelx::Cell::Empty [464](https://github.com/roo-rb/roo/pull/464)
60
+ - Added support for variable number of decimals for Excelx's formatted_value [387](https://github.com/roo-rb/roo/pull/387)
61
+ - Added `disable_html_injection` option to disable html injection for shared string in `Roo::Excelx` [392](https://github.com/roo-rb/roo/pull/392)
62
+ - Added image extraction for Excelx [414](https://github.com/roo-rb/roo/pull/414) [397](https://github.com/roo-rb/roo/pull/397)
63
+ - Added support for `1e6` as scientific notation for Excelx [433](https://github.com/roo-rb/roo/pull/433)
64
+ - Added support for Integer as 0 based index for Excelx's `sheet_for` [455](https://github.com/roo-rb/roo/pull/455)
65
+ - Extended `no_hyperlinks` option for non streaming Excelx methods [459](https://github.com/roo-rb/roo/pull/459)
66
+ - Added `empty_cell` option to disable Roo::Excelx::Cell::Empty allocation for Excelx [464](https://github.com/roo-rb/roo/pull/464)
67
+ - Added support for Integer with leading zero for Roo:Excelx [479](https://github.com/roo-rb/roo/pull/479)
68
+ - Refactored Excelx code [453](https://github.com/roo-rb/roo/pull/453) [477](https://github.com/roo-rb/roo/pull/477) [483](https://github.com/roo-rb/roo/pull/483) [484](https://github.com/roo-rb/roo/pull/484)
69
+
70
+ ### Deprecations
71
+ - Roo::Excelx::Sheet#present_cells is deprecated [454](https://github.com/roo-rb/roo/pull/454)
72
+ - Roo::Utils.split_coordinate is deprecated [458](https://github.com/roo-rb/roo/pull/458)
73
+ - Roo::Excelx::Cell::Base#link is deprecated [457](https://github.com/roo-rb/roo/pull/457)
74
+
75
+ ## [2.7.1] 2017-01-03
76
+ ### Fixed
77
+ - Fixed regression where a CSV's encoding was being ignored [372](https://github.com/roo-rb/roo/pull/372)
78
+
79
+ ## [2.7.0] 2016-12-31
80
+ ### Fixed
81
+ - Added rack server for testing Roo's download capabilities [365](https://github.com/roo-rb/roo/pull/365)
82
+ - Refactored tests into different formats [365](https://github.com/roo-rb/roo/pull/365)
83
+ - Fixed OpenOffice for JRuby [362](https://github.com/roo-rb/roo/pull/362)
84
+ - Added '0.000000' => '%.6f' number format [354](https://github.com/roo-rb/roo/pull/354)
85
+ - Add additional formula cell types for to_csv [367][https://github.com/roo-rb/roo/pull/367]
86
+
87
+ ### Added
88
+ - Extracted formatters from Roo::Base#to_* methods [364](https://github.com/roo-rb/roo/pull/364)
89
+
90
+ ## [2.6.0] 2016-12-28
91
+ ### Fixed
92
+ - Fixed error if sheet name starts with a slash [348](https://github.com/roo-rb/roo/pull/348)
93
+ - Fixed loading to support files on ftp [355](https://github.com/roo-rb/roo/pull/355)
94
+ - Fixed Ruby 2.4.0 deprecation warnings [356](https://github.com/roo-rb/roo/pull/356)
95
+ - properly return date as string [359](https://github.com/roo-rb/roo/pull/359)
96
+
97
+ ### Added
98
+ - Cell values can be set in a CSV [350](https://github.com/roo-rb/roo/pull/350/)
99
+ - Raise an error Roo::Excelx::Extractor document is missing [358](https://github.com/roo-rb/roo/pull/358/)
100
+
101
+ ## [2.5.1] 2016-08-26
102
+ ### Fixed
103
+ - Fixed NameError. [337](https://github.com/roo-rb/roo/pull/337)
104
+
105
+ ## [2.5.0] 2016-08-21
106
+ ### Fixed
107
+ - Remove temporary directories via finalizers on garbage collection. This cleans them up in all known cases, rather than just when the #close method is called. The #close method can be used to cleanup early. [329](https://github.com/roo-rb/roo/pull/329)
108
+ - Fixed README.md typo [318](https://github.com/roo-rb/roo/pull/318)
109
+ - Parse sheets in ODS files once to improve performance [320](https://github.com/roo-rb/roo/pull/320)
110
+ - Fix some Cell conversion issues [324](https://github.com/roo-rb/roo/pull/324) and [331](https://github.com/roo-rb/roo/pull/331)
111
+ - Improved memory performance [332](https://github.com/roo-rb/roo/pull/332)
112
+ - Added `no_hyperlinks` option to improve streamig performance [319](https://github.com/roo-rb/roo/pull/319) and [333](https://github.com/roo-rb/roo/pull/333)
113
+
114
+ ### Deprecations
115
+ - Roo::Base::TEMP_PREFIX should be accessed via Roo::TEMP_PREFIX
116
+ - The private Roo::Base#make_tempdir is now available at the class level in
117
+ classes that use temporary directories, added via Roo::Tempdir
118
+ =======
119
+ ### Added
120
+ - Discard hyperlinks lookups to allow streaming parsing without loading whole files
121
+
122
+ ## [2.4.0] 2016-05-14
123
+ ### Fixed
124
+ - Fixed opening spreadsheets with charts [315](https://github.com/roo-rb/roo/pull/315)
125
+ - Fixed memory issues for Roo::Utils.number_to_letter [308](https://github.com/roo-rb/roo/pull/308)
126
+ - Fixed Roo::Excelx::Cell::Number to recognize floating point numbers [306](https://github.com/roo-rb/roo/pull/306)
127
+ - Fixed version number in Readme.md [304](https://github.com/roo-rb/roo/pull/304)
128
+
129
+ ### Added
130
+ - Added initial support for HTML formatting [278](https://github.com/roo-rb/roo/pull/278)
131
+
132
+ ## [2.3.2] 2016-02-18
133
+ ### Fixed
134
+ - Handle url with long query params (ex. S3 secure url) [302](https://github.com/roo-rb/roo/pull/302)
135
+ - Allow streaming for Roo::CSV [297](https://github.com/roo-rb/roo/pull/297)
136
+ - Export Fixnums to Added csv [295](https://github.com/roo-rb/roo/pull/295)
137
+ - Removed various Ruby warnings [289](https://github.com/roo-rb/roo/pull/289)
138
+ - Fix incorrect example result in Readme.md [293](https://github.com/roo-rb/roo/pull/293)
139
+
140
+ ## [2.3.1] - 2016-01-08
141
+ ### Fixed
142
+ - Properly parse scientific-notation number like 1E-3 [#288](https://github.com/roo-rb/roo/pull/288)
143
+ - Include all tests in default rake run [#283](https://github.com/roo-rb/roo/pull/283)
144
+ - Fix zero-padded numbers for Excelx [#282](https://github.com/roo-rb/roo/pull/282)
145
+
146
+ ### Changed
147
+ - Moved `ERROR_VALUES` from Excelx::Cell::Number ~> Excelx. [#280](https://github.com/roo-rb/roo/pull/280)
148
+
149
+ ## [2.3.0] - 2015-12-10
150
+ ### Changed
151
+ - Excelx::Cell::Number will return a String instead of an Integer or Float if the cell has an error like #DIV/0, etc. [#273](https://github.com/roo-rb/roo/pull/273)
152
+
153
+ ### Fixed
154
+ - Excelx::Cell::Number now handles cell errors. [#273](https://github.com/roo-rb/roo/pull/273)
155
+
156
+ ## [2.2.0] - 2015-10-31
157
+ ### Added
158
+ - Added support for returning Integers values to Roo::OpenOffice [#258](https://github.com/roo-rb/roo/pull/258)
159
+ - A missing Header Raises `Roo::HeaderRowNotFoundError` [#247](https://github.com/roo-rb/roo/pull/247)
160
+ - Roo::Excelx::Shared class to pass shared data to Roo::Excelx sheets [#220](https://github.com/roo-rb/roo/pull/220)
161
+ - Proper Type support to Roo::Excelx [#240](https://github.com/roo-rb/roo/pull/240)
162
+ - Added Roo::HeaderRowNotFoundError [#247](https://github.com/roo-rb/roo/pull/247)
163
+
164
+ ### Changed
165
+ - Made spelling/grammar corrections in the README[260](https://github.com/roo-rb/roo/pull/260)
166
+ - Moved Roo::Excelx::Format module [#259](https://github.com/roo-rb/roo/pull/259)
167
+ - Updated README with details about `Roo::Excelx#each_with_streaming` method [#250](https://github.com/roo-rb/roo/pull/250)
168
+
169
+ ### Fixed
170
+ - Fixed Base64 not found issue in Open Office [#267](https://github.com/roo-rb/roo/pull/267)
171
+ - Fixed Regexp to allow method access to cells with multiple digits [#255](https://github.com/roo-rb/roo/pull/255), [#268](https://github.com/roo-rb/roo/pull/268)
172
+
173
+ ## [2.1.1] - 2015-08-02
174
+ ### Fixed invalid new lines with _x000D_ character[#231](https://github.com/roo-rb/roo/pull/231)
175
+ ### Fixed missing URI issue. [#245](https://github.com/roo-rb/roo/pull/245)
176
+
177
+ ## [2.1.0] - 2015-07-18
178
+ ### Added
179
+ - Added support for Excel 2007 `xlsm` files. [#232](https://github.com/roo-rb/roo/pull/232)
180
+ - Roo::Excelx returns an enumerator when calling each_row_streaming without a block. [#224](https://github.com/roo-rb/roo/pull/224)
181
+ - Returns an enumerator when calling `each` without a block. [#219](https://github.com/roo-rb/roo/pull/219)
182
+
183
+ ### Fixed
184
+ - Removed tabs and windows CRLF. [#235](https://github.com/roo-rb/roo/pull/235), [#234](https://github.com/roo-rb/roo/pull/234)
185
+ - Fixed Regexp to only check for valid URI's when opening a spreadsheet. [#229](https://github.com/roo-rb/roo/pull/228)
186
+ - Open streams in Roo:Excelx correctly. [#222](https://github.com/roo-rb/roo/pull/222)
187
+
188
+ ## [2.0.1] - 2015-06-01
189
+ ### Added
190
+ - Return an enumerator when calling '#each' without a block [#219](https://github.com/roo-rb/roo/pull/219)
191
+ - Added Roo::Base#close to delete any temp directories[#211](https://github.com/roo-rb/roo/pull/211)
192
+ - Offset option for excelx #each_row. [#214](https://github.com/roo-rb/roo/pull/214)
193
+ - Allow Roo::Excelx to open streams [#209](https://github.com/roo-rb/roo/pull/209)
194
+
195
+ ### Fixed
196
+ - Use gsub instead of tr for double quote escaping [#212](https://github.com/roo-rb/roo/pull/212), [#212-patch](https://github.com/roo-rb/roo/commit/fcc9a015868ebf9d42cbba5b6cfdaa58b81ecc01)
197
+ - Fixed Changelog links and release data. [#204](https://github.com/roo-rb/roo/pull/204), [#206](https://github.com/roo-rb/roo/pull/206)
198
+ - Allow Pathnames to be used when opening files. [#207](https://github.com/roo-rb/roo/pull/207)
199
+
200
+ ### Removed
201
+ - Removed the scripts folder. [#213](https://github.com/roo-rb/roo/pull/213)
202
+
203
+ ## [2.0.0] - 2015-04-24
204
+ ### Added
205
+ - Added optional support for hidden sheets in Excelx and LibreOffice files [#177](https://github.com/roo-rb/roo/pull/177)
206
+ - Roo::OpenOffice can be used to open encrypted workbooks. [#157](https://github.com/roo-rb/roo/pull/157)
207
+ - Added streaming for parsing of large Excelx Sheets. [#69](https://github.com/roo-rb/roo/pull/69)
208
+ - Added Roo::Base#first_last_row_col_for_sheet [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
209
+ - Added Roo::Base#collect_last_row_col_for_sheet [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
210
+ - Added Roo::Base::MAX_ROW_COL, Roo::Base::MIN_ROW_COL [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
211
+ - Extract Roo::Font to replace equivalent uses in Excelx and OpenOffice. [23e19de](https://github.com/roo-rb/roo/commit/23e19de1ccc64b2b02a80090ff6666008a29c43b)
212
+ - Roo::Utils [3169a0e](https://github.com/roo-rb/roo/commit/3169a0e803ce742d2cbf9be834d27a5098a68638)
213
+ - Roo::ExcelxComments [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
214
+ [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
215
+ - Roo::Excelx::Relationships [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
216
+ - Roo::Excelx::SheetDoc [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
217
+ [c2bb7b8](https://github.com/roo-rb/roo/commit/c2bb7b8614f4ff1dff6b7bdbda0ded125ae549c7)
218
+ +- Roo::Excelx::Styles [c2bb7b8](https://github.com/roo-rb/roo/commit/c2bb7b8614f4ff1dff6b7bdbda0ded125ae549c7)
219
+ +- Roo::Excelx::Workbook [c2bb7b8](https://github.com/roo-rb/roo/commit/c2bb7b8614f4ff1dff6b7bdbda0ded125ae549c7)
220
+ - Switch from Spreadsheet::Link to Roo::Link [ee67321](https://github.com/roo-rb/roo/commit/ee6732144f3616631d19ade0c5490e1678231ce2)
221
+ - Roo::Base#to_csv: Added separator parameter (defaults to ",") [#102](https://github.com/roo-rb/roo/pull/102)
222
+ - Added development development gems [#104](https://github.com/roo-rb/roo/pull/104)
223
+
224
+ ### Changed
225
+ - Reduced size of published gem. [#194](https://github.com/roo-rb/roo/pull/194)
226
+ - Stream the reading of the dimensions [#192](https://github.com/roo-rb/roo/pull/192)
227
+ - Return `nil` when a querying a cell that doesn't exist (instead of a NoMethodError) [#192](https://github.com/roo-rb/roo/pull/192), [#165](https://github.com/roo-rb/roo/pull/165)
228
+ - Roo::OpenOffice#formula? now returns a `Boolean` instead of a `String` or `nil` [#191](https://github.com/roo-rb/roo/pull/191)
229
+ - Added a less verbose Roo::Base#inspect. It no longer returns the entire object. [#188](https://github.com/roo-rb/roo/pull/188), [#186](https://github.com/roo-rb/roo/pull/186)
230
+ - Memoize Roo::Utils.split_coordinate [#180](https://github.com/roo-rb/roo/pull/180)
231
+ - Roo::Base: use regular expressions for extracting headers [#173](https://github.com/roo-rb/roo/pull/173)
232
+ - Roo::Base: memoized `first_row`/`last_row` `first_column`/`last_column` and changed the default value of the `sheet` argument from `nil` to `default_sheet` [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
233
+ - Roo::Base: changed the order of arguments for `to_csv` to (filename = nil, separator = ',', sheet = default_sheet) from (filename=nil,sheet=nil) [1e82a21](https://github.com/roo-rb/roo/commit/1e82a218087ba34379ae7312214911b104333e2c)
234
+ - In OpenOffice / LibreOffice, load the content xml lazily. Leave the tmpdir open so that reading may take place after initialize. The OS will be responsible for cleaning it up. [adb204b](https://github.com/roo-rb/roo/commit/a74157adb204bc93d289c5708e8e79e143d09037)
235
+ - Lazily initialize @default_sheet, to avoid reading the sheets earlier than necessary. Use the #default_sheet accessor instead. [704e3dc](https://github.com/roo-rb/roo/commit/704e3dca1692d84ac4877f04a7e46238772d423b)
236
+ - Roo::Base#default_sheet is no longer an attr_reader [704e3dc](https://github.com/roo-rb/roo/commit/704e3dca1692d84ac4877f04a7e46238772d423b)
237
+ - In Excelx, load styles, shared strings and the workbook lazily. Leave the tmpdir open so that reading may take place after initialize. The OS will be responsible for cleaning it up. [a973237](https://github.com/roo-rb/roo/commit/a9732372f531e435a3330d8ab5bd44ce2cb57b0b), [4834e20c](https://github.com/roo-rb/roo/commit/4834e20c6c4d2086414c43f8b0cc2d1413b45a61), [e49a1da](https://github.com/roo-rb/roo/commit/e49a1da22946918992873e8cd5bacc15ea2c73c4)
238
+ - Change the tmpdir prefix from oo_ to roo_ [102d5fc](https://github.com/roo-rb/roo/commit/102d5fce30b46e928807bc60f607f81956ed898b)
239
+ - Accept the tmpdir_root option in Roo::Excelx [0e325b6](https://github.com/roo-rb/roo/commit/0e325b68f199ff278b26bd621371ed42fa999f24)
240
+ - Refactored Excelx#comment? [0fb90ec](https://github.com/roo-rb/roo/commit/0fb90ecf6a8f422ef16a7105a1d2c42d611556c3)
241
+ - Refactored Roo::Base#find, #find_by_row, #find_by_conditions. [1ccedab](https://github.com/roo-rb/roo/commit/1ccedab3fb656f4614f0a85e9b0a286ad83f5c1e)
242
+ - Extended Roo::Spreadsheet.open so that it accepts Tempfiles and other arguments responding to `path`. Note they require an :extension option to be declared, as the tempfile mangles the extension. [#84](https://github.com/roo-rb/roo/pull/84).
243
+
244
+ ### Fixed
245
+ - Process sheets from Numbers 3.1 xlsx files in the right order. [#196](https://github.com/roo-rb/roo/pull/196), [#181](https://github.com/roo-rb/roo/pull/181), [#114](https://github.com/roo-rb/roo/pull/114)
246
+ - Fixed comments for xlsx files exported from Google [#197](https://github.com/roo-rb/roo/pull/197)
247
+ - Fixed Roo::Excelx#celltype to return :link when appropriate.
248
+ - Fixed type coercion of ids. [#192](https://github.com/roo-rb/roo/pull/192)
249
+ - Clean option only removes spaces and control characters instead of removing all characters outside of the ASCII range. [#176](https://github.com/roo-rb/roo/pull/176)
250
+ - Fixed parse method with `clean` option [#184](https://github.com/roo-rb/roo/pull/184)
251
+ - Fixed some memory issues.
252
+ - Fixed Roo::Utils.number_to_letter [#180](https://github.com/roo-rb/roo/pull/180)
253
+ - Fixed merged cells return value. Instead of only the top-left cell returning a value, all merged cells return that value instead of returning nil. [#171](https://github.com/roo-rb/roo/pull/171)
254
+ - Handle headers with brackets [#162](https://github.com/roo-rb/roo/pull/162)
255
+ - Roo::Base#sheet method was not returning the sheet specified when using either an index or name [#160](https://github.com/roo-rb/roo/pull/160)
256
+ - Properly process paths with spaces. [#142](https://github.com/roo-rb/roo/pull/142), [#121](https://github.com/roo-rb/roo/pull/121), [#94](https://github.com/roo-rb/roo/pull/94), [4e7d7d1](https://github.com/roo-rb/roo/commit/4e7d7d18d37654b0c73b229f31ea0d305c7e90ff)
257
+ - Disambiguate #open call in Excelx#extract_file. [#125](https://github.com/roo-rb/roo/pull/125)
258
+ - Fixed that #parse-ing with a hash of columns not in the document would fail mysteriously. [#129](https://github.com/roo-rb/roo/pull/129)
259
+ - Fixed Excelx issue when reading hyperlinks [#123](https://github.com/roo-rb/roo/pull/123)
260
+ - Fixed invalid test case [#124](https://github.com/roo-rb/roo/pull/124)
261
+ - Fixed error in test helper file_diff [56e2e61](https://github.com/roo-rb/roo/commit/56e2e61d1ad9185d8ab0d4af4b32928f07fdaad0)
262
+ - Stopped `inspect` from being called recursively. [#115](https://github.com/roo-rb/roo/pull/115)
263
+ - Fixes for Excelx Datetime cells. [#104](https://github.com/roo-rb/roo/pull/104), [#120](https://github.com/roo-rb/roo/pull/120)
264
+ - Prevent ArgumentError when using `find` [#100](https://github.com/roo-rb/roo/pull/100)
265
+ - Export to_csv converts link cells to url [#93](https://github.com/roo-rb/roo/pull/93), [#108](https://github.com/roo-rb/roo/pull/108)
266
+
267
+ ### Removed
268
+ - Roo::Excel - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
269
+ - Roo::Excel2003XML - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
270
+ - Roo::Google - Extracted to roo-google gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
271
+ - Roo::OpenOffice::Font - Refactored into Roo::Font
272
+ - Removed Roo::OpenOffice.extract_content [a74157a](https://github.com/roo-rb/roo/commit/a74157adb204bc93d289c5708e8e79e143d09037)
273
+ - Removed OpenOffice.process_zipfile [835368e](https://github.com/roo-rb/roo/commit/835368e1d29c1530f00bf9caa07704b17370e38f)
274
+ - Roo::OpenOffice#comment?
275
+ - Roo::ZipFile - Removed the Roo::ZipFile abstraction. Roo now depends on rubyzip 1.0.0+ [d466950](https://github.com/roo-rb/roo/commit/d4669503b5b80c1d30f035177a2b0e4b56fc49ce)
276
+ - SpreadSheet::Worksheet - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
277
+ - Spreadsheet - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
278
+
279
+ ## [1.13.2] - 2013-12-23
280
+ ### Fixed
281
+ - Fix that Excelx link-cells would blow up if the value wasn't a string. Due to the way Spreadsheet::Link is implemented the link text must be treated as a string. #92
282
+
283
+ ## [1.13.1] - 2013-12-23
284
+ ### Fixed
285
+ - Fix that Excelx creation could blow up due to nil rels files. #90
286
+
287
+ ## [1.13.0] - 2013-12-05
288
+ ### Changed / Added
289
+ - Support extracting link data from Excel and Excelx spreadsheets,
290
+ via Excel#read_cell() and Excelx#hyperlink(?). #47
291
+ - Support setting the Excel Spreadsheet mode via the :mode option. #88
292
+ - Support Spreadsheet.open with a declared :extension that includes a leading '.'. #73
293
+ - Enable file type detection for URI's with parameters / anchors. #51
294
+
295
+ ### Fixed
296
+ - Fix that CSV#each_row could overwrite the filename when run against a uri. #77
297
+ - Fix that #to_matrix wasn't respecting the sheet argument. #87
298
+
299
+ ## [1.12.2] - 2013-09-11
300
+ ### Changed / Added
301
+ - Support rubyzip >= 1.0.0. #65
302
+ - Fix typo in deprecation notices. #63
303
+
304
+ ## [1.12.1] - 2013-08-18
305
+ ### Changed / Added
306
+ - Support :boolean fields for CSV export via #cell_to_csv. #59
307
+
308
+ ### Fixed
309
+ - Fix that Excelx would error on files with gaps in the numbering of their
310
+ internal sheet#.xml files. #58
311
+ - Fix that Base#info to preserve the original value of #default_sheet. #44
312
+
313
+ ## [1.12.0] - 2013-08-18
314
+ ### Deprecated
315
+ - Rename Openoffice -> OpenOffice, Libreoffice -> LibreOffice, Csv -> CSV, and redirect the old names to the new constants
316
+ - Enable Roo::Excel, Excel2003XML, Excelx, OpenOffice to accept an options hash, and deprecate the old method argument based approach to supplying them options
317
+ - Roo's roo_rails_helper, aka the `spreadsheet` html-generating view method is currently deprecated with no replacement. If you find it helpful, tell http://github.com/Empact or extract it yourself.
318
+
319
+ ### Changed / Added
320
+ - Add Roo::Excelx#load_xml so that people can customize to their data, e.g. #23
321
+ - Enable passing csv_options to Roo::CSV, which are passed through to the underlying CSV call.
322
+ - Enable passing options through from Roo::Spreadsheet to any Roo type.
323
+ - Enable passing an :extension option to Roo::Spreadsheet.new, which will override the extension detected on in the path #15
324
+ - Switch from google-spreadsheet-ruby to google_drive for Roo::Google access #40
325
+ - Make all the classes consistent in that #read_cells is only effective if the sheet has not been read.
326
+ - Roo::Google supports login via oauth :access_token. #61
327
+ - Roo::Excel now exposes its Spreadsheet workbook via #workbook
328
+ - Pull #load_xml down into Roo::Base, and use it in Excel2003XML and OpenOffice.
329
+
330
+ ### Changed
331
+ - #formula? now returns truthy or falsey, rather than true/false.
332
+ - Base#longest_sheet was moved to Excel, as it only worked under Excel
333
+
334
+ ### Fixed
335
+ - Fix that Roo::CSV#parse(headers: true) would blow up. #37
336
+
337
+ ## [1.11.2] - 2013-04-10
338
+
339
+ ### Fixed
340
+ - Fix that Roo::Spreadsheet.open wasn't tolerant to case differences.
341
+ - Fix that Roo::Excel2003XML loading was broken #27
342
+ - Enable loading Roo::Csv files from uris, just as other file types #31
343
+ - Fix that Excelx "m/d/yy h:mm" was improperly being interpreted as date rather
344
+ than datetime #29
345
+
346
+ ## [1.11.1] - 2013-03-18
347
+ ### Fixed
348
+ - Exclude test/log/roo.log test log file from the gemspec in order to avoid a
349
+ rubygems warning: #26
350
+
351
+ ## [1.11.0] - 2013-03-14
352
+ ### Changed / Added
353
+ - Support ruby 2.0.0 by replacing Iconv with String#encode #19
354
+ - Excelx: Loosen the format detection rules such that more are
355
+ successfully detected #20
356
+ - Delete the roo binary, which was useless and not declared in the gemspec
357
+
358
+ ### Changed
359
+ - Drop support for ruby 1.8.x or lower. Required in order to easily support 2.0.0.
360
+
361
+ ## [1.10.3] - 2013-03-03
362
+ ### Fixed
363
+ - Support both nokogiri 1.5.5 and 1.5.6 (Karsten Richter) #18
364
+
365
+ ### Changed / Added
366
+ - Relax our nokogiri dependency back to 1.4.0, as we have no particular reason
367
+ to require a newer version.
368
+
369
+ ## [1.10.2] - 2013-02-03
370
+ ### Fixed
371
+ - Support opening URIs with query strings https://github.com/Empact/roo/commit/abf94bdb59cabc16d4f7764025e88e3661983525
372
+ - Support both http: & https: urls https://github.com/Empact/roo/commit/fc5c5899d96dd5f9fbb68125d0efc8ce9be2c7e1
373
+
374
+ ## [1.10.1] - 2011-11-14
375
+ ### Fixed
376
+ - forgot dependency 'rubyzip'
377
+ - at least one external application does create xlsx-files with different internal file names which differ from the original file names of Excel. Solution: ignore lower-/upper case in file names.
378
+
379
+ ## [1.10.0] - 2011-10-10
380
+ ### Changed / Added
381
+ - New class Csv.
382
+ - Openoffice, Libreoffice: new method 'labels'
383
+ - Excelx: implemented all methods concerning labels
384
+ - Openoffice, Excelx: new methods concerning comments (comment, comment? and comments)
385
+
386
+ ### Fixed
387
+ - XLSX: some cells were not recognized correctly from a spreadsheet file from a windows mobile phone.
388
+ - labels: Moved to a separate methode. There were problems if there was an access to a label before read_cells were called.
389
+
390
+ ## [1.9.7] - 2011-08-27
391
+ ### Fixed
392
+ - Openoffice: Better way for extracting formula strings, some characters were deleted at the formula string.
393
+
394
+ ## [1.9.6] - 2011-08-03
395
+ ### Changed / Added
396
+ - new class Libreoffice (Libreoffice should do exactly the same as the Openoffice
397
+ class. It's just another name. Technically, Libreoffice is inherited from
398
+ the Openoffice class with no new methods.
399
+
400
+ ### Fixed
401
+ - Openoffice: file type check, deletion of temporary files not in ensure clause
402
+ - Cell type :datetime was not handled in the to_csv method
403
+ - Better deletion of temporary directories if something went wrong
404
+
405
+ ## [1.9.5] - 2011-06-25
406
+ ### Changed / Added
407
+ - Method #formulas moved to generic-spreadsheet class (the Excel version is
408
+ overwritten because the spreadsheet gem currently does not support
409
+ formulas.
410
+
411
+ ### Fixed
412
+ - Openoffice/Excelx/Google: #formulas of an empty sheet should not result
413
+ in an error message. Instead it should return an empty array.
414
+ - Openoffice/Excelx/Google: #to_yaml of an empty sheet should not result
415
+ in an error message. Instead it should return an empty string.
416
+ - Openoffice/Excelx/Google: #to_matrix of an empty sheet should not result
417
+ in an error message. Instead it should return an empty matrix.
418
+
419
+ ## [1.9.4] - 2011-06-23
420
+ ### Changed / Added
421
+ - removed gem 'builder'. Functionality goes to gem 'nokogiri'.
422
+
423
+ ### Fixed
424
+ - Excel: remove temporary files if spreadsheed-file is not an excel file
425
+ and an exception was raised
426
+ - Excelx: a referenced cell with a string had the content 0.0 not the
427
+ correct string
428
+ - Fixed a problem with a date cell which was not recognized as a Date
429
+ object (see 2011-05-21 in excelx.rb)
430
+
431
+ ## [1.9.3] - 2010-02-12
432
+ ### Changed / Added
433
+ - new method 'to_matrix'
434
+
435
+ ### Fixed
436
+ - missing dependencies defined
437
+
438
+ ## [1.9.2] - 2009-12-08
439
+ ### Fixed
440
+ - double quoting of '"' fixed
441
+
442
+ ## [1.9.1] - 2009-11-10
443
+ ### Fixed
444
+ - syntax in nokogiri methods
445
+ - missing dependency ...rubyzip
446
+
447
+ ## [1.9.0] - 2009-10-29
448
+ ### Changed / Added
449
+ - Ruby 1.9 compatible
450
+ - oo.aa42 as a shortcut of oo.cell('aa',42)
451
+ - oo.aa42('sheet1') as a shortcut of oo.cell('aa',42,'sheet1')
452
+ - oo.anton as a reference to a cell labelled 'anton' (or any other label name)
453
+ (currently only for Openoffice spreadsheets)
454
+
455
+ ## [1.2.3] - 2009-01-04
456
+ ### Fixed
457
+ - fixed encoding in #cell at exported Google-spreadsheets (.xls)
458
+
459
+ ## [1.2.2] - 2008-12-14
460
+ ### Changed / Added
461
+ - added celltype :datetime in Excelx
462
+ - added celltype :datetime in Google
463
+
464
+ ## [1.2.1] - 2008-11-13
465
+ ### Changed / Added
466
+ - added celltype :datetime in Openoffice and Excel
467
+
468
+ ## [1.2.0] - 2008-08-24
469
+ ### Changed / Added
470
+ - Excelx: improved the detection of cell type and conversion into roo types
471
+ - All: to_csv: changed boundaries from first_row,1..last_row,last_column to 1,1..last_row,last_column
472
+ - All: Environment variable "ROO_TMP" indicate where temporary directories will be created (if not set the default is the current working directory)
473
+
474
+ ### Fixed
475
+ - Excel: improved the detection of last_row/last_column (parseexcel-gem bug?)
476
+ - Excel/Excelx/Openoffice: temporary directories were not removed at opening a file of the wrong type
477
+
478
+ ## [1.1.0] - 2008-07-26
479
+ ### Changed / Added
480
+ - Excel: speed improvements
481
+ - Changed the behavior of reading files with the wrong type
482
+
483
+ ### Fixed
484
+ - Google: added normalize in set_value method
485
+ - Excel: last_row in Excel class did not work properly under some circumstances
486
+ - all: fixed a bug in #to_xml if there is an empty sheet
487
+
488
+ ## [1.0.2] - 2008-07-04
489
+ ### Fixed
490
+ - Excelx: fixed a bug when there are .xml.rels files in the XLSX archive
491
+ - Excelx: fixed a bug with celltype recognition (see comment with "2008-07-03")
492
+
493
+ ## [1.0.1] - 2008-06-30
494
+ ### Fixed
495
+ - Excel: row/column method Fixnum/Float confusion
496
+
497
+ ## [1.0.0] - 2008-05-28
498
+ ### Changed / Added
499
+ - support of Excel's new .xlsx file format
500
+ - method #to_xml for exporting a spreadsheet to an xml representation
501
+
502
+ ### Fixed
503
+ - fixed a bug with excel-spreadsheet character conversion under Macintosh Darwin
504
+
505
+ ## [0.9.4] - 2008-04-22
506
+ ### Fixed
507
+ - fixed a bug with excel-spreadsheet character conversion under Solaris
508
+
509
+ ## [0.9.3] - 2008-03-25
510
+ ### Fixed
511
+ - no more tmp directories if an invalid spreadsheet file was openend
512
+
513
+ ## [0.9.2] - 2008-03-24
514
+ ### Changed / Added
515
+ - new celltype :time
516
+
517
+ ### Fixed
518
+ - time values like '23:15' are handled as seconds from midnight
519
+
520
+ ## [0.9.1] - 2008-03-23
521
+ ### Changed / Added
522
+ - additional 'sheet' parameter in Google#set_value
523
+
524
+ ### Fixed
525
+ - fixed a bug within Google#set_value. thanks to davecahill <dpcahill@gmail.com> for the patch.
526
+
527
+ ## [0.9.0] - 2008-01-24
528
+ ### Changed / Added
529
+ - better support of roo spreadsheets in rails views
530
+
531
+ ## [0.8.5] - 2008-01-16
532
+ ### Fixed
533
+ - fixed a bug within #to_cvs and explicit call of a sheet
534
+
535
+ ## [0.8.4] - 2008-01-01
536
+ ### Fixed
537
+ - fixed 'find_by_condition' for excel sheets (header_line= --> GenericSpredsheet)
538
+
539
+ ## [0.8.3] - 2007-12-31
540
+ ### Fixed
541
+ - another fix for the encoding issue in excel sheet-names
542
+ - reactived the Excel#find method which has been disappeared in the last restructoring, moved to GenericSpreadsheet
543
+
544
+ ## [0.8.2] - 2007-12-28
545
+ ### Changed / Added
546
+ - basename() only in method #info
547
+
548
+ ### Fixed
549
+ - changed logging-method to mysql-database in test code with AR, table column 'class' => 'class_name'
550
+ - reactived the Excel#to_csv method which has been disappeared in the last restructoring
551
+
552
+ ## [0.8.1] - 2007-12-22
553
+ ### Fixed
554
+ - fixed a bug with first/last-row/column in empty sheet
555
+ - #info prints now '- empty -' if a sheet within a document is empty
556
+ - tried to fix the iconv conversion problem
557
+
558
+ ## [0.8.0] - 2007-12-15
559
+ ### Changed / Added
560
+ - Google online spreadsheets were implemented
561
+ - some methods common to more than one class were factored out to the GenericSpreadsheet (virtual) class
562
+
563
+ ## [0.7.0] - 2007-11-23
564
+ ### Changed / Added
565
+ - Openoffice/Excel: the most methods can be called with an option 'sheet'
566
+ parameter which will be used instead of the default sheet
567
+ - Excel: improved the speed of CVS output
568
+ - Openoffice/Excel: new method #column
569
+ - Openoffice/Excel: new method #find
570
+ - Openoffice/Excel: new method #info
571
+ - better exception if a spreadsheet file does not exist
572
+
573
+ ## [0.6.1] - 2007-10-06
574
+ ### Changed / Added
575
+ - Openoffice: percentage-values are now treated as numbers (not strings)
576
+ - Openoffice: refactoring
577
+
578
+ ### Fixed
579
+ - Openoffice: repeating date-values in a line are now handled correctly
580
+
581
+ ## [0.6.0] - 2007-10-06
582
+ ### Changed / Added
583
+ - csv-output to stdout or file
584
+
585
+ ## [0.5.4] - 2007-08-27
586
+ ### Fixed
587
+ - Openoffice: fixed a bug with internal representation of a spreadsheet (thanks to Ric Kamicar for the patch)
588
+
589
+ ## [0.5.3] - 2007-08-26
590
+ ### Changed / Added
591
+ - Openoffice: can now read zip-ed files
592
+ - Openoffice: can now read files from http://-URL over the net
593
+
594
+ ## [0.5.2] - 2007-08-26
595
+ ### Fixed
596
+ - excel: removed debugging output
597
+
598
+ ## [0.5.1] - 2007-08-26
599
+ ### Changed / Added
600
+ - Openoffice: Exception if an illegal sheet-name is selected
601
+ - Openoffice/Excel: no need to set a default_sheet if there is only one in
602
+ the document
603
+ - Excel: can now read zip-ed files
604
+ - Excel: can now read files from http://-URL over the net
605
+
606
+ ## [0.5.0] - 2007-07-20
607
+ ### Changed / Added
608
+ - Excel-objects: the methods default_sheet= and sheets can now handle names instead of numbers
609
+ ### Changedd the celltype methods to return symbols, not strings anymore (possible values are :formula, :float, :string, :date, :percentage (if you need strings you can convert it with .to_s)
610
+ - tests can now run on the client machine (not only my machine), if there are not public released files involved these tests are skipped
611
+
612
+ ## [0.4.1] - 2007-06-27
613
+ ### Fixed
614
+ - there was ONE false require-statement which led to misleading error messageswhen this gem was used
615
+
616
+ ## [0.4.0] - 2007-06-27
617
+ ### Changed / Added
618
+ - robustness: Exception if no default_sheet was set
619
+ - new method reload() implemented
620
+ - about 15 % more method documentation
621
+ - optimization: huge increase of speed (no need to use fixed borders anymore)
622
+ - added the method 'formulas' which gives you all formulas in a spreadsheet
623
+ - added the method 'set' which can set cells to a certain value
624
+ - added the method 'to_yaml' which can produce output for importing in a (rails) database
625
+
626
+ ### Fixed
627
+ - ..row_as_letter methods were nonsense - removed
628
+ - @cells_read should be reset if the default_sheet is changed
629
+ - error in excel-part: strings are now converted to utf-8 (the parsexcel-gem gave me an error with my test data, which could not converted to .to_s using latin1 encoding)
630
+ - fixed bug when default_sheet is changed
631
+
632
+ ## [0.3.0] - 2007-06-20
633
+ ### Changed / Added
634
+ - Openoffice: formula support
635
+
636
+ ## [0.2.7] - 2007-06-20
637
+ ### Fixed
638
+ - Excel: float-numbers were truncated to integer
639
+
640
+ ## [0.2.6] - 2007-06-19
641
+ ### Fixed
642
+ - Openoffice: two or more consecutive cells with string content failed
643
+
644
+ ## [0.2.5] - 2007-06-17
645
+ ### Changed / Added
646
+ - Excel: row method implemented
647
+ - more tests
648
+
649
+ ### Fixed
650
+ - Openoffice: row method fixed
651
+
652
+ ## [0.2.4] - 2007-06-16
653
+ ### Fixed
654
+ - ID 11605 Two cols with same value: crash roo (openoffice version only)
655
+
656
+ ## [0.2.3] - 2007-06-02
657
+ ### Changed / Added
658
+ - more robust call att Excel#default_sheet= when called with a name
659
+ - new method empty?
660
+ - refactoring
661
+
662
+ ### Fixed
663
+ - bugfix in Excel#celltype
664
+ - bugfix (running under windows only) in closing the temp file before removing it
665
+
666
+ ## [0.2.2] - 2007-06-01
667
+ ### Fixed
668
+ - correct pathname for running with windows
669
+
670
+ ## [0.2.2] - 2007-06-01
671
+ ### Fixed
672
+ - incorrect dependencies fixed
673
+
674
+ ## [0.2.0] - 2007-06-01
675
+ ### Changed / Added
676
+ - support for MS-Excel Spreadsheets
677
+
678
+ ## [0.1.2] - 2007-05-31
679
+ ### Changed / Added
680
+ - cells with more than one character, like 'AA' can now be handled
681
+
682
+ ## [0.1.1] - 2007-05-31
683
+ ### Fixed
684
+ - bugfixes in first/last methods
685
+
686
+ ## [0.1.0] - 2007-05-31
687
+ ### Changed / Added
688
+ - new methods first/last row/column
689
+ - new method officeversion
690
+
691
+ ## [0.0.3] - 2007-05-30
692
+ ### Changed / Added
693
+ - new method row()
694
+
695
+ ## [0.0.2] - 2007-05-30
696
+ ### Changed / Added
697
+ - fixed some bugs
698
+ - more ways to access a cell
699
+
700
+ ## [0.0.1] - 2007-05-25
701
+ ### Changed / Added
702
+ - Initial release