You've already forked lazarus-ccr
fpspreadsheet: Fix 3d cell references with a single other sheet (Sheet1!A1:C3), except for ODS. 3d references with several sheets prepared (not tested yet). Some more unit tests.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6408 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -532,6 +532,8 @@ begin
|
||||
INT_EXCEL_ID_COLINFO : ReadColInfo(AStream);
|
||||
INT_EXCEL_ID_DEFCOLWIDTH : ReadDefColWidth(AStream);
|
||||
INT_EXCEL_ID_EOF : SectionEOF := True;
|
||||
INT_EXCEL_ID_EXTERNCOUNT : ReadEXTERNCOUNT(AStream);
|
||||
INT_EXCEL_ID_EXTERNSHEET : ReadEXTERNSHEET(AStream);
|
||||
INT_EXCEL_ID_FOOTER : ReadHeaderFooter(AStream, false);
|
||||
INT_EXCEL_ID_FORMULA : ReadFormula(AStream);
|
||||
INT_EXCEL_ID_HEADER : ReadHeaderFooter(AStream, true);
|
||||
@@ -666,17 +668,17 @@ begin
|
||||
// Skip 8 unused bytes
|
||||
AStream.Position := AStream.Position + 8;
|
||||
|
||||
// Zero-based index to first referenced sheet (-1 = deleted sheet)
|
||||
// one-based index to first referenced sheet (-1 = deleted sheet)
|
||||
idx := Int16(WordLEToN(AStream.ReadWord));
|
||||
if idx <> -1 then begin
|
||||
s := FExternSheets.Strings[idx];
|
||||
s := FExternSheets.Strings[idx-1];
|
||||
ASheet1 := FWorkbook.GetWorksheetIndex(s);
|
||||
end;
|
||||
|
||||
// Zero-based index to last referenced sheet (-1 = deleted sheet)
|
||||
// one-based index to last referenced sheet (-1 = deleted sheet)
|
||||
idx := WordLEToN(AStream.ReadWord);
|
||||
if idx <> -1 then begin
|
||||
s := FExternSheets.Strings[idx];
|
||||
s := FExternSheets.Strings[idx-1];
|
||||
ASheet2 := FWorkbook.GetWorksheetIndex(s);
|
||||
end;
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user