keeguon-spreadsheet 0.9.3

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 (76) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +619 -0
  3. data/Manifest.txt +85 -0
  4. data/bin/xlsopcodes +18 -0
  5. data/lib/parseexcel.rb +27 -0
  6. data/lib/parseexcel/parseexcel.rb +75 -0
  7. data/lib/parseexcel/parser.rb +11 -0
  8. data/lib/spreadsheet.rb +80 -0
  9. data/lib/spreadsheet/column.rb +71 -0
  10. data/lib/spreadsheet/compatibility.rb +23 -0
  11. data/lib/spreadsheet/datatypes.rb +161 -0
  12. data/lib/spreadsheet/encodings.rb +57 -0
  13. data/lib/spreadsheet/excel.rb +88 -0
  14. data/lib/spreadsheet/excel/error.rb +26 -0
  15. data/lib/spreadsheet/excel/internals.rb +458 -0
  16. data/lib/spreadsheet/excel/internals/biff5.rb +17 -0
  17. data/lib/spreadsheet/excel/internals/biff8.rb +19 -0
  18. data/lib/spreadsheet/excel/offset.rb +41 -0
  19. data/lib/spreadsheet/excel/password_hash.rb +24 -0
  20. data/lib/spreadsheet/excel/reader.rb +1302 -0
  21. data/lib/spreadsheet/excel/reader/biff5.rb +42 -0
  22. data/lib/spreadsheet/excel/reader/biff8.rb +231 -0
  23. data/lib/spreadsheet/excel/rgb.rb +122 -0
  24. data/lib/spreadsheet/excel/row.rb +98 -0
  25. data/lib/spreadsheet/excel/sst_entry.rb +46 -0
  26. data/lib/spreadsheet/excel/workbook.rb +80 -0
  27. data/lib/spreadsheet/excel/worksheet.rb +115 -0
  28. data/lib/spreadsheet/excel/writer.rb +1 -0
  29. data/lib/spreadsheet/excel/writer/biff8.rb +75 -0
  30. data/lib/spreadsheet/excel/writer/format.rb +264 -0
  31. data/lib/spreadsheet/excel/writer/n_worksheet.rb +888 -0
  32. data/lib/spreadsheet/excel/writer/workbook.rb +735 -0
  33. data/lib/spreadsheet/excel/writer/worksheet.rb +940 -0
  34. data/lib/spreadsheet/font.rb +115 -0
  35. data/lib/spreadsheet/format.rb +209 -0
  36. data/lib/spreadsheet/formula.rb +9 -0
  37. data/lib/spreadsheet/helpers.rb +11 -0
  38. data/lib/spreadsheet/link.rb +43 -0
  39. data/lib/spreadsheet/note.rb +23 -0
  40. data/lib/spreadsheet/noteObject.rb +17 -0
  41. data/lib/spreadsheet/row.rb +151 -0
  42. data/lib/spreadsheet/workbook.rb +143 -0
  43. data/lib/spreadsheet/worksheet.rb +326 -0
  44. data/lib/spreadsheet/writer.rb +30 -0
  45. data/test/data/test_adding_data_to_existing_file.xls +0 -0
  46. data/test/data/test_borders.xls +0 -0
  47. data/test/data/test_changes.xls +0 -0
  48. data/test/data/test_comment.xls +0 -0
  49. data/test/data/test_copy.xls +0 -0
  50. data/test/data/test_datetime.xls +0 -0
  51. data/test/data/test_empty.xls +0 -0
  52. data/test/data/test_formula.xls +0 -0
  53. data/test/data/test_long_sst_record.xls +0 -0
  54. data/test/data/test_margin.xls +0 -0
  55. data/test/data/test_merged_and_protected.xls +0 -0
  56. data/test/data/test_merged_cells.xls +0 -0
  57. data/test/data/test_missing_row.xls +0 -0
  58. data/test/data/test_pagesetup.xls +0 -0
  59. data/test/data/test_version_excel5.xls +0 -0
  60. data/test/data/test_version_excel95.xls +0 -0
  61. data/test/data/test_version_excel97.xls +0 -0
  62. data/test/data/test_version_excel97_2010.xls +0 -0
  63. data/test/data/test_worksheet_visibility.xls +0 -0
  64. data/test/excel/reader.rb +30 -0
  65. data/test/excel/row.rb +40 -0
  66. data/test/excel/writer/workbook.rb +95 -0
  67. data/test/excel/writer/worksheet.rb +81 -0
  68. data/test/font.rb +163 -0
  69. data/test/format.rb +95 -0
  70. data/test/integration.rb +1390 -0
  71. data/test/row.rb +33 -0
  72. data/test/suite.rb +18 -0
  73. data/test/workbook.rb +55 -0
  74. data/test/workbook_protection.rb +19 -0
  75. data/test/worksheet.rb +112 -0
  76. metadata +148 -0
@@ -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
@@ -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
@@ -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
@@ -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