roo 1.13.1 → 2.10.1

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