0

100 000 行のワークシートを含む Excel xls ファイルを作成するために、xlsLib を使用して次のプログラムを作成しました。

#include <xlslib.h>
#include <xlslib/number.h>
#include <xlslib/common/xlstypes.h>

using namespace xlslib_core;
using namespace xlslib_strings;

int main()
{
    workbook wb;
    worksheet *sh = wb.sheet( "DATA" );

    unsigned32_t numberRows    = 100000;
    unsigned32_t numberColumns = 10;

    for(unsigned32_t r=0;r<numberRows;r++)
    {
        for(unsigned32_t c=0;c<numberColumns;c++)
        {
            double number = r + c;
            sh->number( r, c, number );
        }
    }
    wb.Dump("/tmp/test.xls");

    return 0;
}

ファイル「test.xls」を開くと、整数のオーバーフローが発生したようです。16 の符号なし整数の最大値である値 65 535 から、行がオーバーラップし始めます。間違いを犯したのか、xlsLib にバグがあるのか​​ わかりません。助けてくれて本当にありがとう。

前もって感謝します。

4

1 に答える 1