You've already forked lazarus-ccr
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:
@ -2354,30 +2354,33 @@ begin
|
||||
end;
|
||||
Delete(formula, 1, p);
|
||||
end;
|
||||
// ... convert to Excel "A1" dialect used by fps by defailt
|
||||
parser := TsSpreadsheetParser.Create(FWorksheet);
|
||||
try
|
||||
if not (boIgnoreFormulas in FWorkbook.Options) then
|
||||
begin
|
||||
// ... convert to Excel "A1" dialect used by fps by defailt
|
||||
parser := TsSpreadsheetParser.Create(FWorksheet);
|
||||
try
|
||||
parser.Dialect := fdOpenDocument;
|
||||
parser.LocalizedExpression[FPointSeparatorSettings] := formula;
|
||||
parser.Dialect := fdExcelA1;
|
||||
formula := parser.Expression;
|
||||
except
|
||||
on E:EExprParser do
|
||||
begin
|
||||
Workbook.AddErrorMsg(E.Message);
|
||||
formula := '';
|
||||
if (boAbortReadOnFormulaError in Workbook.Options) then raise;
|
||||
end;
|
||||
on E:ECalcEngine do
|
||||
begin
|
||||
Workbook.AddErrorMsg(E.Message);
|
||||
formula := '';
|
||||
if (boAbortReadOnFormulaError in Workbook.Options) then raise;
|
||||
try
|
||||
parser.Dialect := fdOpenDocument;
|
||||
parser.LocalizedExpression[FPointSeparatorSettings] := formula;
|
||||
parser.Dialect := fdExcelA1;
|
||||
formula := parser.Expression;
|
||||
except
|
||||
on E:EExprParser do
|
||||
begin
|
||||
Workbook.AddErrorMsg(E.Message);
|
||||
formula := '';
|
||||
if (boAbortReadOnFormulaError in Workbook.Options) then raise;
|
||||
end;
|
||||
on E:ECalcEngine do
|
||||
begin
|
||||
Workbook.AddErrorMsg(E.Message);
|
||||
formula := '';
|
||||
if (boAbortReadOnFormulaError in Workbook.Options) then raise;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
parser.Free;
|
||||
end;
|
||||
finally
|
||||
parser.Free;
|
||||
end;
|
||||
// ... and store in cell's FormulaValue field.
|
||||
cell^.FormulaValue := formula;
|
||||
|
Reference in New Issue
Block a user