keeguon-spreadsheet 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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