96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/rbbt/tsv/excel.rb', line 96
def self.read(file, options = {})
options = Misc.add_defaults options, :sep2 => /[,|]\s?/
sheet = Misc.process_options options, :sheet
= Misc.process_options options, :header
= true unless == false
sheet ||= 0
TmpFile.with_file do |filename|
workbook = Spreadsheet.open Open.open(file)
sheet = workbook.worksheet sheet
rows = []
sheet.each do |row|
rows << row.values_at(0..(row.size - 1)).collect{|c| String === c ? c.gsub("\n", ' ') : c }
end
File.open(filename, 'w') do |f|
if
= rows.shift
f.puts "#" + * "\t"
end
rows.each do |row|
values = row.collect{|c| c.respond_to?(:value) ? c.value : c }
f.puts values * "\t"
end
end
TSV.open(filename, options)
end
end
|