diff --git a/components/fpspreadsheet/laz_fpspreadsheet.lpk b/components/fpspreadsheet/laz_fpspreadsheet.lpk index 927f44530..576b79f47 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheet.lpk @@ -85,11 +85,14 @@ - + + + + - + diff --git a/components/fpspreadsheet/laz_fpspreadsheet.pas b/components/fpspreadsheet/laz_fpspreadsheet.pas index 5fa602f39..98e3ff5ea 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet.pas +++ b/components/fpspreadsheet/laz_fpspreadsheet.pas @@ -7,8 +7,10 @@ unit laz_fpspreadsheet; interface uses - fpolestorage, fpsallformats, fpsopendocument, fpspreadsheet, xlsbiff2, - xlsbiff5, xlsbiff8, xlsxooxml, fpsutils, fpszipper, LazarusPackageIntf; + fpolestorage, fpsallformats, fpsopendocument, fpspreadsheet, xlsbiff2, + xlsbiff5, xlsbiff8, xlsxooxml, fpsutils, fpszipper, uvirtuallayer_types, + uvirtuallayer, uvirtuallayer_ole, uvirtuallayer_ole_helpers, + uvirtuallayer_ole_types, uvirtuallayer_stream, fpolebasic, LazarusPackageIntf; implementation diff --git a/components/fpspreadsheet/uvirtuallayer_ole.pas b/components/fpspreadsheet/uvirtuallayer_ole.pas index 9dbfdb93b..2487c789a 100644 --- a/components/fpspreadsheet/uvirtuallayer_ole.pas +++ b/components/fpspreadsheet/uvirtuallayer_ole.pas @@ -311,7 +311,7 @@ var Name: WideString; VI: TVirtualLayer_Item; begin - Name:=UTF8Encode(FDirectory[AStartSibling]._ab); + Name:=UTF8Encode(wideString(FDirectory[AStartSibling]._ab)); if Mask.Matches(Name) Then begin VI:=TVirtualLayer_Item.Create; VI.Name:=Name; diff --git a/components/fpspreadsheet/xlsbiff5.pas b/components/fpspreadsheet/xlsbiff5.pas index 557b51f1c..be30914e0 100755 --- a/components/fpspreadsheet/xlsbiff5.pas +++ b/components/fpspreadsheet/xlsbiff5.pas @@ -950,10 +950,10 @@ begin INT_EXCEL_ID_FORMULA: ReadFormula(AStream); INT_EXCEL_ID_BOF: ; INT_EXCEL_ID_EOF: SectionEOF := True; - else // Show unsupported record types to console. {.$DEFINE SHOWUNSUPPORTED} {$IFDEF SHOWUNSUPPORTED} + else case RecordType of $000C: ; //(CALCCOUNT) This record is part of the Calculation Settings Block. It specifies the maximum number of times the formulas should be iteratively calculated. This is a fail-safe against mutually recursive formulas locking up a spreadsheet application. $000D: ; //(CALCMODE) This record is part of the Calculation Settings Block. It specifies whether to calculate formulas manually, automatically or automatically except for multiple table operations. @@ -995,8 +995,8 @@ begin else WriteLn(format('Record type: %.4X Record Size: %.4X',[RecordType,RecordSize])); end; - end; {$ENDIF} + end; // Make sure we are in the right position for the next record AStream.Seek(CurStreamPos + RecordSize, soFromBeginning);