Rails打开xls(excel)文件

我有一个文件从Excel中b.xls我需要将其导入到我的Rails应用程序

在这里输入图像说明

我试图打开它

 file = File.read(Rails.root.to_s+'/b.xls') 

我有这个 在这里输入图像说明

file.encoding => #Encoding:UTF-8

我有几个问题:

  1. 如何打开没有这个符号(普通语言)?
  2. 如何将这个文件转换为散列?

    文件相当大约5千行

你必须有所有行的数组,然后你可以把它转换成一些散列,如果你喜欢的话。

我会build议使用batch_factory gem 。
gem非常简单,依靠引擎盖下的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 

您也可以省略指定keys 。 然后batch_factory会自动从第一行中获取头文件。 但你的钥匙将是俄罗斯。 喜欢

 factory.each do |row| puts row['Товар'] end 

如果你想散列产品名称作为你可以做的关键

 factory.inject({}) do |hash, row| hash.merge(row['Товар'] => row) end