2011-02-07 14 views
6

Necesito leer y escribir (-> transformar) archivos de Excel en un servidor Linux, que por supuesto no tiene instalado Excel. Para Python existe http://www.python-excel.org/. ¿Hay algo similar para Ruby? Es probable que no se requiera el procesamiento del último formato de Office. Solo los viejos archivos xls deberían ser suficientes.Lectura y escritura de archivos de Excel con Ruby en un servidor sin Excel instalado

+0

posible duplicado de [Ruby:? Analizar Excel 95-2003 archivos] (http: // stackoverflow. com/questions/1579635/ruby-parse-excel-95-2003-files) – mikej

Respuesta

11

Estoy de acuerdo con Gonzih, y uso roo con bastante regularidad. Me permite leer, escribir y escribir usando un archivo de plantilla. El proyecto está bastante bien documentado en su site.

siempre usar algo como:

input = Excel.new(path) 
output = Array.new 
input.default_sheet = input.sheets[sheet] 
start.upto(input.last_row) do |row| 
    output << input.row(row) 
end 

p output 
=> a nested array representing the spreadsheat. 

p output[0] 
=> [row1_column_a, row1_column_b...] 

para leer una hoja de cálculo. tenga en cuenta que la gema roo requiere que use Excelx.new en lugar de Excel.new si su archivo es .xlsx.

para escribir puede:

book = Spreadsheet::Workbook.new 
write_sheet = book.create_worksheet 
row_num = 0 
input.each do |row| 
    write_sheet.row(row_num).replace row 
    row_num +=1 
end 
book.write "/path/to/save/to.xls" 

donde la entrada es una matriz estructurada al igual que la producción fue

+0

Gonzih? ¿¿¿que dijo el??? –

+0

@Some_other_guy dijo "use the roo gem" –

+0

-rf: pero pero ... ¡pensé que no podía escribir para sobresalir! –

Cuestiones relacionadas