0

我用 xlsLib 编写了以下程序,以便创建一个带有 100 000 行工作表的 Excel xls 文件:

#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”时,似乎发生了整数溢出:行开始重叠,因为值 65 535 是 16 个无符号整数的最大值。我不知道我是否犯了一些错误或 xlsLib 有一些错误。我真的很感激一些帮助。

提前致谢。

4

1 回答 1

1

这是 Excel 格式的限制。Excel 2003 和更早的版本限制为 65536 行。因此,如果您使用旧的 *.xls 格式,则无法创建更多行。要创建更多行,您需要使用较新的 *.xlsx 格式,但 xlsLib 似乎不支持它。

更多信息: http: //support.microsoft.com/kb/120596/en-us

于 2014-01-24T19:41:49.533 回答