diff --git a/components/fpspreadsheet/examples/excel8demo/excel8write.lpi b/components/fpspreadsheet/examples/excel8demo/excel8write.lpi index 733107628..cbe3f4022 100644 --- a/components/fpspreadsheet/examples/excel8demo/excel8write.lpi +++ b/components/fpspreadsheet/examples/excel8demo/excel8write.lpi @@ -44,6 +44,9 @@ + + + @@ -71,6 +74,9 @@ + + + @@ -115,5 +121,8 @@ + + + diff --git a/components/fpspreadsheet/fpolebasic.pas b/components/fpspreadsheet/fpolebasic.pas index 1996e9d2d..051fffe54 100644 --- a/components/fpspreadsheet/fpolebasic.pas +++ b/components/fpspreadsheet/fpolebasic.pas @@ -57,7 +57,12 @@ var tmpStream: TStream; // workaround to a compiler bug, see bug 22370 begin VLAbsolutePath:='/'+AStreamName; //Virtual layer always use absolute paths. - if not AOverwriteExisting and FileExists(AFileName) then begin + if FileExists(AFileName) then begin + if AOverwriteExisting then + DeleteFile(AFileName) + // In Ubuntu is seems that fmCreate does not erase an existing file. + // Therefore we delete it manually. + else Raise EStreamError.Createfmt('File "%s" already exists.',[AFileName]); end; RealFile:=TFileStream.Create(AFileName,fmCreate); diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index e0fdca383..c6a4cf151 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -14,6 +14,9 @@ unit fpspreadsheet; interface uses + {$IFDEF UNIX} + clocale, + {$ENDIF} Classes, SysUtils, fpimage, AVL_Tree, avglvltree, lconvencoding; type @@ -1094,9 +1097,6 @@ procedure InitCell(var ACell: TCell); implementation uses - {$IFDEF UNIX} - clocale, - {$ENDIF} Math, StrUtils, TypInfo, fpsStreams, fpsUtils, fpsNumFormatParser, fpsFunc; { Translatable strings }