如何在阵列中每X个字符串创建一个新的CSV数据行

时间:2017-12-12 10:23:49

标签: ruby export-to-csv

我正在尝试从数组创建电子表格。

 #Loop through each .olpOffer (product listing) and gather content from various elements
 parse_page.css('.olpOffer').each do |a|
    if a.css('.olpSellerName img').empty?
        seller = a.css('.olpSellerName').text.strip 
    else
        seller = a.css('.olpSellerName img').attr('alt').value 
    end
    offer_price = a.css('.olpOfferPrice').text.strip
    prime = a.css('.supersaver').text.strip
    shipping_info = a.css('.olpShippingInfo').text.strip.squeeze(" ").gsub!(/(\n)/, '')
    condition = a.css('.olpCondition').text.strip
    fba = "FBA" unless a.css('.olpBadge').empty?

    #Push data from each product listing into array
    arr.push(seller,offer_price,prime,shipping_info,condition,fba)
  end
    #Need to make each product listing's data begin in new row [HELP!!]
    CSV.open("file.csv", "wb") do |csv|
        csv << ["Seller", "Price", "Prime", "Shipping", "Condition", "FBA"]

        end
    end

我需要在"FBA"列之后重置数组写入的行,这样我就不会在第2行中找到一行大数据。

我无法弄清楚如何将每个字符串与特定的列标题相关联。我不应该使用数组吗?

1 个答案:

答案 0 :(得分:0)

我明白了。我需要在我的csv中输入的数组,以便在数组中每7个字符串后创建一个新行。我是这样做的:

arr =一个包含一定数量字符串的数组,总是可被7整除

rows = arr.each_slice(7)
CSV.open("#{file_name}", "ab") do |csv|
   csv << [title, asin]
   rows.each do |row|
      csv << row
   end
end