https://github.com/zdavatz/spreadsheetバージョン 0.8.3を使用しています
コレクションを反復処理し、アイテムごとに同じワークブックにワークシートを作成するコードがあります。コレクションが空の場合、実行されるコードは次のようになります。
io = StringIO.new
book = Spreadsheet::Workbook.new
book.write(io)
最後の行は次のようになります。
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'
私のコードをこれに変更すると、問題が修正されます:
io = StringIO.new
book = Spreadsheet::Workbook.new
book.create_worksheet if book.worksheets.empty?
book.write(io)
しかし、への呼び出しを含める必要はありませんcreate_worksheet
。私の質問は次のとおりです。
a) コードで何か間違ったことをしていますか?
b) これは gem のバグですか、それともクラッシュが予想されますか?