Rails打开xls(excel)文件

时间:2016-09-01 08:05:28

标签: ruby-on-rails ruby excel

我有一个来自excel的文件b.xls我需要将其导入我的rails应用程序

enter image description here

我试图打开它

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

我有enter image description here

file.encoding => #Encoding:UTF-8

我几乎没有问题:

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

    文件相当大约5k行

1 个答案:

答案 0 :(得分:0)

您必须拥有所有行的数组,然后如果您愿意,可以将其转换为某个哈希值。

我建议使用require 'batch_factory' factory = BatchFactory.from_file( Rails.root.join('b.xlsx'), keys: [:column1, :column2, ..., :what_ever_column_name] ) gem 宝石非常简单,依赖于引擎盖下的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 将自动从第一行获取标头。但你的钥匙将是俄语。像

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "id", unique = true)
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

如果您希望使用产品名称作为密钥进行哈希,则可以执行

{{1}}