rubyfromexcel 0.0.4

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 (188) hide show
  1. data/README +22 -0
  2. data/bin/rubyfromexcel +20 -0
  3. data/examples/create_and_test_examples.rb +37 -0
  4. data/examples/ruby-versions/array-formulas-ruby/sheets/sheet1.rb +59 -0
  5. data/examples/ruby-versions/array-formulas-ruby/sheets/sheet2.rb +9 -0
  6. data/examples/ruby-versions/array-formulas-ruby/specs/sheet1_rspec.rb +156 -0
  7. data/examples/ruby-versions/array-formulas-ruby/specs/sheet2_rspec.rb +8 -0
  8. data/examples/ruby-versions/array-formulas-ruby/spreadsheet.rb +9 -0
  9. data/examples/ruby-versions/complex-test-ruby/sheets/sheet1.rb +305 -0
  10. data/examples/ruby-versions/complex-test-ruby/sheets/sheet2.rb +147 -0
  11. data/examples/ruby-versions/complex-test-ruby/specs/sheet1_rspec.rb +876 -0
  12. data/examples/ruby-versions/complex-test-ruby/specs/sheet2_rspec.rb +412 -0
  13. data/examples/ruby-versions/complex-test-ruby/spreadsheet.rb +9 -0
  14. data/examples/ruby-versions/namedReferenceTest-ruby/sheets/sheet1.rb +9 -0
  15. data/examples/ruby-versions/namedReferenceTest-ruby/sheets/sheet2.rb +8 -0
  16. data/examples/ruby-versions/namedReferenceTest-ruby/specs/sheet1_rspec.rb +16 -0
  17. data/examples/ruby-versions/namedReferenceTest-ruby/specs/sheet2_rspec.rb +16 -0
  18. data/examples/ruby-versions/namedReferenceTest-ruby/spreadsheet.rb +9 -0
  19. data/examples/ruby-versions/pruning-ruby/sheets/sheet1.rb +11 -0
  20. data/examples/ruby-versions/pruning-ruby/sheets/sheet2.rb +14 -0
  21. data/examples/ruby-versions/pruning-ruby/sheets/sheet3.rb +7 -0
  22. data/examples/ruby-versions/pruning-ruby/specs/sheet1_rspec.rb +20 -0
  23. data/examples/ruby-versions/pruning-ruby/specs/sheet2_rspec.rb +20 -0
  24. data/examples/ruby-versions/pruning-ruby/specs/sheet3_rspec.rb +8 -0
  25. data/examples/ruby-versions/pruning-ruby/spreadsheet.rb +9 -0
  26. data/examples/ruby-versions/sharedFormulaTest-ruby/sheets/sheet1.rb +15 -0
  27. data/examples/ruby-versions/sharedFormulaTest-ruby/specs/sheet1_rspec.rb +44 -0
  28. data/examples/ruby-versions/sharedFormulaTest-ruby/spreadsheet.rb +9 -0
  29. data/examples/ruby-versions/table-test-ruby/sheets/sheet1.rb +17 -0
  30. data/examples/ruby-versions/table-test-ruby/sheets/sheet2.rb +5 -0
  31. data/examples/ruby-versions/table-test-ruby/sheets/sheet3.rb +5 -0
  32. data/examples/ruby-versions/table-test-ruby/specs/sheet1_rspec.rb +20 -0
  33. data/examples/ruby-versions/table-test-ruby/specs/sheet2_rspec.rb +8 -0
  34. data/examples/ruby-versions/table-test-ruby/specs/sheet3_rspec.rb +8 -0
  35. data/examples/ruby-versions/table-test-ruby/spreadsheet.rb +9 -0
  36. data/examples/sheets/array-formulas.xlsx +0 -0
  37. data/examples/sheets/complex-test.xlsx +0 -0
  38. data/examples/sheets/namedReferenceTest.xlsx +0 -0
  39. data/examples/sheets/pruning.xlsx +0 -0
  40. data/examples/sheets/sharedFormulaTest.xlsx +0 -0
  41. data/examples/sheets/table-test.xlsx +0 -0
  42. data/examples/sheets/~$array-formulas.xlsx +0 -0
  43. data/examples/unzipped-sheets/array-formulas/[Content_Types].xml +2 -0
  44. data/examples/unzipped-sheets/array-formulas/docProps/app.xml +2 -0
  45. data/examples/unzipped-sheets/array-formulas/docProps/core.xml +2 -0
  46. data/examples/unzipped-sheets/array-formulas/docProps/thumbnail.jpeg +0 -0
  47. data/examples/unzipped-sheets/array-formulas/xl/_rels/workbook.xml.rels +2 -0
  48. data/examples/unzipped-sheets/array-formulas/xl/calcChain.xml +2 -0
  49. data/examples/unzipped-sheets/array-formulas/xl/sharedStrings.xml +2 -0
  50. data/examples/unzipped-sheets/array-formulas/xl/styles.xml +2 -0
  51. data/examples/unzipped-sheets/array-formulas/xl/theme/theme1.xml +2 -0
  52. data/examples/unzipped-sheets/array-formulas/xl/workbook.xml +2 -0
  53. data/examples/unzipped-sheets/array-formulas/xl/worksheets/sheet1.xml +2 -0
  54. data/examples/unzipped-sheets/array-formulas/xl/worksheets/sheet2.xml +2 -0
  55. data/examples/unzipped-sheets/complex-test/[Content_Types].xml +2 -0
  56. data/examples/unzipped-sheets/complex-test/docProps/app.xml +2 -0
  57. data/examples/unzipped-sheets/complex-test/docProps/core.xml +2 -0
  58. data/examples/unzipped-sheets/complex-test/xl/_rels/workbook.xml.rels +2 -0
  59. data/examples/unzipped-sheets/complex-test/xl/calcChain.xml +2 -0
  60. data/examples/unzipped-sheets/complex-test/xl/charts/chart1.xml +2 -0
  61. data/examples/unzipped-sheets/complex-test/xl/charts/chart2.xml +2 -0
  62. data/examples/unzipped-sheets/complex-test/xl/comments1.xml +5 -0
  63. data/examples/unzipped-sheets/complex-test/xl/comments2.xml +5 -0
  64. data/examples/unzipped-sheets/complex-test/xl/drawings/_rels/drawing1.xml.rels +2 -0
  65. data/examples/unzipped-sheets/complex-test/xl/drawings/_rels/drawing2.xml.rels +2 -0
  66. data/examples/unzipped-sheets/complex-test/xl/drawings/drawing1.xml +2 -0
  67. data/examples/unzipped-sheets/complex-test/xl/drawings/drawing2.xml +2 -0
  68. data/examples/unzipped-sheets/complex-test/xl/drawings/vmlDrawing1.vml +46 -0
  69. data/examples/unzipped-sheets/complex-test/xl/drawings/vmlDrawing2.vml +46 -0
  70. data/examples/unzipped-sheets/complex-test/xl/sharedStrings.xml +2 -0
  71. data/examples/unzipped-sheets/complex-test/xl/styles.xml +2 -0
  72. data/examples/unzipped-sheets/complex-test/xl/theme/theme1.xml +2 -0
  73. data/examples/unzipped-sheets/complex-test/xl/workbook.xml +2 -0
  74. data/examples/unzipped-sheets/complex-test/xl/worksheets/_rels/sheet1.xml.rels +2 -0
  75. data/examples/unzipped-sheets/complex-test/xl/worksheets/_rels/sheet2.xml.rels +2 -0
  76. data/examples/unzipped-sheets/complex-test/xl/worksheets/sheet1.xml +2 -0
  77. data/examples/unzipped-sheets/complex-test/xl/worksheets/sheet2.xml +2 -0
  78. data/examples/unzipped-sheets/namedReferenceTest/[Content_Types].xml +2 -0
  79. data/examples/unzipped-sheets/namedReferenceTest/docProps/app.xml +2 -0
  80. data/examples/unzipped-sheets/namedReferenceTest/docProps/core.xml +2 -0
  81. data/examples/unzipped-sheets/namedReferenceTest/docProps/thumbnail.jpeg +0 -0
  82. data/examples/unzipped-sheets/namedReferenceTest/xl/_rels/workbook.xml.rels +2 -0
  83. data/examples/unzipped-sheets/namedReferenceTest/xl/calcChain.xml +2 -0
  84. data/examples/unzipped-sheets/namedReferenceTest/xl/styles.xml +2 -0
  85. data/examples/unzipped-sheets/namedReferenceTest/xl/theme/theme1.xml +2 -0
  86. data/examples/unzipped-sheets/namedReferenceTest/xl/workbook.xml +2 -0
  87. data/examples/unzipped-sheets/namedReferenceTest/xl/worksheets/sheet1.xml +2 -0
  88. data/examples/unzipped-sheets/namedReferenceTest/xl/worksheets/sheet2.xml +2 -0
  89. data/examples/unzipped-sheets/pruning/[Content_Types].xml +2 -0
  90. data/examples/unzipped-sheets/pruning/docProps/app.xml +2 -0
  91. data/examples/unzipped-sheets/pruning/docProps/core.xml +2 -0
  92. data/examples/unzipped-sheets/pruning/docProps/thumbnail.jpeg +0 -0
  93. data/examples/unzipped-sheets/pruning/xl/_rels/workbook.xml.rels +2 -0
  94. data/examples/unzipped-sheets/pruning/xl/calcChain.xml +2 -0
  95. data/examples/unzipped-sheets/pruning/xl/sharedStrings.xml +2 -0
  96. data/examples/unzipped-sheets/pruning/xl/styles.xml +2 -0
  97. data/examples/unzipped-sheets/pruning/xl/theme/theme1.xml +2 -0
  98. data/examples/unzipped-sheets/pruning/xl/workbook.xml +2 -0
  99. data/examples/unzipped-sheets/pruning/xl/worksheets/sheet1.xml +2 -0
  100. data/examples/unzipped-sheets/pruning/xl/worksheets/sheet2.xml +2 -0
  101. data/examples/unzipped-sheets/pruning/xl/worksheets/sheet3.xml +2 -0
  102. data/examples/unzipped-sheets/sharedFormulaTest/[Content_Types].xml +2 -0
  103. data/examples/unzipped-sheets/sharedFormulaTest/docProps/app.xml +2 -0
  104. data/examples/unzipped-sheets/sharedFormulaTest/docProps/core.xml +2 -0
  105. data/examples/unzipped-sheets/sharedFormulaTest/docProps/thumbnail.jpeg +0 -0
  106. data/examples/unzipped-sheets/sharedFormulaTest/xl/_rels/workbook.xml.rels +2 -0
  107. data/examples/unzipped-sheets/sharedFormulaTest/xl/calcChain.xml +2 -0
  108. data/examples/unzipped-sheets/sharedFormulaTest/xl/styles.xml +2 -0
  109. data/examples/unzipped-sheets/sharedFormulaTest/xl/theme/theme1.xml +2 -0
  110. data/examples/unzipped-sheets/sharedFormulaTest/xl/workbook.xml +2 -0
  111. data/examples/unzipped-sheets/sharedFormulaTest/xl/worksheets/sheet1.xml +2 -0
  112. data/examples/unzipped-sheets/table-test/[Content_Types].xml +2 -0
  113. data/examples/unzipped-sheets/table-test/docProps/app.xml +2 -0
  114. data/examples/unzipped-sheets/table-test/docProps/core.xml +2 -0
  115. data/examples/unzipped-sheets/table-test/xl/_rels/workbook.xml.rels +2 -0
  116. data/examples/unzipped-sheets/table-test/xl/calcChain.xml +2 -0
  117. data/examples/unzipped-sheets/table-test/xl/printerSettings/printerSettings1.bin +0 -0
  118. data/examples/unzipped-sheets/table-test/xl/sharedStrings.xml +2 -0
  119. data/examples/unzipped-sheets/table-test/xl/styles.xml +2 -0
  120. data/examples/unzipped-sheets/table-test/xl/tables/table1.xml +2 -0
  121. data/examples/unzipped-sheets/table-test/xl/theme/theme1.xml +2 -0
  122. data/examples/unzipped-sheets/table-test/xl/workbook.xml +2 -0
  123. data/examples/unzipped-sheets/table-test/xl/worksheets/_rels/sheet1.xml.rels +2 -0
  124. data/examples/unzipped-sheets/table-test/xl/worksheets/sheet1.xml +2 -0
  125. data/examples/unzipped-sheets/table-test/xl/worksheets/sheet2.xml +2 -0
  126. data/examples/unzipped-sheets/table-test/xl/worksheets/sheet3.xml +2 -0
  127. data/lib/cells/array/array_formula_builder.rb +58 -0
  128. data/lib/cells/array/array_formula_cell.rb +27 -0
  129. data/lib/cells/array/arraying_formula_cell.rb +67 -0
  130. data/lib/cells/array/single_cell_array_formula_builder.rb +9 -0
  131. data/lib/cells/array/single_cell_array_formula_cell.rb +11 -0
  132. data/lib/cells/cell.rb +98 -0
  133. data/lib/cells/cells.rb +9 -0
  134. data/lib/cells/formula/formula_cell.rb +18 -0
  135. data/lib/cells/formula/simple_formula_cell.rb +4 -0
  136. data/lib/cells/shared/shared_formula_builder.rb +15 -0
  137. data/lib/cells/shared/shared_formula_cell.rb +20 -0
  138. data/lib/cells/shared/sharing_formula_cell.rb +36 -0
  139. data/lib/cells/value/value_cell.rb +24 -0
  140. data/lib/excelfile/excelfile.rb +6 -0
  141. data/lib/excelfile/relationships.rb +24 -0
  142. data/lib/excelfile/shared_strings.rb +21 -0
  143. data/lib/excelfile/sheet_names.rb +6 -0
  144. data/lib/excelfile/table.rb +116 -0
  145. data/lib/excelfile/workbook.rb +108 -0
  146. data/lib/excelfile/worksheet.rb +122 -0
  147. data/lib/formulae/compile/formula_builder.rb +316 -0
  148. data/lib/formulae/formulae.rb +6 -0
  149. data/lib/formulae/parse/formula_peg.rb +213 -0
  150. data/lib/formulae/parse/formula_peg.txt +40 -0
  151. data/lib/formulae/run/excel_functions.rb +375 -0
  152. data/lib/formulae/run/excel_matrix.rb +114 -0
  153. data/lib/formulae/run/excel_range.rb +256 -0
  154. data/lib/formulae/run/reference.rb +79 -0
  155. data/lib/optimiser/dependency_builder.rb +86 -0
  156. data/lib/optimiser/optimiser.rb +3 -0
  157. data/lib/optimiser/shared_formula_dependency_builder.rb +43 -0
  158. data/lib/optimiser/workbook_pruner.rb +80 -0
  159. data/lib/rubyfromexcel.rb +105 -0
  160. data/lib/runtime/runtime_formula_builder.rb +32 -0
  161. data/spec/array_formula_builder_spec.rb +35 -0
  162. data/spec/array_formula_cell_spec.rb +17 -0
  163. data/spec/arraying_formula_cell_spec.rb +38 -0
  164. data/spec/dependency_builder_spec.rb +71 -0
  165. data/spec/excel_functions_spec.rb +381 -0
  166. data/spec/excel_matrix_spec.rb +92 -0
  167. data/spec/excel_range_spec.rb +161 -0
  168. data/spec/formula_builder_spec.rb +230 -0
  169. data/spec/formula_peg_spec.rb +165 -0
  170. data/spec/reference_spec.rb +72 -0
  171. data/spec/relationships_spec.rb +51 -0
  172. data/spec/runtime_formula_builder_spec.rb +55 -0
  173. data/spec/shared_formula_builder_spec.rb +29 -0
  174. data/spec/shared_formula_cell_spec.rb +23 -0
  175. data/spec/shared_formula_dependency_builder_spec.rb +48 -0
  176. data/spec/shared_strings_spec.rb +14 -0
  177. data/spec/sharing_formula_cell_spec.rb +79 -0
  178. data/spec/simple_formula_cell_spec.rb +78 -0
  179. data/spec/single_cell_array_formula_builder_spec.rb +19 -0
  180. data/spec/single_cell_array_formula_cell_spec.rb +25 -0
  181. data/spec/spec_helper.rb +2 -0
  182. data/spec/table_spec.rb +100 -0
  183. data/spec/value_cell_spec.rb +49 -0
  184. data/spec/workbook_pruner_spec.rb +27 -0
  185. data/spec/workbook_spec.rb +283 -0
  186. data/spec/worksheet_failiures_spec.rb +41 -0
  187. data/spec/worksheet_spec.rb +486 -0
  188. metadata +291 -0
@@ -0,0 +1,147 @@
1
+ # coding: utf-8
2
+ # OLD UK
3
+ class Sheet2 < Spreadsheet
4
+ def b2; "UK - Possible phase III auction revenues"; end
5
+ def b4; "Emissions"; end
6
+ def c4; 2013.0; end
7
+ def d4; 2014.0; end
8
+ def e4; 2015.0; end
9
+ def f4; 2016.0; end
10
+ def g4; 2017.0; end
11
+ def h4; 2018.0; end
12
+ def i4; 2019.0; end
13
+ def j4; 2020.0; end
14
+ def l4; "Change"; end
15
+ def b5; "Power sector"; end
16
+ def c5; 163.25; end
17
+ def d5; @d5 ||= c5*(1.0-l5); end
18
+ def e5; @e5 ||= d5*(1.0-l5); end
19
+ def f5; @f5 ||= e5*(1.0-l5); end
20
+ def g5; @g5 ||= f5*(1.0-l5); end
21
+ def h5; @h5 ||= g5*(1.0-l5); end
22
+ def i5; @i5 ||= h5*(1.0-l5); end
23
+ def j5; @j5 ||= i5*(1.0-l5); end
24
+ def k5; "mtCO2"; end
25
+ def l5; 0.0174; end
26
+ def b6; "Other"; end
27
+ def c6; @c6 ||= c7-c5; end
28
+ def d6; @d6 ||= d7-d5; end
29
+ def e6; @e6 ||= e7-e5; end
30
+ def f6; @f6 ||= f7-f5; end
31
+ def g6; @g6 ||= g7-g5; end
32
+ def h6; @h6 ||= h7-h5; end
33
+ def i6; @i6 ||= i7-i5; end
34
+ def j6; @j6 ||= j7-j5; end
35
+ def k6; "mtCO3"; end
36
+ def l6; @l6 ||= -((j6/c6)**(1.0/(j4-c4))-1.0); end
37
+ def b7; "Total"; end
38
+ def c7; @c7 ||= 278.35*(1.0+average(0.066,0.071)); end
39
+ def d7; @d7 ||= c7*(1.0-l7); end
40
+ def e7; @e7 ||= d7*(1.0-l7); end
41
+ def f7; @f7 ||= e7*(1.0-l7); end
42
+ def g7; @g7 ||= f7*(1.0-l7); end
43
+ def h7; @h7 ||= g7*(1.0-l7); end
44
+ def i7; @i7 ||= h7*(1.0-l7); end
45
+ def j7; @j7 ||= i7*(1.0-l7); end
46
+ def k7; "mtCO4"; end
47
+ def l7; 0.0174; end
48
+ def b9; "Proportion auctioned"; end
49
+ def c9; @c9 ||= c4; end
50
+ def d9; @d9 ||= d4; end
51
+ def e9; @e9 ||= e4; end
52
+ def f9; @f9 ||= f4; end
53
+ def g9; @g9 ||= g4; end
54
+ def h9; @h9 ||= h4; end
55
+ def i9; @i9 ||= i4; end
56
+ def j9; @j9 ||= j4; end
57
+ def b10; "Power sector"; end
58
+ def c10; 1.0; end
59
+ def d10; @d10 ||= c10; end
60
+ def e10; @e10 ||= d10; end
61
+ def f10; @f10 ||= e10; end
62
+ def g10; @g10 ||= f10; end
63
+ def h10; @h10 ||= g10; end
64
+ def i10; @i10 ||= h10; end
65
+ def j10; @j10 ||= i10; end
66
+ def k10; "%"; end
67
+ def b11; "Other"; end
68
+ def c11; 0.2; end
69
+ def d11; @d11 ||= c11+l11; end
70
+ def e11; @e11 ||= d11+l11; end
71
+ def f11; @f11 ||= e11+l11; end
72
+ def g11; @g11 ||= f11+l11; end
73
+ def h11; @h11 ||= g11+l11; end
74
+ def i11; @i11 ||= h11+l11; end
75
+ def j11; 1.0; end
76
+ def k11; "%"; end
77
+ def l11; @l11 ||= (j11-c11)/(j9-c9); end
78
+ def b12; "Total"; end
79
+ def c12; @c12 ||= ((c10*c5)+(c11*c6))/c7; end
80
+ def d12; @d12 ||= ((d10*d5)+(d11*d6))/d7; end
81
+ def e12; @e12 ||= ((e10*e5)+(e11*e6))/e7; end
82
+ def f12; @f12 ||= ((f10*f5)+(f11*f6))/f7; end
83
+ def g12; @g12 ||= ((g10*g5)+(g11*g6))/g7; end
84
+ def h12; @h12 ||= ((h10*h5)+(h11*h6))/h7; end
85
+ def i12; @i12 ||= ((i10*i5)+(i11*i6))/i7; end
86
+ def j12; @j12 ||= ((j10*j5)+(j11*j6))/j7; end
87
+ def k12; "%"; end
88
+ def c14; @c14 ||= c9; end
89
+ def d14; @d14 ||= d9; end
90
+ def e14; @e14 ||= e9; end
91
+ def f14; @f14 ||= f9; end
92
+ def g14; @g14 ||= g9; end
93
+ def h14; @h14 ||= h9; end
94
+ def i14; @i14 ||= i9; end
95
+ def j14; @j14 ||= j9; end
96
+ def b15; "CO2 price"; end
97
+ def c15; 20.0; end
98
+ def d15; @d15 ||= c15; end
99
+ def e15; @e15 ||= d15; end
100
+ def f15; @f15 ||= e15; end
101
+ def g15; @g15 ||= f15; end
102
+ def h15; @h15 ||= g15; end
103
+ def i15; @i15 ||= h15; end
104
+ def j15; @j15 ||= i15; end
105
+ def k15; "€/tCO2"; end
106
+ def b17; "Auction revenues"; end
107
+ def c17; @c17 ||= c9; end
108
+ def d17; @d17 ||= d9; end
109
+ def e17; @e17 ||= e9; end
110
+ def f17; @f17 ||= f9; end
111
+ def g17; @g17 ||= g9; end
112
+ def h17; @h17 ||= h9; end
113
+ def i17; @i17 ||= i9; end
114
+ def j17; @j17 ||= j9; end
115
+ def b18; "Power sector"; end
116
+ def c18; @c18 ||= c10*c5*c15/1000.0; end
117
+ def d18; @d18 ||= d10*d5*d15/1000.0; end
118
+ def e18; @e18 ||= e10*e5*e15/1000.0; end
119
+ def f18; @f18 ||= f10*f5*f15/1000.0; end
120
+ def g18; @g18 ||= g10*g5*g15/1000.0; end
121
+ def h18; @h18 ||= h10*h5*h15/1000.0; end
122
+ def i18; @i18 ||= i10*i5*i15/1000.0; end
123
+ def j18; @j18 ||= j10*j5*j15/1000.0; end
124
+ def k18; "€bn"; end
125
+ def b19; "Other"; end
126
+ def c19; @c19 ||= c11*c6*c15/1000.0; end
127
+ def d19; @d19 ||= d11*d6*d15/1000.0; end
128
+ def e19; @e19 ||= e11*e6*e15/1000.0; end
129
+ def f19; @f19 ||= f11*f6*f15/1000.0; end
130
+ def g19; @g19 ||= g11*g6*g15/1000.0; end
131
+ def h19; @h19 ||= h11*h6*h15/1000.0; end
132
+ def i19; @i19 ||= i11*i6*i15/1000.0; end
133
+ def j19; @j19 ||= j11*j6*j15/1000.0; end
134
+ def k19; "€bn"; end
135
+ def b20; "Total"; end
136
+ def c20; @c20 ||= c12*c7*c15/1000.0; end
137
+ def d20; @d20 ||= d12*d7*d15/1000.0; end
138
+ def e20; @e20 ||= e12*e7*e15/1000.0; end
139
+ def f20; @f20 ||= f12*f7*f15/1000.0; end
140
+ def g20; @g20 ||= g12*g7*g15/1000.0; end
141
+ def h20; @h20 ||= h12*h7*h15/1000.0; end
142
+ def i20; @i20 ||= i12*i7*i15/1000.0; end
143
+ def j20; @j20 ||= j12*j7*j15/1000.0; end
144
+ def k20; "€bn"; end
145
+ def k22; " "; end
146
+ end
147
+