я написал следующую программу с xlsLib для того, чтобы создать XLS файл Excel с листа с 100 000 строк:Целочисленное переполнение в библиотеке xlsLib в C++
#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 есть ошибка. Я очень ценю некоторую помощь.
Заранее спасибо.
Спасибо за ваш ответ Алекс Антонов. Я также попробовал [ExcelFormat Library] (http://www.codeproject.com/Articles/42504/ExcelFormat-Library) и имеет те же ограничения. Я собираюсь попробовать библиотеку Gnumeric, или вы знаете лучший выбор? С наилучшими пожеланиями! –
@ Ернесто, к сожалению, я не могу предложить лучший выбор. Я не использовал такие библиотеки. Чтобы сгенерировать/изменить файлы Excel программно, я всегда использовал Excel как COM-сервер вне процесса. –
Хорошо, не волнуйся, большое спасибо за ваш первый ответ, он очень помог! –