我有一个解析csv文件的现有脚本......但是我的源代码现在已经开始发送xls文件......
有关更改此脚本以解析xls文件的任何建议。
def parse_csv(filename)
lines = CSV.read(filename)
header = lines.shift
raise EdiLoadsFileEmpty if header.nil?
posts = []
lines.each do |line|
post = Hash[header.zip line]
posts.push post
end
posts
end
这就是我现在所拥有的史蒂夫
def parse_csv(文件名) workbook = Roo :: Excel.new(filename) workbook.default_sheet = workbook.sheets [0] header = workbook.row(1) 如果header.nil会引发EdiLoadsFileEmpty? 把头 posts = [] (2..workbook.last_row).each do | i | post = Hash [header.zip(workbook.row(i))] 帖子<<岗位 结束 帖子 端
对我来说只是将日期从2014年7月18日重新格式化为2014年7月18日星期五
答案 0 :(得分:0)
'roo'gem打开Excel,Excelx,Google电子表格,OpenOffice和CSV。
if File.extname(filename) == "xls"
workbook = Roo::Excel.new(filename)
else
workbook = Roo::CSV.new(filename)
end
workbook.default_sheet = workbook.sheets[0]
然后使用workbook.row
方法处理每一行
((workbook.first_row + 1)..workbook.last_row).each do |lines|
...
end
编辑我记得each
和roo gem存在问题......试试这个
(2..workbook.last_row).each do |i|
post = Hash[header.zip(workbook.row(i))]
posts << post
end