jruby-poi 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.travis.yml +18 -4
  4. data/Gemfile +3 -6
  5. data/Gemfile.lock +20 -27
  6. data/README.markdown +49 -47
  7. data/Rakefile +20 -27
  8. data/jruby-poi.gemspec +7 -70
  9. data/lib/poi-jars/lib/commons-codec-1.10.jar +0 -0
  10. data/lib/poi-jars/lib/commons-collections4-4.1.jar +0 -0
  11. data/lib/poi-jars/lib/commons-logging-1.2.jar +0 -0
  12. data/lib/poi-jars/lib/junit-4.12.jar +0 -0
  13. data/lib/poi-jars/lib/log4j-1.2.17.jar +0 -0
  14. data/lib/poi-jars/ooxml-lib/curvesapi-1.04.jar +0 -0
  15. data/lib/{ooxml-lib/xmlbeans-2.3.0.jar → poi-jars/ooxml-lib/xmlbeans-2.6.0.jar} +0 -0
  16. data/lib/poi-jars/poi-3.15.jar +0 -0
  17. data/lib/poi-jars/poi-examples-3.15.jar +0 -0
  18. data/lib/poi-jars/poi-excelant-3.15.jar +0 -0
  19. data/lib/poi-jars/poi-ooxml-3.15.jar +0 -0
  20. data/lib/poi-jars/poi-ooxml-schemas-3.15.jar +0 -0
  21. data/lib/poi-jars/poi-scratchpad-3.15.jar +0 -0
  22. data/lib/poi.rb +13 -7
  23. data/lib/poi/version.rb +11 -0
  24. data/lib/poi/workbook/area.rb +20 -17
  25. data/lib/poi/workbook/cell.rb +28 -42
  26. data/lib/poi/workbook/row.rb +1 -1
  27. data/lib/poi/workbook/workbook.rb +3 -7
  28. data/lib/poi/workbook/worksheet.rb +2 -2
  29. data/spec/data/1904_window_dates.xls +0 -0
  30. data/spec/data/various_samples.xlsx +0 -0
  31. data/spec/facade_spec.rb +35 -35
  32. data/spec/spec_helper.rb +10 -0
  33. data/spec/support/matchers/cell_matcher.rb +3 -3
  34. data/spec/workbook_spec.rb +368 -385
  35. data/spec/writing_spec.rb +144 -144
  36. metadata +111 -121
  37. data/VERSION +0 -1
  38. data/lib/ooxml-lib/dom4j-1.6.1.jar +0 -0
  39. data/lib/ooxml-lib/stax-api-1.0.1.jar +0 -0
  40. data/lib/poi-3.8-20120326.jar +0 -0
  41. data/lib/poi-examples-3.8-20120326.jar +0 -0
  42. data/lib/poi-excelant-3.8-20120326.jar +0 -0
  43. data/lib/poi-ooxml-3.8-20120326.jar +0 -0
  44. data/lib/poi-ooxml-schemas-3.8-20120326.jar +0 -0
  45. data/lib/poi-scratchpad-3.8-20120326.jar +0 -0
@@ -1,144 +1,144 @@
1
- require 'date'
2
- require 'stringio'
3
-
4
- describe "writing Workbooks" do
5
- it "should create a new empty workbook" do
6
- name = 'new-workbook.xlsx'
7
- book = POI::Workbook.create(name)
8
- book.should_not be_nil
9
- end
10
-
11
- it "should create a new workbook and write something to it" do
12
- name = TestDataFile.expand_path("timesheet-#{Time.now.strftime('%Y%m%d%H%M%S%s')}.xlsx")
13
- create_timesheet_spreadsheet(name)
14
- book = POI::Workbook.open(name)
15
- book.worksheets.size.should == 1
16
- book.worksheets[0].name.should == 'Timesheet'
17
- book.filename.should == name
18
- book['Timesheet!A3'].should == 'Yegor Kozlov'
19
- book.cell('Timesheet!J13').formula_value.should == 'SUM(J3:J12)'
20
- FileUtils.rm_f name
21
- end
22
-
23
- def create_timesheet_spreadsheet name='spec/data/timesheet.xlsx'
24
- titles = ["Person", "ID", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Total\nHrs", "Overtime\nHrs", "Regular\nHrs"]
25
- sample_data = [
26
- ["Yegor Kozlov", "YK", 5.0, 8.0, 10.0, 5.0, 5.0, 7.0, 6.0],
27
- ["Gisella Bronzetti", "GB", 4.0, 3.0, 1.0, 3.5, nil, nil, 4.0]
28
- ]
29
-
30
- book = POI::Workbook.create(name)
31
- title_style = book.create_style :font_height_in_points => 18, :boldweight => :boldweight_bold,
32
- :alignment => :align_center, :vertical_alignment => :vertical_center
33
- header_style = book.create_style :font_height_in_points => 11, :color => :white, :fill_foreground_color => :grey_50_percent,
34
- :fill_pattern => :solid_foreground, :alignment => :align_center, :vertical_alignment => :vertical_center
35
- cell_style = book.create_style :alignment => :align_center, :border_bottom => :border_thin, :border_top => :border_thin,
36
- :border_left => :border_thin, :border_right => :border_thin, :bottom_border_color => :black,
37
- :right_border_color => :black, :left_border_color => :black, :top_border_color => :black
38
- form1_style = book.create_style :data_format => '0.00', :fill_pattern => :solid_foreground, :fill_foreground_color => :grey_25_percent,
39
- :alignment => :align_center, :vertical_alignment => :vertical_center
40
- form2_style = book.create_style :data_format => '0.00', :fill_pattern => :solid_foreground, :fill_foreground_color => :grey_40_percent,
41
- :alignment => :align_center, :vertical_alignment => :vertical_center
42
-
43
- sheet = book.create_sheet 'Timesheet'
44
- print_setup = sheet.print_setup
45
- print_setup.landscape = true
46
- sheet.fit_to_page = true
47
- sheet.horizontally_center = true
48
-
49
- title_row = sheet.rows[0]
50
- title_row.height_in_points = 45
51
- title_cell = title_row.cells[0]
52
- title_cell.value = 'Weekly Timesheet'
53
- title_cell.style = title_style
54
- sheet.add_merged_region org.apache.poi.ss.util.CellRangeAddress.valueOf("$A$1:$L$1")
55
-
56
- header_row = sheet[1]
57
- header_row.height_in_points = 40
58
- titles.each_with_index do | title, index |
59
- header_cell = header_row[index]
60
- header_cell.value = title
61
- header_cell.style = header_style
62
- end
63
-
64
- row_num = 2
65
- 10.times do
66
- row = sheet[row_num]
67
- row_num += 1
68
- titles.each_with_index do | title, index |
69
- cell = row[index]
70
- if index == 9
71
- cell.formula = "SUM(C#{row_num}:I#{row_num})"
72
- cell.style = form1_style
73
- elsif index == 11
74
- cell.formula = "J#{row_num} - K#{row_num}"
75
- cell.style = form1_style
76
- else
77
- cell.style = cell_style
78
- end
79
- end
80
- end
81
-
82
- # row with totals below
83
- sum_row = sheet[row_num]
84
- row_num += 1
85
- sum_row.height_in_points = 35
86
- cell = sum_row[0]
87
- cell.style = form1_style
88
- cell = sum_row[1]
89
- cell.style = form1_style
90
- cell.value = 'Total Hrs:'
91
- (2...12).each do | cell_index |
92
- cell = sum_row[cell_index]
93
- column = (?A.ord + cell_index).chr
94
- cell.formula = "SUM(#{column}3:#{column}12)"
95
- if cell_index > 9
96
- cell.style = form2_style
97
- else
98
- cell.style = form1_style
99
- end
100
- end
101
- row_num += 1
102
- sum_row = sheet[row_num]
103
- row_num += 1
104
- sum_row.height_in_points = 25
105
- cell = sum_row[0]
106
- cell.value = 'Total Regular Hours'
107
- cell.style = form1_style
108
- cell = sum_row[1]
109
- cell.formula = 'L13'
110
- cell.style = form2_style
111
- sum_row = sheet[row_num]
112
- row_num += 1
113
- cell = sum_row[0]
114
- cell.value = 'Total Overtime Hours'
115
- cell.style = form1_style
116
- cell = sum_row[1]
117
- cell.formula = 'K13'
118
- cell.style = form2_style
119
-
120
- # set sample data
121
- sample_data.each_with_index do |each, row_index|
122
- row = sheet[2 + row_index]
123
- each.each_with_index do | data, cell_index |
124
- data = sample_data[row_index][cell_index]
125
- next unless data
126
- if data.kind_of? String
127
- row[cell_index].value = data #.to_java(:string)
128
- else
129
- row[cell_index].value = data #.to_java(:double)
130
- end
131
- end
132
- end
133
-
134
- # finally set column widths, the width is measured in units of 1/256th of a character width
135
- sheet.set_column_width 0, 30*256 # 30 characters wide
136
- (2..9).to_a.each do | column |
137
- sheet.set_column_width column, 6*256 # 6 characters wide
138
- end
139
- sheet.set_column_width 10, 10*256 # 10 characters wide
140
-
141
- book.save
142
- File.exist?(name).should == true
143
- end
144
- end
1
+ require 'date'
2
+ require 'stringio'
3
+
4
+ describe "writing Workbooks" do
5
+ it "should create a new empty workbook" do
6
+ name = 'new-workbook.xlsx'
7
+ book = POI::Workbook.create(name)
8
+ book.should_not be_nil
9
+ end
10
+
11
+ it "should create a new workbook and write something to it" do
12
+ name = TestDataFile.expand_path("timesheet-#{Time.now.strftime('%Y%m%d%H%M%S%s')}.xlsx")
13
+ create_timesheet_spreadsheet(name)
14
+ book = POI::Workbook.open(name)
15
+ book.worksheets.size.should == 1
16
+ book.worksheets[0].name.should == 'Timesheet'
17
+ book.filename.should == name
18
+ book['Timesheet!A3'].should == 'Yegor Kozlov'
19
+ book.cell('Timesheet!J13').formula_value.should == 'SUM(J3:J12)'
20
+ FileUtils.rm_f name
21
+ end
22
+
23
+ def create_timesheet_spreadsheet name='spec/data/timesheet.xlsx'
24
+ titles = ["Person", "ID", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Total\nHrs", "Overtime\nHrs", "Regular\nHrs"]
25
+ sample_data = [
26
+ ["Yegor Kozlov", "YK", 5.0, 8.0, 10.0, 5.0, 5.0, 7.0, 6.0],
27
+ ["Gisella Bronzetti", "GB", 4.0, 3.0, 1.0, 3.5, nil, nil, 4.0]
28
+ ]
29
+
30
+ book = POI::Workbook.create(name)
31
+ title_style = book.create_style :font_height_in_points => 18, :boldweight => :boldweight_bold,
32
+ :alignment => :align_center, :vertical_alignment => :vertical_center
33
+ header_style = book.create_style :font_height_in_points => 11, :color => :white, :fill_foreground_color => :grey_50_percent,
34
+ :fill_pattern => :solid_foreground, :alignment => :align_center, :vertical_alignment => :vertical_center
35
+ cell_style = book.create_style :alignment => :align_center, :border_bottom => :border_thin, :border_top => :border_thin,
36
+ :border_left => :border_thin, :border_right => :border_thin, :bottom_border_color => :black,
37
+ :right_border_color => :black, :left_border_color => :black, :top_border_color => :black
38
+ form1_style = book.create_style :data_format => '0.00', :fill_pattern => :solid_foreground, :fill_foreground_color => :grey_25_percent,
39
+ :alignment => :align_center, :vertical_alignment => :vertical_center
40
+ form2_style = book.create_style :data_format => '0.00', :fill_pattern => :solid_foreground, :fill_foreground_color => :grey_40_percent,
41
+ :alignment => :align_center, :vertical_alignment => :vertical_center
42
+
43
+ sheet = book.create_sheet 'Timesheet'
44
+ print_setup = sheet.print_setup
45
+ print_setup.landscape = true
46
+ sheet.fit_to_page = true
47
+ sheet.horizontally_center = true
48
+
49
+ title_row = sheet.rows[0]
50
+ title_row.height_in_points = 45
51
+ title_cell = title_row.cells[0]
52
+ title_cell.value = 'Weekly Timesheet'
53
+ title_cell.style = title_style
54
+ sheet.add_merged_region org.apache.poi.ss.util.CellRangeAddress.valueOf("$A$1:$L$1")
55
+
56
+ header_row = sheet[1]
57
+ header_row.height_in_points = 40
58
+ titles.each_with_index do | title, index |
59
+ header_cell = header_row[index]
60
+ header_cell.value = title
61
+ header_cell.style = header_style
62
+ end
63
+
64
+ row_num = 2
65
+ 10.times do
66
+ row = sheet[row_num]
67
+ row_num += 1
68
+ titles.each_with_index do | title, index |
69
+ cell = row[index]
70
+ if index == 9
71
+ cell.formula = "SUM(C#{row_num}:I#{row_num})"
72
+ cell.style = form1_style
73
+ elsif index == 11
74
+ cell.formula = "J#{row_num} - K#{row_num}"
75
+ cell.style = form1_style
76
+ else
77
+ cell.style = cell_style
78
+ end
79
+ end
80
+ end
81
+
82
+ # row with totals below
83
+ sum_row = sheet[row_num]
84
+ row_num += 1
85
+ sum_row.height_in_points = 35
86
+ cell = sum_row[0]
87
+ cell.style = form1_style
88
+ cell = sum_row[1]
89
+ cell.style = form1_style
90
+ cell.value = 'Total Hrs:'
91
+ (2...12).each do | cell_index |
92
+ cell = sum_row[cell_index]
93
+ column = (?A.ord + cell_index).chr
94
+ cell.formula = "SUM(#{column}3:#{column}12)"
95
+ if cell_index > 9
96
+ cell.style = form2_style
97
+ else
98
+ cell.style = form1_style
99
+ end
100
+ end
101
+ row_num += 1
102
+ sum_row = sheet[row_num]
103
+ row_num += 1
104
+ sum_row.height_in_points = 25
105
+ cell = sum_row[0]
106
+ cell.value = 'Total Regular Hours'
107
+ cell.style = form1_style
108
+ cell = sum_row[1]
109
+ cell.formula = 'L13'
110
+ cell.style = form2_style
111
+ sum_row = sheet[row_num]
112
+ row_num += 1
113
+ cell = sum_row[0]
114
+ cell.value = 'Total Overtime Hours'
115
+ cell.style = form1_style
116
+ cell = sum_row[1]
117
+ cell.formula = 'K13'
118
+ cell.style = form2_style
119
+
120
+ # set sample data
121
+ sample_data.each_with_index do |each, row_index|
122
+ row = sheet[2 + row_index]
123
+ each.each_with_index do | data, cell_index |
124
+ data = sample_data[row_index][cell_index]
125
+ next unless data
126
+ if data.kind_of? String
127
+ row[cell_index].value = data #.to_java(:string)
128
+ else
129
+ row[cell_index].value = data #.to_java(:double)
130
+ end
131
+ end
132
+ end
133
+
134
+ # finally set column widths, the width is measured in units of 1/256th of a character width
135
+ sheet.set_column_width 0, 30*256 # 30 characters wide
136
+ (2..9).to_a.each do | column |
137
+ sheet.set_column_width column, 6*256 # 6 characters wide
138
+ end
139
+ sheet.set_column_width 10, 10*256 # 10 characters wide
140
+
141
+ book.save
142
+ File.exist?(name).should == true
143
+ end
144
+ end
metadata CHANGED
@@ -1,132 +1,122 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jruby-poi
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.9.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
6
5
  platform: ruby
7
- authors:
8
- - Scott Deming
9
- - Jason Rogers
10
- autorequire:
6
+ authors:
7
+ - Scott Deming
8
+ - Jason Rogers
9
+ autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
-
14
- date: 2012-10-15 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: rspec
18
- version_requirements: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 2.11.0
24
- requirement: *id001
25
- prerelease: false
26
- type: :development
27
- - !ruby/object:Gem::Dependency
28
- name: jeweler
29
- version_requirements: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: 1.8.4
35
- requirement: *id002
36
- prerelease: false
37
- type: :development
38
- - !ruby/object:Gem::Dependency
39
- name: jruby-openssl
40
- version_requirements: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- requirement: *id003
47
- prerelease: false
48
- type: :development
12
+ date: 2016-11-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ name: rspec
21
+ prerelease: false
22
+ type: :development
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '3.0'
49
28
  description: A rubyesque library for manipulating spreadsheets and other document types for jruby, using Apache POI.
50
- email:
51
- - sdeming@makefile.com
52
- - jacaetevha@gmail.com
29
+ email:
30
+ - sdeming@makefile.com
31
+ - jacaetevha@gmail.com
53
32
  executables: []
54
-
55
33
  extensions: []
56
-
57
- extra_rdoc_files:
58
- - LICENSE
59
- - README.markdown
60
- files:
61
- - .travis.yml
62
- - Gemfile
63
- - Gemfile.lock
64
- - LICENSE
65
- - NOTICE
66
- - README.markdown
67
- - Rakefile
68
- - VERSION
69
- - jruby-poi.gemspec
70
- - lib/ooxml-lib/dom4j-1.6.1.jar
71
- - lib/ooxml-lib/stax-api-1.0.1.jar
72
- - lib/ooxml-lib/xmlbeans-2.3.0.jar
73
- - lib/poi-3.8-20120326.jar
74
- - lib/poi-examples-3.8-20120326.jar
75
- - lib/poi-excelant-3.8-20120326.jar
76
- - lib/poi-ooxml-3.8-20120326.jar
77
- - lib/poi-ooxml-schemas-3.8-20120326.jar
78
- - lib/poi-scratchpad-3.8-20120326.jar
79
- - lib/poi.rb
80
- - lib/poi/workbook.rb
81
- - lib/poi/workbook/area.rb
82
- - lib/poi/workbook/cell.rb
83
- - lib/poi/workbook/named_range.rb
84
- - lib/poi/workbook/row.rb
85
- - lib/poi/workbook/workbook.rb
86
- - lib/poi/workbook/worksheet.rb
87
- - spec/data/simple_with_picture.ods
88
- - spec/data/simple_with_picture.xls
89
- - spec/data/spreadsheet.ods
90
- - spec/data/timesheet.xlsx
91
- - spec/data/various_samples.xlsx
92
- - spec/facade_spec.rb
93
- - spec/io_spec.rb
94
- - spec/spec_helper.rb
95
- - spec/support/java/jrubypoi/MockOutputStream.java
96
- - spec/support/java/support.jar
97
- - spec/support/matchers/cell_matcher.rb
98
- - spec/workbook_spec.rb
99
- - spec/writing_spec.rb
100
- - spec_debug.sh
34
+ extra_rdoc_files:
35
+ - LICENSE
36
+ - README.markdown
37
+ files:
38
+ - ".gitignore"
39
+ - ".travis.yml"
40
+ - Gemfile
41
+ - Gemfile.lock
42
+ - LICENSE
43
+ - NOTICE
44
+ - README.markdown
45
+ - Rakefile
46
+ - jruby-poi.gemspec
47
+ - lib/poi-jars/lib/commons-codec-1.10.jar
48
+ - lib/poi-jars/lib/commons-collections4-4.1.jar
49
+ - lib/poi-jars/lib/commons-logging-1.2.jar
50
+ - lib/poi-jars/lib/junit-4.12.jar
51
+ - lib/poi-jars/lib/log4j-1.2.17.jar
52
+ - lib/poi-jars/ooxml-lib/curvesapi-1.04.jar
53
+ - lib/poi-jars/ooxml-lib/xmlbeans-2.6.0.jar
54
+ - lib/poi-jars/poi-3.15.jar
55
+ - lib/poi-jars/poi-examples-3.15.jar
56
+ - lib/poi-jars/poi-excelant-3.15.jar
57
+ - lib/poi-jars/poi-ooxml-3.15.jar
58
+ - lib/poi-jars/poi-ooxml-schemas-3.15.jar
59
+ - lib/poi-jars/poi-scratchpad-3.15.jar
60
+ - lib/poi.rb
61
+ - lib/poi/version.rb
62
+ - lib/poi/workbook.rb
63
+ - lib/poi/workbook/area.rb
64
+ - lib/poi/workbook/cell.rb
65
+ - lib/poi/workbook/named_range.rb
66
+ - lib/poi/workbook/row.rb
67
+ - lib/poi/workbook/workbook.rb
68
+ - lib/poi/workbook/worksheet.rb
69
+ - spec/data/1904_window_dates.xls
70
+ - spec/data/simple_with_picture.ods
71
+ - spec/data/simple_with_picture.xls
72
+ - spec/data/spreadsheet.ods
73
+ - spec/data/timesheet.xlsx
74
+ - spec/data/various_samples.xlsx
75
+ - spec/facade_spec.rb
76
+ - spec/io_spec.rb
77
+ - spec/spec_helper.rb
78
+ - spec/support/java/jrubypoi/MockOutputStream.java
79
+ - spec/support/java/support.jar
80
+ - spec/support/matchers/cell_matcher.rb
81
+ - spec/workbook_spec.rb
82
+ - spec/writing_spec.rb
83
+ - spec_debug.sh
101
84
  homepage: http://github.com/kameeoze/jruby-poi
102
- licenses:
103
- - Apache
104
- post_install_message:
85
+ licenses:
86
+ - Apache
87
+ metadata: {}
88
+ post_install_message:
105
89
  rdoc_options: []
106
-
107
- require_paths:
108
- - lib
109
- required_ruby_version: !ruby/object:Gem::Requirement
110
- none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 2
115
- segments:
116
- - 0
117
- version: "0"
118
- required_rubygems_version: !ruby/object:Gem::Requirement
119
- none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0"
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
124
102
  requirements: []
125
-
126
- rubyforge_project:
127
- rubygems_version: 1.8.24
128
- signing_key:
129
- specification_version: 3
103
+ rubyforge_project:
104
+ rubygems_version: 2.4.8
105
+ signing_key:
106
+ specification_version: 4
130
107
  summary: Apache POI class library for jruby
131
- test_files: []
132
-
108
+ test_files:
109
+ - spec/data/1904_window_dates.xls
110
+ - spec/data/simple_with_picture.ods
111
+ - spec/data/simple_with_picture.xls
112
+ - spec/data/spreadsheet.ods
113
+ - spec/data/timesheet.xlsx
114
+ - spec/data/various_samples.xlsx
115
+ - spec/facade_spec.rb
116
+ - spec/io_spec.rb
117
+ - spec/spec_helper.rb
118
+ - spec/support/java/jrubypoi/MockOutputStream.java
119
+ - spec/support/java/support.jar
120
+ - spec/support/matchers/cell_matcher.rb
121
+ - spec/workbook_spec.rb
122
+ - spec/writing_spec.rb