fpspreadsheet: Activate boIgnoreFormulas also when reading an ods file.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6213 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2018-02-25 18:55:47 +00:00
parent 1de4037030
commit 659b19e80f

View File

@ -2354,30 +2354,33 @@ begin
end; end;
Delete(formula, 1, p); Delete(formula, 1, p);
end; end;
// ... convert to Excel "A1" dialect used by fps by defailt if not (boIgnoreFormulas in FWorkbook.Options) then
parser := TsSpreadsheetParser.Create(FWorksheet); begin
try // ... convert to Excel "A1" dialect used by fps by defailt
parser := TsSpreadsheetParser.Create(FWorksheet);
try try
parser.Dialect := fdOpenDocument; try
parser.LocalizedExpression[FPointSeparatorSettings] := formula; parser.Dialect := fdOpenDocument;
parser.Dialect := fdExcelA1; parser.LocalizedExpression[FPointSeparatorSettings] := formula;
formula := parser.Expression; parser.Dialect := fdExcelA1;
except formula := parser.Expression;
on E:EExprParser do except
begin on E:EExprParser do
Workbook.AddErrorMsg(E.Message); begin
formula := ''; Workbook.AddErrorMsg(E.Message);
if (boAbortReadOnFormulaError in Workbook.Options) then raise; formula := '';
end; if (boAbortReadOnFormulaError in Workbook.Options) then raise;
on E:ECalcEngine do end;
begin on E:ECalcEngine do
Workbook.AddErrorMsg(E.Message); begin
formula := ''; Workbook.AddErrorMsg(E.Message);
if (boAbortReadOnFormulaError in Workbook.Options) then raise; formula := '';
if (boAbortReadOnFormulaError in Workbook.Options) then raise;
end;
end; end;
finally
parser.Free;
end; end;
finally
parser.Free;
end; end;
// ... and store in cell's FormulaValue field. // ... and store in cell's FormulaValue field.
cell^.FormulaValue := formula; cell^.FormulaValue := formula;