Ruby on rails Rails打开xls(excel)文件
我有一个来自excel的文件Ruby on rails Rails打开xls(excel)文件,ruby-on-rails,ruby,excel,Ruby On Rails,Ruby,Excel,我有一个来自excel的文件b.xls,我需要将它导入我的rails应用程序 我试过打开它 file = File.read(Rails.root.to_s+'/b.xls') 我有这个 file.encoding=>#编码:UTF-8 我有几个问题: 如何在没有此符号的情况下打开(正常语言) 如何将此文件转换为哈希 文件相当大,大约5k行 您必须拥有所有行的数组,然后您可以将其转换为一些散列,如果您愿意的话 我建议使用批量工厂 gem非常简单,依赖于引擎盖下的roogem。 下面是代码
b.xls
,我需要将它导入我的rails应用程序
我试过打开它
file = File.read(Rails.root.to_s+'/b.xls')
我有这个
file.encoding=>#编码:UTF-8
我有几个问题:
您必须拥有所有行的数组,然后您可以将其转换为一些散列,如果您愿意的话 我建议使用
批量工厂
gem非常简单,依赖于引擎盖下的
roo
gem。下面是代码示例
require 'batch_factory'
factory = BatchFactory.from_file(
Rails.root.join('b.xlsx'),
keys: [:column1, :column2, ..., :what_ever_column_name]
)
那你就可以了
factory.each do |row|
puts row[:column1]
end
也可以省略指定键
。然后,batch\u factory
将自动从第一行获取标题。但你的钥匙是俄语的。像
factory.each do |row|
puts row['Товар']
end
如果您想将产品名称作为密钥进行散列,您可以这样做
factory.inject({}) do |hash, row|
hash.merge(row['Товар'] => row)
end
您必须拥有所有行的数组,然后您可以将其转换为一些散列,如果您愿意的话 我建议使用
批量工厂
gem非常简单,依赖于引擎盖下的
roo
gem。下面是代码示例
require 'batch_factory'
factory = BatchFactory.from_file(
Rails.root.join('b.xlsx'),
keys: [:column1, :column2, ..., :what_ever_column_name]
)
那你就可以了
factory.each do |row|
puts row[:column1]
end
也可以省略指定键
。然后,batch\u factory
将自动从第一行获取标题。但你的钥匙是俄语的。像
factory.each do |row|
puts row['Товар']
end
如果您想将产品名称作为密钥进行散列,您可以这样做
factory.inject({}) do |hash, row|
hash.merge(row['Товар'] => row)
end
请使用
Rails.root.join('b.xlsx')
。它更好。你试过使用一些LIB吗?@是的,我试过roo
它返回一个数组,对我来说没有用roo
有一个返回散列的选项。“它返回一个数组,这是无用的”-而且,将数组数组转换为哈希数组一点也不困难。这实际上是2-3行代码。请使用Rails.root.join('b.xlsx')
。它更好。你试过使用一些LIB吗?@是的,我试过roo
它返回一个数组,对我来说没有用roo
有一个返回散列的选项。“它返回一个数组,这是无用的”-而且,将数组数组转换为哈希数组一点也不困难。这实际上是2-3行代码。