2011-04-29 15 views
10
@out = File.open("#{File.expand_path("CSV")}/#{file_name}.csv", "w") 
CSV::Writer.generate(@out) do |csv| 
    csv << ["01", "02", "test"] 
end 
@out.close 

Cuando corro por encima de código que guarda los valores en CSV comoCita todos los campos de salida CSV

01, 02. prueba

quiero que se almacenan como

"01" , "02", "prueba"

+1

Es posible que desee comprobar hacia fuera FasterCSV http://fastercsv.rubyforge.org/. Tiene la opción de especificar el carácter de cita. Creo que será el lector/escritor CSV predeterminado en Ruby 1.9. –

+2

@Rob FasterCSV _es_ la biblioteca 'CSV' que se incluye en la biblioteca estándar con 1.9 (y desde hace mucho tiempo). – Phrogz

Respuesta

18

Cambio

CSV::Writer.generate(@out)do |csv| 

a

CSV::Writer.generate(@out, {:force_quotes=>true}) do |csv| 
+0

Aparece el error "no coincide con la clase: hash dado" – vasu

+1

En caso de que estés en Ruby 1.8.x, seguiré el consejo de @Rob Di Marco e instalaré FasterCSV. Sustituyó a CSV en 1.9.x – steenslag

+0

@vasu ¿Qué versión de Ruby estás usando? – Phrogz

-3

¿Por qué no hacer una comilla doble?

@out = File.open("#{File.expand_path("CSV")}/#{file_name}.csv", "w") 
CSV::Writer.generate(@out) do |csv| 
    csv << ['"01"', '"02"', '"test"'] 
end 
@out.close 
+4

"" "01" "", "" "02" "", "" "prueba" "" este es el resultado cuando abre el csv si los cita dos veces – vasu

Cuestiones relacionadas