rubyfromexcel 0.0.4

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