2011-04-18 2 views
0

내 레일 앱에서 생성 된 결과를 Excel 형식으로 내보내고 싶습니다. distribution_sheet, 결과 및 표본은 모두 모델입니다. 내 컨트롤러의 내 스크립트입니다 :csv xls export to spreads to respond to 스프레드 시트

def first 

    @distribution_sheet = DistributionSheet.find(:all, :conditions => ["lifecycle_state = ?","closed"]).last 

    @results = @distribution_sheet.results 

    @specimens = @distribution_sheet.specimens 

end 

    include DisplayResultHelper 
    def show 
    respond_to do |format| 
     format.html 
     format.csv { 
      @specimens.each do |sp| 
     send_data(generate_csv([["Lab No","Assay","Batch","Cuttoff"],[sp.id]]), 
:filename => "my_data-#{Time.now.to_date.to_s}.csv", 
     :type => 'text/csv') 
      end 
        } 
     format.xls{ 
     send_data(generate_xls([["Lab No","Assay","Batch","Cuttoff"],[]]), 
     :filename => 'my_date.xls', 
     :type => 'application/vnd.ms-excel') 
      } 

     end 
    end 
    end 

배열 안에 단어를 추가하면 작동하지만 sp.id를 추가하면 오류가 발생합니다. sp.id에 데이터를 추가하고 싶습니다. 모든 단서?

마크

+0

대신 sp.id.to_s 전달 시도 'generate_csv'? 아니면 도서관에서 왔습니까? 그 함수들로부터 소스를 보여 주거나 그것이 어떤 라이브러리에서 왔는지 말하십시오. 이제는 우리가 그 기능이 무엇을 기대 하는지를 아는 것은 매우 어렵습니다. – nathanvda

답변

2

난 당신이 사용중인 라이브러리 확실하지 않다 -하지만 아마도 그 배열의 실제 문자열이 필요합니다, 그래서 당신은`generate_xls` 쓰기 그랬던 sp.id