simple_xlsx_reader 2.0.1 → 3.0.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/lib/simple_xlsx_reader/loader.rb +7 -1
- data/lib/simple_xlsx_reader/version.rb +1 -1
- data/test/misc_numbers.xlsx +0 -0
- data/test/simple_xlsx_reader_test.rb +30 -5
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5449525d4e46a013f92e8406a2ec2d07b06bb795efc7c8d76b9ffbcace22a38f
|
4
|
+
data.tar.gz: 5c664baa8d88692767f5bb6d2879e24c27098206695b88da42f3bc0d30bb9bce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90d5fedde0aa4cc2bcb8b4d9134859890bbf4357efbf6ba9aa0aaf3bd21ad1cd9f54a279d1126938a300dee36fbb8a10d63b66f945c9f7eeb8edc880bb23327a
|
7
|
+
data.tar.gz: ab684cc09075a0b9a1054c045bf4202718159b258c87f62b10e18aafa4faaa7a527ba95f8e765f7609ab7ba24c43a31176906ecefd612c85badbdefee9164184
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### 3.0.0
|
2
|
+
|
3
|
+
* Change the way we typecast cells in the General format. This probably won't
|
4
|
+
break anything in your app, but it's a change in behavior that theoretically
|
5
|
+
could.
|
6
|
+
|
7
|
+
Previously, we were treating cells using General the format as strings, when
|
8
|
+
according to the Office XML standard, they should be treated as numbers. We
|
9
|
+
now attempt to cast such cells as numbers, and fall back to strings if number
|
10
|
+
casting fails.
|
11
|
+
|
12
|
+
Thanks @jrodrigosm
|
13
|
+
|
1
14
|
### 2.0.1
|
2
15
|
|
3
16
|
* Restore ability to parse IO strings (@robbevp)
|
@@ -149,7 +149,13 @@ module SimpleXlsxReader
|
|
149
149
|
# detected earlier and cast here by its standardized symbol
|
150
150
|
##
|
151
151
|
|
152
|
-
|
152
|
+
# no type encoded with the the General format defaults to a number type
|
153
|
+
when nil, :string
|
154
|
+
retval = Integer(value, exception: false)
|
155
|
+
retval ||= Float(value, exception: false)
|
156
|
+
retval ||= value
|
157
|
+
retval
|
158
|
+
when :unsupported
|
153
159
|
value
|
154
160
|
when :fixnum
|
155
161
|
value.to_i
|
Binary file
|
@@ -827,6 +827,10 @@ describe SimpleXlsxReader do
|
|
827
827
|
<c r='I1' s='0'>
|
828
828
|
<v>GUI-made hyperlink</v>
|
829
829
|
</c>
|
830
|
+
|
831
|
+
<c r='J1' s='0'>
|
832
|
+
<v>1</v>
|
833
|
+
</c>
|
830
834
|
</row>
|
831
835
|
</sheetData>
|
832
836
|
|
@@ -925,6 +929,10 @@ describe SimpleXlsxReader do
|
|
925
929
|
)
|
926
930
|
)
|
927
931
|
end
|
932
|
+
|
933
|
+
it "reads 'Generic' cells with numbers as numbers" do
|
934
|
+
_(@row[9]).must_equal 1
|
935
|
+
end
|
928
936
|
end
|
929
937
|
|
930
938
|
describe 'parsing documents with blank rows' do
|
@@ -936,7 +944,7 @@ describe SimpleXlsxReader do
|
|
936
944
|
<sheetData>
|
937
945
|
<row r="2" spans="1:1">
|
938
946
|
<c r="A2" s="0">
|
939
|
-
<v>
|
947
|
+
<v>a</v>
|
940
948
|
</c>
|
941
949
|
</row>
|
942
950
|
<row r="4" spans="1:1">
|
@@ -967,13 +975,30 @@ describe SimpleXlsxReader do
|
|
967
975
|
it 'reads row data despite gaps in row numbering' do
|
968
976
|
_(@rows).must_equal [
|
969
977
|
[nil, nil, nil, nil],
|
970
|
-
['
|
978
|
+
['a', nil, nil, nil],
|
971
979
|
[nil, nil, nil, nil],
|
972
|
-
[nil,
|
973
|
-
[nil, nil,
|
980
|
+
[nil, 1, nil, nil],
|
981
|
+
[nil, nil, 2, nil],
|
974
982
|
[nil, nil, nil, nil],
|
975
|
-
[nil, nil, nil,
|
983
|
+
[nil, nil, nil, 3]
|
976
984
|
]
|
977
985
|
end
|
978
986
|
end
|
987
|
+
|
988
|
+
# https://support.microsoft.com/en-us/office/available-number-formats-in-excel-0afe8f52-97db-41f1-b972-4b46e9f1e8d2
|
989
|
+
describe 'numeric fields styled as "General"' do
|
990
|
+
let(:misc_numbers_path) do
|
991
|
+
File.join(File.dirname(__FILE__), 'misc_numbers.xlsx')
|
992
|
+
end
|
993
|
+
|
994
|
+
let(:sheet) { SimpleXlsxReader.open(misc_numbers_path).sheets[0] }
|
995
|
+
|
996
|
+
it 'reads medium sized integers as integers' do
|
997
|
+
_(sheet.rows.slurp[1][0]).must_equal 98070
|
998
|
+
end
|
999
|
+
|
1000
|
+
it 'reads large (>12 char) integers as integers' do
|
1001
|
+
_(sheet.rows.slurp[1][1]).must_equal 1234567890123
|
1002
|
+
end
|
1003
|
+
end
|
979
1004
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_xlsx_reader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Woody Peterson
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- test/gdocs_sheet_test.rb
|
114
114
|
- test/lower_case_sharedstrings.xlsx
|
115
115
|
- test/lower_case_sharedstrings_test.rb
|
116
|
+
- test/misc_numbers.xlsx
|
116
117
|
- test/performance_test.rb
|
117
118
|
- test/sesame_street_blog.xlsx
|
118
119
|
- test/shared_strings.xml
|
@@ -152,6 +153,7 @@ test_files:
|
|
152
153
|
- test/gdocs_sheet_test.rb
|
153
154
|
- test/lower_case_sharedstrings.xlsx
|
154
155
|
- test/lower_case_sharedstrings_test.rb
|
156
|
+
- test/misc_numbers.xlsx
|
155
157
|
- test/performance_test.rb
|
156
158
|
- test/sesame_street_blog.xlsx
|
157
159
|
- test/shared_strings.xml
|