2

文字列の行を別々の列に分割するRubyを使用してcsvファイルを操作しようとしています。「Part#」から始めて列を作成し、コンマを超えて「Quantity」に移動し、その隣に2番目の列を作成します。以下同様に...配列を作成するにはsplitメソッドを使用する必要があると思います。これは最良の方法ですか?配列をExcelに貼り付けて、行を作成するにはどうすればよいですか?

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

コンマが削除され、コンマ間のデータが別々の列に配置される場所。

マーク

4

1 に答える 1

1

まず、タスクのライブラリを使用します: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

ジムが指摘したように、テキストは有効なCSVではなく、二重引用符は予約されています。

于 2013-03-24T00:00:05.563 に答える