Better performance on Excel doc import.
Don't set cached range on every single cell import when loading Excel document with external ref cache. This would become a major performance bottleneck with a document with large cache.
This commit is contained in:
parent
296baa2fb6
commit
d804b40cdf
1 changed files with 4 additions and 4 deletions
|
@ -404,28 +404,28 @@ void XclImpSupbookTab::LoadCachedValues(ScExternalRefCache::TableTypeRef pCacheT
|
||||||
{
|
{
|
||||||
bool b = p->GetBool();
|
bool b = p->GetBool();
|
||||||
ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(b ? 1.0 : 0.0));
|
ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(b ? 1.0 : 0.0));
|
||||||
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
|
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken, 0, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EXC_CACHEDVAL_DOUBLE:
|
case EXC_CACHEDVAL_DOUBLE:
|
||||||
{
|
{
|
||||||
double f = p->GetValue();
|
double f = p->GetValue();
|
||||||
ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(f));
|
ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(f));
|
||||||
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
|
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken, 0, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EXC_CACHEDVAL_ERROR:
|
case EXC_CACHEDVAL_ERROR:
|
||||||
{
|
{
|
||||||
double fError = XclTools::ErrorToDouble( p->GetXclError() );
|
double fError = XclTools::ErrorToDouble( p->GetXclError() );
|
||||||
ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(fError));
|
ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(fError));
|
||||||
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
|
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken, 0, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EXC_CACHEDVAL_STRING:
|
case EXC_CACHEDVAL_STRING:
|
||||||
{
|
{
|
||||||
const String& rStr = p->GetString();
|
const String& rStr = p->GetString();
|
||||||
ScExternalRefCache::TokenRef pToken(new formula::FormulaStringToken(rStr));
|
ScExternalRefCache::TokenRef pToken(new formula::FormulaStringToken(rStr));
|
||||||
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
|
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken, 0, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue