5

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 のバグですか、それともクラッシュが予想されますか?

4

1 に答える 1

3

私はプロジェクトの管理者に電子メールを送り、彼らはこれが予期されていることを示しました.

于 2013-03-25T12:38:39.697 に答える