fpspreadsheet: Fix writing of RC formulas for Excel2003/XML format.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7037 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2019-07-15 11:03:34 +00:00
parent 8ff3813be2
commit 8f706c4a8c
2 changed files with 11 additions and 8 deletions

View File

@ -144,7 +144,6 @@ begin
MyWorksheet.WriteFont(8, 3, 'Courier New', 12, [fssUnderline], scBlue);
MyWorksheet.WriteBackgroundColor(8, 3, scYellow);
(********************* to do...
MyWorksheet.WriteComment(8, 3, 'This is font "Courier New", Size 12.');
// Write the string formula E1 = A1 + B1 ...
@ -172,7 +171,7 @@ begin
RPNSTring('B',
RPNFunc(fekConcat,
nil)))));
*)
r := 10;
MyWorksheet.WriteText(r, 0, 'Writing current date/time:');
inc(r, 2);

View File

@ -3036,13 +3036,17 @@ begin
if (ACell = nil) or (not HasFormula(ACell)) then
exit;
formula := FFormulas.findFormula(ACell^.Row, ACell^.Col);
formula := FFormulas.FindFormula(ACell^.Row, ACell^.Col);
oldDialect := formula^.Parser.Dialect;
try
formula^.Parser.Dialect := ADialect;
Result := formula^.Parser.Expression;
finally
formula^.Parser.Dialect := oldDialect;
if oldDialect <> ADialect then begin
try
formula^.Parser.Dialect := ADialect;
formula^.Parser.PrepareCopyMode(ACell, nil);
Result := formula^.Parser.Expression;
finally
formula^.Parser.PrepareCopyMode(nil, nil);
formula^.Parser.Dialect := oldDialect;
end;
end;
end;