我用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有一些错误。我真的很感激一些帮助。
提前致谢。
答案 0 :(得分:1)
这是Excel格式的限制。 Excel 2003和早期版本限制为65536行。因此,如果使用旧的* .xls格式,则无法创建更多行。要创建更多行,您需要使用较新的* .xlsx格式,但看起来xlsLib不支持它。