gpt4 book ai didi

c++ - c++中的库xlsLib中的整数溢出

转载 作者:行者123 更新时间:2023-11-28 07:08:51 26 4
gpt4 key购买 nike

我用 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 有一些错误。非常感谢您的帮助。

提前致谢。

最佳答案

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

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

关于c++ - c++中的库xlsLib中的整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21339883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com