2012-08-28 75 views
1

我想在我的Rails應用程序從CSV導入數據,但是出現了一些問題:紅寶石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 

我正在運行ruby 1.9+以更快的速度運行gem

+0

複製數據並創建另一個csv並粘貼此數據並再次檢查.CSV可能已損壞 – Amar

+0

我現在找到我想要的 – byCoder

回答

1

我自己用「CSV - Unquoted fields do not allow \r or \n (line 2)」算出了這個數字。

問題出在第一行,所以:auto幫了我。

+0

爲什麼不接受您自己的答案或標記爲重複? –

+0

@JD。因爲你可以在2天內接受你自己的答案 – byCoder

+0

噢。今天我還沒有喝第八杯咖啡。 –