1

我试图在我的 rails 应用程序中从 csv 导入数据,但出了点问题:

CSV::MalformedCSVError in ArticlesController#index
Unclosed quoted field on line 1.

我的 csv 看起来像这样:

"Код";"№ по каталогу  (артикул)";"Наименование  товара";"Ед. изм.";"Цена опт.";"Доп.";"Остатки";"Класс";"Группа";"Бренд";"Блок."
2223;15-562-44;15-562-44 (27-B07-F) VW Polo 95-R                                                                   ;шт  ;37,430;;;Амортизаторы                                                                                        ;Амортизаторы BOGE                                                                                   ;; 
10327;24-052-1;24-052-1(46-A27-0) LAND ROVER 84- F                                                                 ;шт  ;68,750;;;Амортизаторы                                                                                        ;Амортизаторы BOGE                                                                                   ;; 
10328;24-053-1;24-053-1(46-A28-0) LAND ROVER 84- R                                                                 ;шт  ;68,750;;;Амортизаторы                                                                                        ;Амортизаторы BOGE                                                                                   ;; 

也许这是因为第一行(没有;;)

我的代码如下所示:

def csv_import 
    require 'csv'
    file = File.open("/#{Rails.public_path}/uploads/smallcsv.csv")
    #csv = CSV.parse(file)


    csv = CSV.open(file, "r:ISO-8859-15:UTF-8", {:col_sep => ";", :row_sep => ";;", :headers => :first_row})
    file_path = "/#{Rails.public_path}/uploads/smallcsv.csv"
    #@parsed_file=CSV::Reader.parse(file_path)

    csv.each do |row| 
      ename = row[2]
      eprice = row[5]
      eqnt = row[7]
      esupp = row[10]

      logger.warn(ename)
    end

  end

我正在使用 fastcsv gem 运行 ruby​​ 1.9+

4

1 回答 1

1

我自己使用“ CSV - Unquoted fields do not allow \r or \n (line 2) ”想出了这一点。

问题出在第一行,所以:auto帮助了我。

于 2012-08-28T17:43:24.487 回答