2011-11-07 6 views
0

저는 루비 1.9.2를 처음 사용했습니다. 단일 루비 스크립트 파일에서 CSV 파일을 생성하는 방법은 무엇입니까? 여기루비 1.9.2에서 CSV gem을 사용하여 CSV 파일을 만드는 방법은 무엇입니까?

, 나는 루비 스크립트,

require 'rubygems' 
require 'pg' 
require 'active_record' 
require 'csv' 

class AttachEmail 

def generate_csv 
begin 
filename = "csvout.csv" 
users = User.all 
users.each do |u| 
    products = Product.find(:all,:conditions=>["user_id=?",u.id]) 
    CSV.open(filename, 'w') do |csv| 
    # header row 
user_name = u.name 
     csv << ['Report'] 
     csv << ['Name','Product', 'Item Count'] 
     products.each do |product| 
     csv << [user_name, product.title,product.count] 
     end 
end 
end 
rescue Exception => e 
    puts e 
end 
end 
generate= AttachEmail.new 
generate.generate_csv 

내가 다음과 같은 출력을 생성이 script.it을 실행

,

  A     B  C 

0  Report 
1  Name,Product,Item Count 
2  user1,PD123,10,990 

하지만 내가 출력과 같은 별도의 열, 수 제발이 필요로 썼다 너 나 친절하니? 모든 사전

+4

문서의 어떤 부분에 어려움이 있습니까? http://ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html –

+0

안녕하세요. 저는 시도했습니다. 위의 수정 된 질문을 참조하십시오. – prabu

답변

6

먼저 감사드립니다, 당신은 모든 사용자에 대해 덮어 쓰기 같은 파일에있는 모든 사용자 데이터를 넣어하려는 경우 루프를 교체해야하고,하지 :

CSV.open(filename, 'w') do |csv| 
    users.each do |u| 
    products = Product.find(:all,:conditions=>["user_id=?",u.id]) 

다음, 수정하여 Excel (출력 결과가 맞지 않을까?). "space 또는 comma"가 아닌 구분 기호로 쉼표를 사용하십시오.

첨부 파일 내용 및 여전히 작동하지 않는 경우 사용할 수있는 CSV 파일의 예를 사용하십시오.

+0

고마워요! 그 일. – prabu

관련 문제