使用ruby将一行string分隔成不同的列

我想操纵一个CSV文件,使用Ruby,将一行string分隔成不同的列。 以'Part#'开始创build一个列,然后移过逗号到'Quantity'并在它旁边创build第二个列,等等…我期望我将需要使用split方法来创build一个数组。 这是最好的方法,我怎么将数组粘贴到Excel中,以便它创build行?

我希望同样的事情发生在包含实际数据的头部下面的行中,它被分成S-001,1,[Mela]等。

这是一个csv的示例:

Sheet Goods Part#,Quantity,Description,Length(L),Width(W),Thickness(T),Square Foot (per),Square Foot (total),Total Length (Feet),Material, S-001,1, [Mela] Fridge Sides, 30",12",0 5/8",2.5,2.5,2.5,Not assigned, S-002,1, [Mela] Fridge Sides#1,30",12",0 5/8",2.5,2.5,2.5,Not assigned, S-003,1, [Mela] Fridge TB,32 1/4", 30",0 5/8",6.72,6.72,2.69,Not assigned, S-004,1, [Mela] Fridge TB#1,32 1/4", 30",0 5/8",6.72,6.72,2.69,Not assigned, S-005,1, [Mela] Fridge back,32 3/4",11 1/4",0 5/8",2.56,2.56,2.73,Not assigned, 

任何帮助,将不胜感激!

编辑:

这是数据在完成时的样子:

 Sheet Goods Pat# Quantity Description Length (L) Thickness (T) Square Foor (per) Square Foot (total) Total Length (Feet) Material S-001 1 [Mela] Fridge Sides 30 5/8 2.5 2.5 2.5 Not assigned 

如果逗号被删除,逗号之间的数据被放入不同的列中。

标记

首先,使用库来完成任务: CSV 。 其次,将行按列名索引(而不是无意义的数字)是非常方便的。 一个例子(你会得到所有的宽度):

 require 'csv' rows = CSV.open("data.csv") name, headers = rows.take(2) quantities = rows.map do |row_values| row = Hash[headers.zip(row_values)] # here you specific processing row["Width(W)"] end 

如Jim所述,您的文本不是有效的CSV,双引号是保留的。