spreadsheet 0.6.5.0 → 0.6.5.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.
- data/Manifest.txt +2 -0
- data/Rakefile +3 -4
- data/lib/spreadsheet.rb +1 -1
- data/lib/spreadsheet/excel/reader/biff8.rb +17 -4
- data/spreadsheet.gemspec +22 -0
- data/test/data/test_long_sst_record.xls +0 -0
- data/test/integration.rb +9 -0
- metadata +9 -6
data/Manifest.txt
CHANGED
@@ -4,6 +4,7 @@ LICENSE.txt
|
|
4
4
|
Manifest.txt
|
5
5
|
README.txt
|
6
6
|
Rakefile
|
7
|
+
spreadsheet.gemspec
|
7
8
|
bin/xlsopcodes
|
8
9
|
lib/parseexcel.rb
|
9
10
|
lib/parseexcel/parseexcel.rb
|
@@ -46,6 +47,7 @@ test/data/test_datetime.xls
|
|
46
47
|
test/data/test_empty.xls
|
47
48
|
test/data/test_formula.xls
|
48
49
|
test/data/test_missing_row.xls
|
50
|
+
test/data/test_long_sst_record.xls
|
49
51
|
test/data/test_version_excel5.xls
|
50
52
|
test/data/test_version_excel95.xls
|
51
53
|
test/data/test_version_excel97.xls
|
data/Rakefile
CHANGED
@@ -8,11 +8,10 @@ require './lib/spreadsheet.rb'
|
|
8
8
|
|
9
9
|
ENV['RDOCOPT'] = '-c utf8'
|
10
10
|
|
11
|
-
Hoe.
|
12
|
-
# p.rubyforge_name = 'spreadsheetx' # if different than lowercase project name
|
11
|
+
Hoe.spec('spreadsheet') do |p|
|
13
12
|
p.developer('Masaomi Hatakeyama, Zeno R.R. Davatz','mhatakeyama@ywesee.com, zdavatz@ywesee.com')
|
14
|
-
p.remote_rdoc_dir = ''
|
15
|
-
p.extra_deps << 'ruby-ole'
|
13
|
+
p.remote_rdoc_dir = 'spreadsheet'
|
14
|
+
p.extra_deps << ['ruby-ole', '>=1.0']
|
16
15
|
end
|
17
16
|
|
18
17
|
# vim: syntax=Ruby
|
data/lib/spreadsheet.rb
CHANGED
@@ -39,11 +39,15 @@ module Biff8
|
|
39
39
|
owing = @incomplete_sst.continued_chars
|
40
40
|
size = [work.size, owing * (1 + wide) + 1].min
|
41
41
|
chars = (size - 1) / (1 + wide)
|
42
|
+
skip = size
|
42
43
|
@incomplete_sst.continue oppos + OPCODE_SIZE, size, chars
|
43
44
|
unless @incomplete_sst.continued?
|
45
|
+
@workbook.add_shared_string @incomplete_sst
|
46
|
+
skip += @incomplete_skip
|
44
47
|
@incomplete_sst = nil
|
48
|
+
@incomplete_skip = nil
|
45
49
|
end
|
46
|
-
|
50
|
+
skip
|
47
51
|
end
|
48
52
|
##
|
49
53
|
# Read more data into the Shared String Table. (see also: #read_sst)
|
@@ -52,13 +56,16 @@ module Biff8
|
|
52
56
|
pos = 0
|
53
57
|
if @incomplete_sst
|
54
58
|
pos = continue_string_header work, oppos
|
59
|
+
elsif !@incomplete_skip.nil?
|
60
|
+
pos = @incomplete_skip
|
61
|
+
@incomplete_skip = nil
|
55
62
|
end
|
56
63
|
@sst_offset[1] += len
|
57
64
|
_read_sst work, oppos, pos
|
58
65
|
end
|
59
66
|
def postread_workbook # :nodoc:
|
60
67
|
super
|
61
|
-
@incomplete_string, @sst_size, @sst_offset, @incomplete_sst = nil
|
68
|
+
@incomplete_string, @sst_size, @sst_offset, @incomplete_sst = nil, @incomplete_skip = nil
|
62
69
|
end
|
63
70
|
##
|
64
71
|
# Store the offset of extsst, so we can write a new extsst when the
|
@@ -175,9 +182,15 @@ module Biff8
|
|
175
182
|
sst.wide = wide > 0
|
176
183
|
if sst.continued?
|
177
184
|
@incomplete_sst = sst
|
185
|
+
@incomplete_skip = skip
|
186
|
+
pos += sst.available
|
187
|
+
else
|
188
|
+
@workbook.add_shared_string sst
|
189
|
+
pos += sst.available + skip
|
190
|
+
if pos > worksize
|
191
|
+
@incomplete_skip = pos - worksize
|
192
|
+
end
|
178
193
|
end
|
179
|
-
@workbook.add_shared_string sst
|
180
|
-
pos += sst.available + skip
|
181
194
|
end
|
182
195
|
end
|
183
196
|
end
|
data/spreadsheet.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "rake"
|
3
|
+
|
4
|
+
spec = Gem::Specification.new do |s|
|
5
|
+
s.name = "spreadsheet"
|
6
|
+
s.version = "0.6.5"
|
7
|
+
s.summary = "The Spreadsheet Library is designed to read and write Spreadsheet Documents"
|
8
|
+
s.description = "As of version 0.6.0, only Microsoft Excel compatible spreadsheets are supported"
|
9
|
+
s.author = "Masaomi Hatakeyama, Zeno R.R. Davatz"
|
10
|
+
s.email = "mhatakeyama@ywesee.com, zdavatz@ywesee.com"
|
11
|
+
s.platform = Gem::Platform::RUBY
|
12
|
+
s.files = Dir.glob("{bin,lib,test}/**/*") + Dir.glob("*.txt")
|
13
|
+
s.test_file = "test/suite.rb"
|
14
|
+
s.executables << 'xlsopcodes'
|
15
|
+
s.add_dependency('ruby-ole')
|
16
|
+
s.homepage = "http://scm.ywesee.com/?p=spreadsheet/.git;a=summary"
|
17
|
+
end
|
18
|
+
|
19
|
+
if $0 == __FILE__
|
20
|
+
Gem.manage_gems
|
21
|
+
Gem::Builder.new(spec).build
|
22
|
+
end
|
Binary file
|
data/test/integration.rb
CHANGED
@@ -1271,11 +1271,20 @@ module Spreadsheet
|
|
1271
1271
|
target = File.join @var, 'test_changes.xls'
|
1272
1272
|
assert_nothing_raised do book.write target end
|
1273
1273
|
end
|
1274
|
+
def test_long_sst_record
|
1275
|
+
path = File.join @data, 'test_long_sst_record.xls'
|
1276
|
+
book = Spreadsheet.open path
|
1277
|
+
sheet = book.worksheet(0)
|
1278
|
+
expected_result = 'A1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998'
|
1279
|
+
assert_equal(expected_result, sheet[0,0])
|
1280
|
+
end
|
1281
|
+
=begin
|
1274
1282
|
def test_read_baltic
|
1275
1283
|
path = File.join @data, 'test_baltic.xls'
|
1276
1284
|
assert_nothing_raised do
|
1277
1285
|
Spreadsheet.open path
|
1278
1286
|
end
|
1279
1287
|
end
|
1288
|
+
=end
|
1280
1289
|
end
|
1281
1290
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spreadsheet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 105
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
9
|
- 5
|
10
|
-
-
|
11
|
-
version: 0.6.5.
|
10
|
+
- 1
|
11
|
+
version: 0.6.5.1
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2011-01-17 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -27,10 +27,11 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
30
|
+
hash: 15
|
31
31
|
segments:
|
32
|
+
- 1
|
32
33
|
- 0
|
33
|
-
version: "0"
|
34
|
+
version: "1.0"
|
34
35
|
type: :runtime
|
35
36
|
version_requirements: *id001
|
36
37
|
- !ruby/object:Gem::Dependency
|
@@ -74,6 +75,7 @@ files:
|
|
74
75
|
- Manifest.txt
|
75
76
|
- README.txt
|
76
77
|
- Rakefile
|
78
|
+
- spreadsheet.gemspec
|
77
79
|
- bin/xlsopcodes
|
78
80
|
- lib/parseexcel.rb
|
79
81
|
- lib/parseexcel/parseexcel.rb
|
@@ -116,6 +118,7 @@ files:
|
|
116
118
|
- test/data/test_empty.xls
|
117
119
|
- test/data/test_formula.xls
|
118
120
|
- test/data/test_missing_row.xls
|
121
|
+
- test/data/test_long_sst_record.xls
|
119
122
|
- test/data/test_version_excel5.xls
|
120
123
|
- test/data/test_version_excel95.xls
|
121
124
|
- test/data/test_version_excel97.xls
|