keeguon-spreadsheet 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +619 -0
- data/Manifest.txt +85 -0
- data/bin/xlsopcodes +18 -0
- data/lib/parseexcel.rb +27 -0
- data/lib/parseexcel/parseexcel.rb +75 -0
- data/lib/parseexcel/parser.rb +11 -0
- data/lib/spreadsheet.rb +80 -0
- data/lib/spreadsheet/column.rb +71 -0
- data/lib/spreadsheet/compatibility.rb +23 -0
- data/lib/spreadsheet/datatypes.rb +161 -0
- data/lib/spreadsheet/encodings.rb +57 -0
- data/lib/spreadsheet/excel.rb +88 -0
- data/lib/spreadsheet/excel/error.rb +26 -0
- data/lib/spreadsheet/excel/internals.rb +458 -0
- data/lib/spreadsheet/excel/internals/biff5.rb +17 -0
- data/lib/spreadsheet/excel/internals/biff8.rb +19 -0
- data/lib/spreadsheet/excel/offset.rb +41 -0
- data/lib/spreadsheet/excel/password_hash.rb +24 -0
- data/lib/spreadsheet/excel/reader.rb +1302 -0
- data/lib/spreadsheet/excel/reader/biff5.rb +42 -0
- data/lib/spreadsheet/excel/reader/biff8.rb +231 -0
- data/lib/spreadsheet/excel/rgb.rb +122 -0
- data/lib/spreadsheet/excel/row.rb +98 -0
- data/lib/spreadsheet/excel/sst_entry.rb +46 -0
- data/lib/spreadsheet/excel/workbook.rb +80 -0
- data/lib/spreadsheet/excel/worksheet.rb +115 -0
- data/lib/spreadsheet/excel/writer.rb +1 -0
- data/lib/spreadsheet/excel/writer/biff8.rb +75 -0
- data/lib/spreadsheet/excel/writer/format.rb +264 -0
- data/lib/spreadsheet/excel/writer/n_worksheet.rb +888 -0
- data/lib/spreadsheet/excel/writer/workbook.rb +735 -0
- data/lib/spreadsheet/excel/writer/worksheet.rb +940 -0
- data/lib/spreadsheet/font.rb +115 -0
- data/lib/spreadsheet/format.rb +209 -0
- data/lib/spreadsheet/formula.rb +9 -0
- data/lib/spreadsheet/helpers.rb +11 -0
- data/lib/spreadsheet/link.rb +43 -0
- data/lib/spreadsheet/note.rb +23 -0
- data/lib/spreadsheet/noteObject.rb +17 -0
- data/lib/spreadsheet/row.rb +151 -0
- data/lib/spreadsheet/workbook.rb +143 -0
- data/lib/spreadsheet/worksheet.rb +326 -0
- data/lib/spreadsheet/writer.rb +30 -0
- data/test/data/test_adding_data_to_existing_file.xls +0 -0
- data/test/data/test_borders.xls +0 -0
- data/test/data/test_changes.xls +0 -0
- data/test/data/test_comment.xls +0 -0
- data/test/data/test_copy.xls +0 -0
- data/test/data/test_datetime.xls +0 -0
- data/test/data/test_empty.xls +0 -0
- data/test/data/test_formula.xls +0 -0
- data/test/data/test_long_sst_record.xls +0 -0
- data/test/data/test_margin.xls +0 -0
- data/test/data/test_merged_and_protected.xls +0 -0
- data/test/data/test_merged_cells.xls +0 -0
- data/test/data/test_missing_row.xls +0 -0
- data/test/data/test_pagesetup.xls +0 -0
- data/test/data/test_version_excel5.xls +0 -0
- data/test/data/test_version_excel95.xls +0 -0
- data/test/data/test_version_excel97.xls +0 -0
- data/test/data/test_version_excel97_2010.xls +0 -0
- data/test/data/test_worksheet_visibility.xls +0 -0
- data/test/excel/reader.rb +30 -0
- data/test/excel/row.rb +40 -0
- data/test/excel/writer/workbook.rb +95 -0
- data/test/excel/writer/worksheet.rb +81 -0
- data/test/font.rb +163 -0
- data/test/format.rb +95 -0
- data/test/integration.rb +1390 -0
- data/test/row.rb +33 -0
- data/test/suite.rb +18 -0
- data/test/workbook.rb +55 -0
- data/test/workbook_protection.rb +19 -0
- data/test/worksheet.rb +112 -0
- metadata +148 -0
data/test/row.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestRow -- Spreadsheet -- 08.01.2009 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'spreadsheet'
|
8
|
+
|
9
|
+
module Spreadsheet
|
10
|
+
class TestRow < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@workbook = Excel::Workbook.new
|
13
|
+
@worksheet = Excel::Worksheet.new
|
14
|
+
@workbook.add_worksheet @worksheet
|
15
|
+
end
|
16
|
+
def test_formatted
|
17
|
+
row = Row.new @worksheet, 0, [nil, 1]
|
18
|
+
assert_equal 2, row.formatted.size
|
19
|
+
row.set_format 3, Format.new
|
20
|
+
assert_equal 4, row.formatted.size
|
21
|
+
end
|
22
|
+
def test_concat
|
23
|
+
row = Row.new @worksheet, 0, [nil, 1, nil]
|
24
|
+
assert_equal [nil, 1, nil], row
|
25
|
+
row.concat [2, nil]
|
26
|
+
assert_equal [nil, 1, nil, 2, nil], row
|
27
|
+
row.concat [3]
|
28
|
+
assert_equal [nil, 1, nil, 2, nil, 3], row
|
29
|
+
row.concat [nil, 4]
|
30
|
+
assert_equal [nil, 1, nil, 2, nil, 3, nil, 4], row
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/test/suite.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# suite.rb -- spreadsheet -- 22.12.2011 -- jsaak@napalm.hu
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
require 'find'
|
6
|
+
|
7
|
+
$VERBOSE = true
|
8
|
+
|
9
|
+
here = File.dirname(__FILE__)
|
10
|
+
|
11
|
+
$: << here
|
12
|
+
|
13
|
+
Find.find(here) do |file|
|
14
|
+
next if File.basename(file) == 'suite.rb'
|
15
|
+
if file =~ /\.rb$/o
|
16
|
+
require file[here.size+1..-1]
|
17
|
+
end
|
18
|
+
end
|
data/test/workbook.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestWorkbook -- Spreadsheet -- 24.09.2008 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'spreadsheet'
|
8
|
+
require 'fileutils'
|
9
|
+
require 'stringio'
|
10
|
+
|
11
|
+
module Spreadsheet
|
12
|
+
class TestWorkbook < Test::Unit::TestCase
|
13
|
+
def setup
|
14
|
+
@io = StringIO.new ''
|
15
|
+
@book = Workbook.new
|
16
|
+
end
|
17
|
+
def test_writer__default_excel
|
18
|
+
assert_instance_of Excel::Writer::Workbook, @book.writer(@io)
|
19
|
+
end
|
20
|
+
def test_sheet_count
|
21
|
+
@worksheet1 = Excel::Worksheet.new
|
22
|
+
@book.add_worksheet @worksheet1
|
23
|
+
assert_equal 1, @book.sheet_count
|
24
|
+
@worksheet2 = Excel::Worksheet.new
|
25
|
+
@book.add_worksheet @worksheet2
|
26
|
+
assert_equal 2, @book.sheet_count
|
27
|
+
end
|
28
|
+
def test_add_format
|
29
|
+
|
30
|
+
assert_equal 1, @book.formats.length # Received a default format
|
31
|
+
|
32
|
+
f1 = Format.new
|
33
|
+
@book.add_format f1
|
34
|
+
assert_equal 2, @book.formats.length
|
35
|
+
|
36
|
+
f2 = Format.new
|
37
|
+
@book.add_format f2
|
38
|
+
assert_equal 3, @book.formats.length
|
39
|
+
|
40
|
+
@book.add_format f2
|
41
|
+
assert_equal 3, @book.formats.length # Rejected duplicate insertion
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_delete_worksheet
|
45
|
+
original_count = @book.sheet_count
|
46
|
+
@sheet = @book.create_worksheet
|
47
|
+
changed_count = @book.sheet_count
|
48
|
+
@book.delete_worksheet(@book.sheet_count - 1)
|
49
|
+
|
50
|
+
assert_equal(changed_count, original_count + 1)
|
51
|
+
assert_equal(original_count, @book.sheet_count)
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'spreadsheet'
|
7
|
+
|
8
|
+
module Spreadsheet
|
9
|
+
module Excel
|
10
|
+
class TestWorkbook < Test::Unit::TestCase
|
11
|
+
def test_password_hashing
|
12
|
+
hashing_module = Spreadsheet::Excel::Password
|
13
|
+
# Some examples found on the web
|
14
|
+
assert_equal(0xFEF1, hashing_module.password_hash('abcdefghij'))
|
15
|
+
assert_equal(hashing_module.password_hash('test'), hashing_module.password_hash('zzyw'))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/test/worksheet.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestWorksheet -- Spreadheet -- 30.09.2008 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'spreadsheet'
|
8
|
+
|
9
|
+
module Spreadsheet
|
10
|
+
class TestWorksheet < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@book = Workbook.new
|
13
|
+
@sheet = @book.create_worksheet
|
14
|
+
end
|
15
|
+
def test_cell_writer
|
16
|
+
assert_nil @sheet[0,0]
|
17
|
+
assert_equal 0, @sheet.column_count
|
18
|
+
assert_equal 0, @sheet.row_count
|
19
|
+
@sheet[0,0] = 'foo'
|
20
|
+
assert_equal 'foo', @sheet[0,0]
|
21
|
+
assert_equal 1, @sheet.column_count
|
22
|
+
assert_equal 1, @sheet.row_count
|
23
|
+
@sheet[1,0] = 'bar'
|
24
|
+
assert_equal 1, @sheet.column_count
|
25
|
+
assert_equal 2, @sheet.row_count
|
26
|
+
@sheet[0,1] = 'bar'
|
27
|
+
assert_equal 2, @sheet.column_count
|
28
|
+
assert_equal 2, @sheet.row_count
|
29
|
+
@sheet[1,0] = nil
|
30
|
+
assert_equal 2, @sheet.column_count
|
31
|
+
assert_equal 2, @sheet.row_count
|
32
|
+
@sheet[0,1] = nil
|
33
|
+
assert_equal 2, @sheet.column_count
|
34
|
+
assert_equal 2, @sheet.row_count
|
35
|
+
end
|
36
|
+
def test_column_count
|
37
|
+
assert_equal 0, @sheet.column_count
|
38
|
+
@sheet.replace_row 3, nil, nil, 1, 2, 'foo, bar'
|
39
|
+
assert_equal 3, @sheet.column_count
|
40
|
+
@sheet.replace_row 8, nil, 'something', 4, 7, nil
|
41
|
+
assert_equal 4, @sheet.column_count
|
42
|
+
@sheet.replace_row 5, 4, 'something', 4, 7, nil
|
43
|
+
assert_equal 5, @sheet.column_count
|
44
|
+
@sheet.replace_row 5, nil, 'something', 4, 7, nil
|
45
|
+
assert_equal 4, @sheet.column_count
|
46
|
+
@sheet.replace_row 3
|
47
|
+
assert_equal 4, @sheet.column_count
|
48
|
+
end
|
49
|
+
def test_row_count
|
50
|
+
assert_equal 0, @sheet.row_count
|
51
|
+
@sheet.replace_row 3, nil, nil, 1, 2, 'foo, bar'
|
52
|
+
assert_equal 1, @sheet.row_count
|
53
|
+
@sheet.replace_row 8, nil, 'something', 4, 7, nil
|
54
|
+
assert_equal 6, @sheet.row_count
|
55
|
+
@sheet.replace_row 5, 4, 'something', 4, 7, nil
|
56
|
+
assert_equal 6, @sheet.row_count
|
57
|
+
@sheet.replace_row 5, nil, 'something', 4, 7, nil
|
58
|
+
assert_equal 6, @sheet.row_count
|
59
|
+
@sheet.replace_row 3
|
60
|
+
assert_equal 6, @sheet.row_count
|
61
|
+
@sheet.delete_row 3
|
62
|
+
assert_equal 5, @sheet.row_count
|
63
|
+
@sheet.delete_row 3
|
64
|
+
assert_equal 4, @sheet.row_count
|
65
|
+
@sheet.delete_row 2
|
66
|
+
assert_equal 4, @sheet.row_count
|
67
|
+
@sheet.delete_row 2
|
68
|
+
assert_equal 3, @sheet.row_count
|
69
|
+
end
|
70
|
+
def test_modify_column
|
71
|
+
assert_equal 10, @sheet.column(0).width
|
72
|
+
@sheet.column(1).width = 20
|
73
|
+
assert_equal 10, @sheet.column(0).width
|
74
|
+
assert_equal 20, @sheet.column(1).width
|
75
|
+
@sheet.column(0).width = 30
|
76
|
+
assert_equal 30, @sheet.column(0).width
|
77
|
+
assert_equal 20, @sheet.column(1).width
|
78
|
+
end
|
79
|
+
def test_format_dates!
|
80
|
+
rowi = -1
|
81
|
+
|
82
|
+
@sheet.format_dates!
|
83
|
+
# No dates = no new formats
|
84
|
+
assert_equal 1, @book.formats.length # Default format
|
85
|
+
|
86
|
+
@sheet.row(rowi+=1).concat(["Hello", "World"])
|
87
|
+
@sheet.format_dates!
|
88
|
+
# No dates = no new formats
|
89
|
+
assert_equal 1, @book.formats.length
|
90
|
+
|
91
|
+
@sheet.row(rowi+=1).concat([Date.new(2010,1,1)])
|
92
|
+
@sheet.format_dates!
|
93
|
+
# 1 date = 1 new format
|
94
|
+
assert_equal 2, @book.formats.length
|
95
|
+
|
96
|
+
@sheet.row(rowi+=1).concat([Date.new(2011,1,1)])
|
97
|
+
@sheet.row(rowi+=1).concat([Date.new(2012,1,1)])
|
98
|
+
@sheet.row(rowi+=1).concat([Date.new(2013,1,1)])
|
99
|
+
@sheet.format_dates!
|
100
|
+
# 4 dates = only 1 new format across them:
|
101
|
+
assert_equal 3, @book.formats.length
|
102
|
+
|
103
|
+
@sheet.row(rowi+=1).concat([Date.new(2014,1,1)])
|
104
|
+
@sheet.row(rowi).default_format = Format.new
|
105
|
+
@sheet.row(rowi+=1).concat([Date.new(2015,1,1)])
|
106
|
+
@sheet.format_dates!
|
107
|
+
# 6 dates = 2 new formats across them:
|
108
|
+
assert_equal 6, @book.formats.length
|
109
|
+
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: keeguon-spreadsheet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-11-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: keeguon-ruby-ole
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: hoe
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: As of version 0.6.0, only Microsoft Excel compatible spreadsheets are
|
42
|
+
supported
|
43
|
+
email: mhatakeyama@ywesee.com, zdavatz@ywesee.com
|
44
|
+
executables:
|
45
|
+
- xlsopcodes
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- bin/xlsopcodes
|
50
|
+
- lib/parseexcel/parseexcel.rb
|
51
|
+
- lib/parseexcel/parser.rb
|
52
|
+
- lib/parseexcel.rb
|
53
|
+
- lib/spreadsheet/column.rb
|
54
|
+
- lib/spreadsheet/compatibility.rb
|
55
|
+
- lib/spreadsheet/datatypes.rb
|
56
|
+
- lib/spreadsheet/encodings.rb
|
57
|
+
- lib/spreadsheet/excel/error.rb
|
58
|
+
- lib/spreadsheet/excel/internals/biff5.rb
|
59
|
+
- lib/spreadsheet/excel/internals/biff8.rb
|
60
|
+
- lib/spreadsheet/excel/internals.rb
|
61
|
+
- lib/spreadsheet/excel/offset.rb
|
62
|
+
- lib/spreadsheet/excel/password_hash.rb
|
63
|
+
- lib/spreadsheet/excel/reader/biff5.rb
|
64
|
+
- lib/spreadsheet/excel/reader/biff8.rb
|
65
|
+
- lib/spreadsheet/excel/reader.rb
|
66
|
+
- lib/spreadsheet/excel/rgb.rb
|
67
|
+
- lib/spreadsheet/excel/row.rb
|
68
|
+
- lib/spreadsheet/excel/sst_entry.rb
|
69
|
+
- lib/spreadsheet/excel/workbook.rb
|
70
|
+
- lib/spreadsheet/excel/worksheet.rb
|
71
|
+
- lib/spreadsheet/excel/writer/biff8.rb
|
72
|
+
- lib/spreadsheet/excel/writer/format.rb
|
73
|
+
- lib/spreadsheet/excel/writer/n_worksheet.rb
|
74
|
+
- lib/spreadsheet/excel/writer/workbook.rb
|
75
|
+
- lib/spreadsheet/excel/writer/worksheet.rb
|
76
|
+
- lib/spreadsheet/excel/writer.rb
|
77
|
+
- lib/spreadsheet/excel.rb
|
78
|
+
- lib/spreadsheet/font.rb
|
79
|
+
- lib/spreadsheet/format.rb
|
80
|
+
- lib/spreadsheet/formula.rb
|
81
|
+
- lib/spreadsheet/helpers.rb
|
82
|
+
- lib/spreadsheet/link.rb
|
83
|
+
- lib/spreadsheet/note.rb
|
84
|
+
- lib/spreadsheet/noteObject.rb
|
85
|
+
- lib/spreadsheet/row.rb
|
86
|
+
- lib/spreadsheet/workbook.rb
|
87
|
+
- lib/spreadsheet/worksheet.rb
|
88
|
+
- lib/spreadsheet/writer.rb
|
89
|
+
- lib/spreadsheet.rb
|
90
|
+
- test/data/test_adding_data_to_existing_file.xls
|
91
|
+
- test/data/test_borders.xls
|
92
|
+
- test/data/test_changes.xls
|
93
|
+
- test/data/test_comment.xls
|
94
|
+
- test/data/test_copy.xls
|
95
|
+
- test/data/test_datetime.xls
|
96
|
+
- test/data/test_empty.xls
|
97
|
+
- test/data/test_formula.xls
|
98
|
+
- test/data/test_long_sst_record.xls
|
99
|
+
- test/data/test_margin.xls
|
100
|
+
- test/data/test_merged_and_protected.xls
|
101
|
+
- test/data/test_merged_cells.xls
|
102
|
+
- test/data/test_missing_row.xls
|
103
|
+
- test/data/test_pagesetup.xls
|
104
|
+
- test/data/test_version_excel5.xls
|
105
|
+
- test/data/test_version_excel95.xls
|
106
|
+
- test/data/test_version_excel97.xls
|
107
|
+
- test/data/test_version_excel97_2010.xls
|
108
|
+
- test/data/test_worksheet_visibility.xls
|
109
|
+
- test/excel/reader.rb
|
110
|
+
- test/excel/row.rb
|
111
|
+
- test/excel/writer/workbook.rb
|
112
|
+
- test/excel/writer/worksheet.rb
|
113
|
+
- test/font.rb
|
114
|
+
- test/format.rb
|
115
|
+
- test/integration.rb
|
116
|
+
- test/row.rb
|
117
|
+
- test/suite.rb
|
118
|
+
- test/workbook.rb
|
119
|
+
- test/workbook_protection.rb
|
120
|
+
- test/worksheet.rb
|
121
|
+
- LICENSE.txt
|
122
|
+
- Manifest.txt
|
123
|
+
homepage: https://github.com/zdavatz/spreadsheet/
|
124
|
+
licenses:
|
125
|
+
- GPLv3
|
126
|
+
metadata: {}
|
127
|
+
post_install_message:
|
128
|
+
rdoc_options: []
|
129
|
+
require_paths:
|
130
|
+
- lib
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
requirements: []
|
142
|
+
rubyforge_project:
|
143
|
+
rubygems_version: 2.0.3
|
144
|
+
signing_key:
|
145
|
+
specification_version: 4
|
146
|
+
summary: The Spreadsheet Library is designed to read and write Spreadsheet Documents
|
147
|
+
test_files:
|
148
|
+
- test/suite.rb
|