SVN commit 1106362 by sebsauer: Fix content got lost if more then 1024 columns where used cause of a hardcoded maximal column value in Sheet::cell. M +0 -11 import/excelimport.cc M +2 -1 sidewinder/sheet.cpp M +11 -0 sidewinder/utils.h --- trunk/koffice/filters/kspread/excel/import/excelimport.cc #1106361:1106362 @@ -54,17 +54,6 @@ #define UNICODE_GBP 0x00A3 #define UNICODE_JPY 0x00A5 -// The minimal number of rows and columns. This is used to fill remaming rows and columns with the -// default style what is needed cause Excel does always define the default for all rows and columns -// while ODF does only for those that are explicit defined. -static const uint minimumColumnCount = 1024; -static const uint minimumRowCount = 32768; - -// The maximal number of rows and columns. This allows us to cut rows and columns away that would -// not be handled by the consumer application anyway cause they reached the applications limited. -static const uint maximalColumnCount = 32768; -static const uint maximalRowCount = 32768; //65536 - namespace Swinder { // qHash function to support hashing by Swinder::FormatFont instances. --- trunk/koffice/filters/kspread/excel/sidewinder/sheet.cpp #1106361:1106362 @@ -21,6 +21,7 @@ #include "sheet.h" #include "workbook.h" #include "ustring.h" +#include "utils.h" #include #include @@ -148,7 +149,7 @@ Cell* Sheet::cell(unsigned columnIndex, unsigned rowIndex, bool autoCreate) { - unsigned hashed = (rowIndex + 1) * 1024 + columnIndex + 1; + const unsigned hashed = (rowIndex + 1) * maximalColumnCount + columnIndex + 1; Cell* c = d->cells[ hashed ]; // create cell if necessary --- trunk/koffice/filters/kspread/excel/sidewinder/utils.h #1106361:1106362 @@ -29,6 +29,17 @@ namespace Swinder { +// The minimal number of rows and columns. This is used to fill remaming rows and columns with the +// default style what is needed cause Excel does always define the default for all rows and columns +// while ODF does only for those that are explicit defined. +static const uint minimumColumnCount = 1024; +static const uint minimumRowCount = 32768; + +// The maximal number of rows and columns. This allows us to cut rows and columns away that would +// not be handled by the consumer application anyway cause they reached the applications limited. +static const uint maximalColumnCount = 32768; +static const uint maximalRowCount = 32768; //65536 + class Workbook; Value errorAsValue(int errorCode);