diff --git a/components/fpspreadsheet/fpolebasic.pas b/components/fpspreadsheet/fpolebasic.pas index 051fffe54..6e11aa420 100644 --- a/components/fpspreadsheet/fpolebasic.pas +++ b/components/fpspreadsheet/fpolebasic.pas @@ -95,7 +95,7 @@ begin VLAbsolutePath:='/'+AStreamName; //Virtual layer always use absolute paths. try RealFile:=nil; - RealFile:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyWrite); + RealFile:=TFileStream.Create(AFileName, fmOpenRead or fmShareDenyNone); try fsOLE:=nil; fsOLE:=TVirtualLayer_OLE.Create(RealFile); diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index 9f9d30e9a..ab647037f 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -7342,9 +7342,9 @@ var InputFile: TStream; begin if (boBufStream in Workbook.Options) then - InputFile := TBufStream.Create(AFileName, fmOpenRead) + InputFile := TBufStream.Create(AFileName, fmOpenRead + fmShareDenyNone) else - InputFile := TFileStream.Create(AFileName, fmOpenRead); + InputFile := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone); try ReadFromStream(InputFile, AData); finally diff --git a/components/fpspreadsheet/fpszipper.pp b/components/fpspreadsheet/fpszipper.pp index 2ecd35993..02904531c 100644 --- a/components/fpspreadsheet/fpszipper.pp +++ b/components/fpspreadsheet/fpszipper.pp @@ -1586,7 +1586,7 @@ Begin if Assigned(FOnOpenInputStream) then FOnOpenInputStream(Self, FZipStream); if FZipStream = nil then - FZipStream:=TFileStream.Create(FFileName,fmOpenRead); + FZipStream:=TFileStream.Create(FFileName,fmOpenRead + fmShareDenyNone); End; diff --git a/components/fpspreadsheet/reference/BIFFExplorer/bemain.lfm b/components/fpspreadsheet/reference/BIFFExplorer/bemain.lfm index e7ec7ffe8..2ed16d797 100644 --- a/components/fpspreadsheet/reference/BIFFExplorer/bemain.lfm +++ b/components/fpspreadsheet/reference/BIFFExplorer/bemain.lfm @@ -178,22 +178,22 @@ object MainForm: TMainForm OnSelection = HexGridSelection ColWidths = ( 28 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 26 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 + 20 ) Cells = ( 16 @@ -263,22 +263,22 @@ object MainForm: TMainForm OnClick = GridClick OnSelection = AlphaGridSelection ColWidths = ( - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 17 - 18 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 15 + 27 ) Cells = ( 16 diff --git a/components/fpspreadsheet/reference/BIFFExplorer/bemain.pas b/components/fpspreadsheet/reference/BIFFExplorer/bemain.pas index 9f1e5746e..e9c2406b3 100644 --- a/components/fpspreadsheet/reference/BIFFExplorer/bemain.pas +++ b/components/fpspreadsheet/reference/BIFFExplorer/bemain.pas @@ -818,6 +818,7 @@ procedure TMainForm.LoadFile(const AFileName: String; AFormat: TsSpreadsheetForm var OLEDocument: TOLEDocument; streamname: UTF8String; + filestream: TFileStream; begin if MemStream <> nil then FreeAndNil(MemStream); @@ -828,7 +829,14 @@ begin MemStream := TMemoryStream.Create; if AFormat = sfExcel2 then begin - MemStream.LoadFromFile(UTF8ToSys(AFileName)); + fileStream := TFileStream.Create(UTF8ToSys(AFileName), fmOpenRead + fmShareDenyNone); + try + MemStream.CopyFrom(fileStream, fileStream.Size); + MemStream.Position := 0; +// MemStream.LoadFromFile(UTF8ToSys(AFileName)); + finally + filestream.Free; + end; end else begin OLEStorage := TOLEStorage.Create; diff --git a/components/fpspreadsheet/xlsbiff2.pas b/components/fpspreadsheet/xlsbiff2.pas index 2bc1cb67b..92eab1a81 100755 --- a/components/fpspreadsheet/xlsbiff2.pas +++ b/components/fpspreadsheet/xlsbiff2.pas @@ -1666,7 +1666,7 @@ begin // Write adapted copy of shared formula to stream. WriteRPNTokenArray(AStream, ACell, formula, false, RPNLength); - // false --> "do not convert cess addresses to relative offsets", because + // false --> "do not convert cell addresses to relative offsets", because // biff2 does not support shared formulas! // Clean up