fpspreadsheet: Fix calculation of formulas with defined names in ODS.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9401 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
f6b3b7e9dd
commit
0d6a27eff3
@ -2961,6 +2961,7 @@ begin
|
|||||||
try
|
try
|
||||||
formula := TsWorksheet(FWorksheet).Formulas.AddFormula(ARow, ACol);
|
formula := TsWorksheet(FWorksheet).Formulas.AddFormula(ARow, ACol);
|
||||||
formula^.Parser := TsSpreadsheetParser.Create(FWorksheet);
|
formula^.Parser := TsSpreadsheetParser.Create(FWorksheet);
|
||||||
|
TsSpreadsheetParser(formula^.Parser).AddDefinedNames;
|
||||||
formula^.Parser.Expression[fdOpenDocument] := formulaStr; // Parse in ODS dialect
|
formula^.Parser.Expression[fdOpenDocument] := formulaStr; // Parse in ODS dialect
|
||||||
formula^.Text := formula^.Parser.Expression[fdExcelA1]; // Convert to Excel A1 dialect
|
formula^.Text := formula^.Parser.Expression[fdExcelA1]; // Convert to Excel A1 dialect
|
||||||
cell^.Flags := cell^.Flags + [cfHasFormula];
|
cell^.Flags := cell^.Flags + [cfHasFormula];
|
||||||
@ -3168,6 +3169,8 @@ begin
|
|||||||
ReadSheetProtection(TableNode, FWorksheet);
|
ReadSheetProtection(TableNode, FWorksheet);
|
||||||
// Collect embedded images
|
// Collect embedded images
|
||||||
ReadShapes(TableNode);
|
ReadShapes(TableNode);
|
||||||
|
// Read defined names
|
||||||
|
ReadDefinedNames(SpreadSheetNode);
|
||||||
// Collect column styles used
|
// Collect column styles used
|
||||||
ReadColumns(TableNode);
|
ReadColumns(TableNode);
|
||||||
// Remove excess rows added at the end
|
// Remove excess rows added at the end
|
||||||
@ -3197,7 +3200,6 @@ begin
|
|||||||
TableNode := TableNode.NextSibling;
|
TableNode := TableNode.NextSibling;
|
||||||
end; //while Assigned(TableNode)
|
end; //while Assigned(TableNode)
|
||||||
|
|
||||||
ReadDefinedNames(SpreadSheetNode);
|
|
||||||
FreeAndNil(Doc);
|
FreeAndNil(Doc);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user