2017-11-21 1 views
0

나는 Roo Gem을 사용하여 Excel 파일을 읽지 만 도전에 직면하고 있습니다. 모든 float 및 정수를 문자열로 변환하지만 원하는 값을 제공하지 않습니다. 다음은 엑셀 파일의 플로트가 3200.00 경우, 내가 문자열로 '3200.00'로 원하는 내 구현Roo Gem in Rails

file = 'path/to/file.xlsx'  
xlsx = Roo::Spreadsheet.open(file) 

header = xlsx.sheet(0).row(1) 

(2..xlsx.sheet(0).last_row).each do |i| 
    row = Hash[[header, xlsx.row(i).map(&:to_s)].transpose] 
end 

입니다. 이것을 어떻게 할 수 있습니까?

+0

왜 문자열로 float 값이 필요합니까? 테이블 열이 string 또는 float 데이터 유형인지 여부 –

+0

@NatarajaB 예, 열 데이터 유형에 관계없이 문자열로 필요합니다. 다른 소스의 배열을 비교하는 데 사용하고 있습니다. –

답변

1

지도를 사용해야합니다! 지도 대신

file = 'path/to/file.xlsx'  
xlsx = Roo::Spreadsheet.open(file) 

header = xlsx.sheet(0).row(1) 

(2..xlsx.sheet(0).last_row).each do |i| 
    row = Hash[[header, xlsx.row(i).map!(&:to_s)].transpose] 
end