excel_to_code 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/README +41 -0
  2. data/bin/excel_to_c +63 -0
  3. data/bin/excel_to_ruby +9 -0
  4. data/src/commands.rb +2 -0
  5. data/src/commands/excel_to_c.rb +858 -0
  6. data/src/commands/excel_to_ruby.rb +620 -0
  7. data/src/compile.rb +2 -0
  8. data/src/compile/c.rb +5 -0
  9. data/src/compile/c/compile_to_c.rb +62 -0
  10. data/src/compile/c/compile_to_c_header.rb +26 -0
  11. data/src/compile/c/compile_to_c_unit_test.rb +42 -0
  12. data/src/compile/c/excel_to_c_runtime.c +2029 -0
  13. data/src/compile/c/map_formulae_to_c.rb +184 -0
  14. data/src/compile/c/map_sheet_names_to_c_names.rb +19 -0
  15. data/src/compile/c/map_values_to_c.rb +85 -0
  16. data/src/compile/c/map_values_to_c_structs.rb +37 -0
  17. data/src/compile/ruby.rb +3 -0
  18. data/src/compile/ruby/compile_to_ruby.rb +33 -0
  19. data/src/compile/ruby/compile_to_ruby_unit_test.rb +28 -0
  20. data/src/compile/ruby/excel_to_ruby_runtime.rb +1 -0
  21. data/src/compile/ruby/map_formulae_to_ruby.rb +95 -0
  22. data/src/compile/ruby/map_sheet_names_to_ruby_names.rb +19 -0
  23. data/src/compile/ruby/map_values_to_ruby.rb +65 -0
  24. data/src/excel.rb +5 -0
  25. data/src/excel/area.rb +93 -0
  26. data/src/excel/excel_functions.rb +84 -0
  27. data/src/excel/excel_functions/abs.rb +14 -0
  28. data/src/excel/excel_functions/add.rb +18 -0
  29. data/src/excel/excel_functions/and.rb +30 -0
  30. data/src/excel/excel_functions/apply_to_range.rb +17 -0
  31. data/src/excel/excel_functions/average.rb +12 -0
  32. data/src/excel/excel_functions/choose.rb +18 -0
  33. data/src/excel/excel_functions/cosh.rb +9 -0
  34. data/src/excel/excel_functions/count.rb +9 -0
  35. data/src/excel/excel_functions/counta.rb +8 -0
  36. data/src/excel/excel_functions/divide.rb +23 -0
  37. data/src/excel/excel_functions/excel_equal.rb +20 -0
  38. data/src/excel/excel_functions/excel_if.rb +8 -0
  39. data/src/excel/excel_functions/excel_match.rb +51 -0
  40. data/src/excel/excel_functions/find.rb +39 -0
  41. data/src/excel/excel_functions/iferror.rb +10 -0
  42. data/src/excel/excel_functions/index.rb +48 -0
  43. data/src/excel/excel_functions/left.rb +12 -0
  44. data/src/excel/excel_functions/less_than.rb +26 -0
  45. data/src/excel/excel_functions/less_than_or_equal.rb +26 -0
  46. data/src/excel/excel_functions/max.rb +12 -0
  47. data/src/excel/excel_functions/min.rb +12 -0
  48. data/src/excel/excel_functions/mod.rb +15 -0
  49. data/src/excel/excel_functions/more_than.rb +26 -0
  50. data/src/excel/excel_functions/more_than_or_equal.rb +26 -0
  51. data/src/excel/excel_functions/multiply.rb +24 -0
  52. data/src/excel/excel_functions/negative.rb +12 -0
  53. data/src/excel/excel_functions/not_equal.rb +19 -0
  54. data/src/excel/excel_functions/number_argument.rb +30 -0
  55. data/src/excel/excel_functions/pi.rb +7 -0
  56. data/src/excel/excel_functions/pmt.rb +16 -0
  57. data/src/excel/excel_functions/power.rb +18 -0
  58. data/src/excel/excel_functions/round.rb +13 -0
  59. data/src/excel/excel_functions/rounddown.rb +14 -0
  60. data/src/excel/excel_functions/roundup.rb +17 -0
  61. data/src/excel/excel_functions/string_join.rb +19 -0
  62. data/src/excel/excel_functions/subtotal.rb +13 -0
  63. data/src/excel/excel_functions/subtract.rb +18 -0
  64. data/src/excel/excel_functions/sum.rb +8 -0
  65. data/src/excel/excel_functions/sumif.rb +7 -0
  66. data/src/excel/excel_functions/sumifs.rb +74 -0
  67. data/src/excel/excel_functions/sumproduct.rb +32 -0
  68. data/src/excel/excel_functions/vlookup.rb +49 -0
  69. data/src/excel/formula_peg.rb +238 -0
  70. data/src/excel/formula_peg.txt +45 -0
  71. data/src/excel/reference.rb +56 -0
  72. data/src/excel/table.rb +108 -0
  73. data/src/excel_to_code.rb +7 -0
  74. data/src/extract.rb +13 -0
  75. data/src/extract/check_for_unknown_functions.rb +20 -0
  76. data/src/extract/extract_array_formulae.rb +23 -0
  77. data/src/extract/extract_formulae.rb +36 -0
  78. data/src/extract/extract_named_references.rb +38 -0
  79. data/src/extract/extract_relationships.rb +10 -0
  80. data/src/extract/extract_shared_formulae.rb +23 -0
  81. data/src/extract/extract_shared_strings.rb +20 -0
  82. data/src/extract/extract_simple_formulae.rb +18 -0
  83. data/src/extract/extract_table.rb +24 -0
  84. data/src/extract/extract_values.rb +29 -0
  85. data/src/extract/extract_worksheet_dimensions.rb +11 -0
  86. data/src/extract/extract_worksheet_names.rb +10 -0
  87. data/src/extract/extract_worksheet_table_relationships.rb +10 -0
  88. data/src/extract/simple_extract_from_xml.rb +19 -0
  89. data/src/rewrite.rb +10 -0
  90. data/src/rewrite/ast_copy_formula.rb +42 -0
  91. data/src/rewrite/ast_expand_array_formulae.rb +180 -0
  92. data/src/rewrite/rewrite_array_formulae.rb +71 -0
  93. data/src/rewrite/rewrite_array_formulae_to_arrays.rb +18 -0
  94. data/src/rewrite/rewrite_cell_references_to_include_sheet.rb +56 -0
  95. data/src/rewrite/rewrite_formulae_to_ast.rb +24 -0
  96. data/src/rewrite/rewrite_merge_formulae_and_values.rb +18 -0
  97. data/src/rewrite/rewrite_relationship_id_to_filename.rb +22 -0
  98. data/src/rewrite/rewrite_shared_formulae.rb +38 -0
  99. data/src/rewrite/rewrite_values_to_ast.rb +28 -0
  100. data/src/rewrite/rewrite_whole_row_column_references_to_areas.rb +90 -0
  101. data/src/rewrite/rewrite_worksheet_names.rb +20 -0
  102. data/src/simplify.rb +16 -0
  103. data/src/simplify/count_formula_references.rb +58 -0
  104. data/src/simplify/identify_dependencies.rb +56 -0
  105. data/src/simplify/identify_repeated_formula_elements.rb +37 -0
  106. data/src/simplify/inline_formulae.rb +77 -0
  107. data/src/simplify/map_formulae_to_values.rb +157 -0
  108. data/src/simplify/remove_cells.rb +18 -0
  109. data/src/simplify/replace_arrays_with_single_cells.rb +27 -0
  110. data/src/simplify/replace_blanks.rb +58 -0
  111. data/src/simplify/replace_common_elements_in_formulae.rb +19 -0
  112. data/src/simplify/replace_formulae_with_calculated_values.rb +21 -0
  113. data/src/simplify/replace_indirects_with_references.rb +44 -0
  114. data/src/simplify/replace_named_references.rb +82 -0
  115. data/src/simplify/replace_ranges_with_array_literals.rb +54 -0
  116. data/src/simplify/replace_shared_strings.rb +49 -0
  117. data/src/simplify/replace_table_references.rb +71 -0
  118. data/src/simplify/replace_values_with_constants.rb +47 -0
  119. data/src/simplify/simplify_arithmetic.rb +54 -0
  120. data/src/util.rb +2 -0
  121. data/src/util/not_supported_exception.rb +2 -0
  122. data/src/util/try.rb +9 -0
  123. metadata +207 -0
@@ -0,0 +1,49 @@
1
+ class ReplaceSharedStringAst
2
+
3
+ attr_accessor :shared_strings
4
+
5
+ def initialize(shared_strings)
6
+ @shared_strings = shared_strings.map do |s|
7
+ s[/^(.*?)\n$/,1]
8
+ end
9
+ end
10
+
11
+ def map(ast)
12
+ if ast.is_a?(Array)
13
+ operator = ast.shift
14
+ if respond_to?(operator)
15
+ send(operator,*ast)
16
+ else
17
+ [operator,*ast.map {|a| map(a) }]
18
+ end
19
+ else
20
+ return ast
21
+ end
22
+ end
23
+
24
+ def shared_string(string_id)
25
+ [:string,shared_strings[string_id.to_i]]
26
+ end
27
+ end
28
+
29
+
30
+ class ReplaceSharedStrings
31
+
32
+ def self.replace(values,shared_strings,output)
33
+ self.new.replace(values,shared_strings,output)
34
+ end
35
+
36
+ # Rewrites ast with shared strings to strings
37
+ def replace(values,shared_strings,output)
38
+ rewriter = ReplaceSharedStringAst.new(shared_strings.readlines)
39
+ values.lines do |line|
40
+ # Looks to match shared string lines
41
+ if line =~ /\[:shared_string/
42
+ ref, ast = line.split("\t")
43
+ output.puts "#{ref}\t#{rewriter.map(eval(ast)).inspect}"
44
+ else
45
+ output.puts line
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,71 @@
1
+ class ReplaceTableReferenceAst
2
+
3
+ attr_accessor :tables, :worksheet, :referring_cell
4
+
5
+ def initialize(tables, worksheet = nil, referring_cell = nil)
6
+ @tables, @worksheet, @referring_cell = tables, worksheet, referring_cell
7
+ end
8
+
9
+ def map(ast)
10
+ return ast unless ast.is_a?(Array)
11
+ operator = ast[0]
12
+ if respond_to?(operator)
13
+ send(operator,*ast[1..-1])
14
+ else
15
+ [operator,*ast[1..-1].map {|a| map(a) }]
16
+ end
17
+ end
18
+
19
+ def table_reference(table_name,table_reference)
20
+ return [:error,"#REF!"] unless tables.has_key?(table_name.downcase)
21
+ tables[table_name.downcase].reference_for(table_name,table_reference,worksheet,referring_cell)
22
+ end
23
+
24
+ def local_table_reference(table_reference)
25
+ table = tables.values.find do |table|
26
+ table.includes?(worksheet,referring_cell)
27
+ end
28
+ return [:error,"#REF!"] unless table
29
+ table.reference_for(table.name,table_reference,worksheet,referring_cell)
30
+ end
31
+
32
+ end
33
+
34
+
35
+ class ReplaceTableReferences
36
+
37
+ attr_accessor :sheet_name
38
+
39
+ def self.replace(*args)
40
+ self.new.replace(*args)
41
+ end
42
+
43
+ def replace(input,table_data,output)
44
+ tables = {}
45
+ table_data.each do |line|
46
+ table = Table.new(*line.strip.split("\t"))
47
+ tables[table.name.downcase] = table
48
+ end
49
+
50
+ rewriter = ReplaceTableReferenceAst.new(tables,sheet_name)
51
+
52
+ input.lines do |line|
53
+ # Looks to match shared string lines
54
+ begin
55
+ if line =~ /\[(:table_reference|:local_table_reference)/
56
+ cols = line.split("\t")
57
+ ast = cols.pop
58
+ ref = cols.first
59
+ rewriter.referring_cell = ref
60
+ output.puts "#{cols.join("\t")}\t#{rewriter.map(eval(ast)).inspect}"
61
+ else
62
+ output.puts line
63
+ end
64
+ rescue Exception => e
65
+ puts "Exception at line #{line}"
66
+ raise
67
+ end
68
+ end
69
+ end
70
+
71
+ end
@@ -0,0 +1,47 @@
1
+ class MapValuesToConstants
2
+
3
+ attr_accessor :constants
4
+
5
+ def initialize
6
+ count = 0
7
+ @constants = Hash.new do |hash,key|
8
+ count += 1
9
+ hash[key] = "C#{count}"
10
+ end
11
+ end
12
+
13
+ def map(ast)
14
+ return ast unless ast.is_a?(Array)
15
+ operator = ast[0]
16
+ if [:number,:percentage,:string].include?(operator)
17
+ [:constant, constants[ast]]
18
+ else
19
+ [operator,*ast[1..-1].map {|a| map(a) }]
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+
26
+ class ReplaceValuesWithConstants
27
+
28
+ attr_accessor :rewriter
29
+
30
+ def self.replace(*args)
31
+ self.new.replace(*args)
32
+ end
33
+
34
+ def replace(input,output)
35
+ @rewriter ||= MapValuesToConstants.new
36
+ input.lines do |line|
37
+ begin
38
+ ref, ast = line.split("\t")
39
+ output.puts "#{ref}\t#{rewriter.map(eval(ast)).inspect}"
40
+ rescue Exception => e
41
+ puts "Exception at line #{line}"
42
+ raise
43
+ end
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,54 @@
1
+ class SimplifyArithmeticAst
2
+
3
+ def map(ast)
4
+ return ast unless ast.is_a?(Array)
5
+ operator = ast[0]
6
+ if respond_to?(operator)
7
+ send(operator,*ast[1..-1])
8
+ else
9
+ [operator,*ast[1..-1].map {|a| map(a) }]
10
+ end
11
+ end
12
+
13
+ def brackets(*args)
14
+ raise NotSupportedException.new("Multiple arguments not supported in brackets #{args.inspect}") if args.size > 1
15
+ map(args.first)
16
+ end
17
+
18
+ def arithmetic(*args)
19
+ return map(args.first) if args.size == 1
20
+ return [:arithmetic,*args.map {|a| map(a) }] if args.size == 3
21
+ [['^'],['*','/'],['+','-']].each do |op|
22
+ i = args.find_index { |a| a[0] == :operator && op.include?(a[1])}
23
+ next unless i
24
+ pre_operation = i == 1 ? [] : args[0..(i-2)]
25
+ operation = args[(i-1)..(i+1)]
26
+ post_operation = (i + 2) > args.size ? [] : args[(i+2)..-1]
27
+ return arithmetic(*pre_operation.map {|a| map(a) },[:arithmetic,*operation],*post_operation.map {|a| map(a) })
28
+ end
29
+ return [:arithmetic,*args.map {|a| map(a) }]
30
+ end
31
+
32
+ end
33
+
34
+
35
+ class SimplifyArithmetic
36
+
37
+ def self.replace(*args)
38
+ self.new.replace(*args)
39
+ end
40
+
41
+ def replace(input,output)
42
+ rewriter = SimplifyArithmeticAst.new
43
+ input.lines do |line|
44
+ # Looks to match lines with references
45
+ if line =~ /:arithmetic/
46
+ content = line.split("\t")
47
+ ast = eval(content.pop)
48
+ output.puts "#{content.join("\t")}\t#{rewriter.map(ast).inspect}"
49
+ else
50
+ output.puts line
51
+ end
52
+ end
53
+ end
54
+ end
data/src/util.rb ADDED
@@ -0,0 +1,2 @@
1
+ require_relative "util/not_supported_exception"
2
+ require_relative "util/try"
@@ -0,0 +1,2 @@
1
+ class NotSupportedException < Exception
2
+ end
data/src/util/try.rb ADDED
@@ -0,0 +1,9 @@
1
+ class Object
2
+ ##
3
+ # @person ? @person.name : nil
4
+ # vs
5
+ # @person.try(:name)
6
+ def try(method)
7
+ send method if respond_to? method
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,207 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: excel_to_code
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Thomas Counsell, Green on Black Ltd
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: &70298839691560 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.5.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70298839691560
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70298839691040 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.7.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70298839691040
36
+ description: ! "# excel_to_code\n\nConverts some excel spreadsheets (.xlsx, not .xls)
37
+ into some other programming languages (currently ruby or c).\nThis allows the excel
38
+ spreadsheets to be run programatically, without excel.\n\nIts cannonical source
39
+ is at http://github.com/tamc/excel2code\n\n# Running excel_to_code\n\nTo just have
40
+ a go:\n\n\t./bin/excel_to_c <excel_file_name>\n\t\nNB:For small spreadsheets this
41
+ will take a minute or so. For large spreadsheets it is best to run it overnight.\n\t\nfor
42
+ more detail:\n\t\n\t./bin/excel_to_c --compile --run-tests --settable <name of input
43
+ worksheet> --prune-except <name of output worksheet> <excel file name> \n\t\nthis
44
+ should work:\n\n\t./bin/excel_to_c --help\n\n# Testing excel_to_code\n\n1. Make
45
+ sure you have ruby 1.9.2 or later installed\n2. gem install bundler # May need to
46
+ use sudo\n3. bundle\n4. rspec spec/*\n\n# Hacking excel_to_code\n\nThere are some
47
+ how to guides in the doc folder. \n\n# Limitations\n\n1. Not tested at all on Windows\n2.
48
+ INDIRECT formula must be convertable at runtime into a standard formula\n3. Doesn't
49
+ implement all functions (see doc/Which_functions_are_implemented.md)\n4. Doesn't
50
+ implement references that involve range unions and lists\n5. Sometimes gives cells
51
+ as being empty, when excel would give the cell as having a numeric value of zero\n"
52
+ email: tamc@greenonblack.com
53
+ executables:
54
+ - excel_to_c
55
+ - excel_to_ruby
56
+ extensions: []
57
+ extra_rdoc_files: []
58
+ files:
59
+ - README
60
+ - src/commands/excel_to_c.rb
61
+ - src/commands/excel_to_ruby.rb
62
+ - src/commands.rb
63
+ - src/compile/c/compile_to_c.rb
64
+ - src/compile/c/compile_to_c_header.rb
65
+ - src/compile/c/compile_to_c_unit_test.rb
66
+ - src/compile/c/excel_to_c_runtime.c
67
+ - src/compile/c/map_formulae_to_c.rb
68
+ - src/compile/c/map_sheet_names_to_c_names.rb
69
+ - src/compile/c/map_values_to_c.rb
70
+ - src/compile/c/map_values_to_c_structs.rb
71
+ - src/compile/c.rb
72
+ - src/compile/ruby/compile_to_ruby.rb
73
+ - src/compile/ruby/compile_to_ruby_unit_test.rb
74
+ - src/compile/ruby/excel_to_ruby_runtime.rb
75
+ - src/compile/ruby/map_formulae_to_ruby.rb
76
+ - src/compile/ruby/map_sheet_names_to_ruby_names.rb
77
+ - src/compile/ruby/map_values_to_ruby.rb
78
+ - src/compile/ruby.rb
79
+ - src/compile.rb
80
+ - src/excel/area.rb
81
+ - src/excel/excel_functions/abs.rb
82
+ - src/excel/excel_functions/add.rb
83
+ - src/excel/excel_functions/and.rb
84
+ - src/excel/excel_functions/apply_to_range.rb
85
+ - src/excel/excel_functions/average.rb
86
+ - src/excel/excel_functions/choose.rb
87
+ - src/excel/excel_functions/cosh.rb
88
+ - src/excel/excel_functions/count.rb
89
+ - src/excel/excel_functions/counta.rb
90
+ - src/excel/excel_functions/divide.rb
91
+ - src/excel/excel_functions/excel_equal.rb
92
+ - src/excel/excel_functions/excel_if.rb
93
+ - src/excel/excel_functions/excel_match.rb
94
+ - src/excel/excel_functions/find.rb
95
+ - src/excel/excel_functions/iferror.rb
96
+ - src/excel/excel_functions/index.rb
97
+ - src/excel/excel_functions/left.rb
98
+ - src/excel/excel_functions/less_than.rb
99
+ - src/excel/excel_functions/less_than_or_equal.rb
100
+ - src/excel/excel_functions/max.rb
101
+ - src/excel/excel_functions/min.rb
102
+ - src/excel/excel_functions/mod.rb
103
+ - src/excel/excel_functions/more_than.rb
104
+ - src/excel/excel_functions/more_than_or_equal.rb
105
+ - src/excel/excel_functions/multiply.rb
106
+ - src/excel/excel_functions/negative.rb
107
+ - src/excel/excel_functions/not_equal.rb
108
+ - src/excel/excel_functions/number_argument.rb
109
+ - src/excel/excel_functions/pi.rb
110
+ - src/excel/excel_functions/pmt.rb
111
+ - src/excel/excel_functions/power.rb
112
+ - src/excel/excel_functions/round.rb
113
+ - src/excel/excel_functions/rounddown.rb
114
+ - src/excel/excel_functions/roundup.rb
115
+ - src/excel/excel_functions/string_join.rb
116
+ - src/excel/excel_functions/subtotal.rb
117
+ - src/excel/excel_functions/subtract.rb
118
+ - src/excel/excel_functions/sum.rb
119
+ - src/excel/excel_functions/sumif.rb
120
+ - src/excel/excel_functions/sumifs.rb
121
+ - src/excel/excel_functions/sumproduct.rb
122
+ - src/excel/excel_functions/vlookup.rb
123
+ - src/excel/excel_functions.rb
124
+ - src/excel/formula_peg.rb
125
+ - src/excel/formula_peg.txt
126
+ - src/excel/reference.rb
127
+ - src/excel/table.rb
128
+ - src/excel.rb
129
+ - src/excel_to_code.rb
130
+ - src/extract/check_for_unknown_functions.rb
131
+ - src/extract/extract_array_formulae.rb
132
+ - src/extract/extract_formulae.rb
133
+ - src/extract/extract_named_references.rb
134
+ - src/extract/extract_relationships.rb
135
+ - src/extract/extract_shared_formulae.rb
136
+ - src/extract/extract_shared_strings.rb
137
+ - src/extract/extract_simple_formulae.rb
138
+ - src/extract/extract_table.rb
139
+ - src/extract/extract_values.rb
140
+ - src/extract/extract_worksheet_dimensions.rb
141
+ - src/extract/extract_worksheet_names.rb
142
+ - src/extract/extract_worksheet_table_relationships.rb
143
+ - src/extract/simple_extract_from_xml.rb
144
+ - src/extract.rb
145
+ - src/rewrite/ast_copy_formula.rb
146
+ - src/rewrite/ast_expand_array_formulae.rb
147
+ - src/rewrite/rewrite_array_formulae.rb
148
+ - src/rewrite/rewrite_array_formulae_to_arrays.rb
149
+ - src/rewrite/rewrite_cell_references_to_include_sheet.rb
150
+ - src/rewrite/rewrite_formulae_to_ast.rb
151
+ - src/rewrite/rewrite_merge_formulae_and_values.rb
152
+ - src/rewrite/rewrite_relationship_id_to_filename.rb
153
+ - src/rewrite/rewrite_shared_formulae.rb
154
+ - src/rewrite/rewrite_values_to_ast.rb
155
+ - src/rewrite/rewrite_whole_row_column_references_to_areas.rb
156
+ - src/rewrite/rewrite_worksheet_names.rb
157
+ - src/rewrite.rb
158
+ - src/simplify/count_formula_references.rb
159
+ - src/simplify/identify_dependencies.rb
160
+ - src/simplify/identify_repeated_formula_elements.rb
161
+ - src/simplify/inline_formulae.rb
162
+ - src/simplify/map_formulae_to_values.rb
163
+ - src/simplify/remove_cells.rb
164
+ - src/simplify/replace_arrays_with_single_cells.rb
165
+ - src/simplify/replace_blanks.rb
166
+ - src/simplify/replace_common_elements_in_formulae.rb
167
+ - src/simplify/replace_formulae_with_calculated_values.rb
168
+ - src/simplify/replace_indirects_with_references.rb
169
+ - src/simplify/replace_named_references.rb
170
+ - src/simplify/replace_ranges_with_array_literals.rb
171
+ - src/simplify/replace_shared_strings.rb
172
+ - src/simplify/replace_table_references.rb
173
+ - src/simplify/replace_values_with_constants.rb
174
+ - src/simplify/simplify_arithmetic.rb
175
+ - src/simplify.rb
176
+ - src/util/not_supported_exception.rb
177
+ - src/util/try.rb
178
+ - src/util.rb
179
+ - bin/excel_to_c
180
+ - bin/excel_to_ruby
181
+ homepage: http://github.com/tamc/excel2code
182
+ licenses: []
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - src
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ~>
191
+ - !ruby/object:Gem::Version
192
+ version: 1.9.1
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ requirements: []
200
+ rubyforge_project:
201
+ rubygems_version: 1.8.10
202
+ signing_key:
203
+ specification_version: 3
204
+ summary: Converts .xlxs files into pure ruby 1.9 code or pure C code so that they
205
+ can be executed without excel
206
+ test_files: []
207
+ has_rdoc: false