diff --git a/components/fpspreadsheet/examples/excel8demo/excel8read.lpi b/components/fpspreadsheet/examples/excel8demo/excel8read.lpi index 0b51dd708..43f419d9e 100644 --- a/components/fpspreadsheet/examples/excel8demo/excel8read.lpi +++ b/components/fpspreadsheet/examples/excel8demo/excel8read.lpi @@ -1,21 +1,22 @@ + - - - - + + + + @@ -42,11 +43,16 @@ - + - + + + + + + diff --git a/components/fpspreadsheet/xlsbiff8.pas b/components/fpspreadsheet/xlsbiff8.pas index f7f1829b0..0e90836d2 100755 --- a/components/fpspreadsheet/xlsbiff8.pas +++ b/components/fpspreadsheet/xlsbiff8.pas @@ -844,7 +844,7 @@ end; procedure TsSpreadBIFF8Writer.WriteLabel(AStream: TStream; const ARow, ACol: Word; const AValue: string; ACell: PCell); var - L: Word; + L, RecLen: Word; WideValue: WideString; begin WideValue := UTF8Decode(AValue); @@ -861,7 +861,8 @@ begin { BIFF Record header } AStream.WriteWord(WordToLE(INT_EXCEL_ID_LABEL)); - AStream.WriteWord(WordToLE(8 + 1 + L * Sizeof(WideChar))); + RecLen := 8 + 1 + L * Sizeof(WideChar); + AStream.WriteWord(WordToLE(RecLen)); { BIFF Record data } AStream.WriteWord(WordToLE(ARow)); @@ -1332,6 +1333,7 @@ begin { Read the record header } RecordType := WordLEToN(AStream.ReadWord); RecordSize := WordLEToN(AStream.ReadWord); + PendingRecordSize:=RecordSize; CurStreamPos := AStream.Position;