sto usando https://github.com/zdavatz/spreadsheet versione 0.8.3foglio di calcolo gioiello: non può creare cartella di lavoro vuoto
Ho codice che itera su una collezione e crea un foglio di lavoro nella stessa cartella di lavoro per ogni elemento. Quando la raccolta è vuota, il codice che esegue finisce per assomigliare:
io = StringIO.new
book = Spreadsheet::Workbook.new
book.write(io)
L'ultima riga solleva:
TypeError: can't convert nil into Integer
spreadsheet/excel/writer/workbook.rb:636:in `pack'
spreadsheet/excel/writer/workbook.rb:636:in `write_window1'
spreadsheet/excel/writer/workbook.rb:419:in `write_from_scratch'
spreadsheet/excel/writer/workbook.rb:644:in `write_workbook'
spreadsheet/writer.rb:12:in `write'
spreadsheet/workbook.rb:124:in `write'
cambiare il mio codice per questo risolve le cose:
io = StringIO.new
book = Spreadsheet::Workbook.new
book.create_worksheet if book.worksheets.empty?
book.write(io)
Ma Preferirei non dover includere la chiamata a create_worksheet
. Le mie domande sono:
a) sto facendo qualcosa di sbagliato nel mio codice?
b) si tratta di un bug nella gemma o è previsto l'arresto anomalo?
Sembra il comportamento previsto. – Linuxios