fpspreadsheet: Some clean-up: Less hints and warnings.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7555 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-07-22 09:07:59 +00:00
parent d0fe6490d8
commit 901b92fa72
17 changed files with 94 additions and 101 deletions

View File

@ -192,8 +192,8 @@ procedure TsCSVReader.ReadFromStream(AStream: TStream; APassword: String = '';
AParams: TsStreamParams = []); AParams: TsStreamParams = []);
var var
Parser: TCSVParser; Parser: TCSVParser;
s: String;
encoding: String; encoding: String;
s: String = '';
begin begin
Unused(AParams, APassword); Unused(AParams, APassword);

View File

@ -1873,7 +1873,7 @@ var
X: TsExprFloat; X: TsExprFloat;
lCount: Integer; lCount: Integer;
ID: TsExprIdentifierDef; ID: TsExprIdentifierDef;
Args: TsExprArgumentArray; Args: TsExprArgumentArray = nil;
AI: Integer; AI: Integer;
optional: Boolean; optional: Boolean;
token: String; token: String;
@ -2185,7 +2185,7 @@ procedure TsExpressionParser.SetRPNFormula(const AFormula: TsRPNFormula);
flags: TsRelFlags; flags: TsRelFlags;
ID: TsExprIdentifierDef; ID: TsExprIdentifierDef;
i, n: Integer; i, n: Integer;
args: TsExprArgumentArray; args: TsExprArgumentArray = nil;
sn, sn2: string; sn, sn2: string;
rng: TsCellRange; rng: TsCellRange;
begin begin
@ -4742,7 +4742,7 @@ var
idx, idx1, idx2: Integer; idx, idx1, idx2: Integer;
begin begin
AError := errOK; AError := errOK;
SetLength(AData, BLOCKSIZE); SetLength(AData{%H-}, BLOCKSIZE);
n := 0; n := 0;
for i:=Low(Args) to High(Args) do for i:=Low(Args) to High(Args) do
begin begin

View File

@ -951,6 +951,7 @@ var
len: Integer; len: Integer;
nrtp: Integer; nrtp: Integer;
begin begin
ARichTextParams := nil;
analyzer := TsHTMLAnalyzer.Create(AWorkbook as TsWorkbook, AFont, AHTMLText + '<end>'); analyzer := TsHTMLAnalyzer.Create(AWorkbook as TsWorkbook, AFont, AHTMLText + '<end>');
try try
analyzer.PreserveSpaces := true; analyzer.PreserveSpaces := true;
@ -967,8 +968,7 @@ begin
SetLength(ARichTextParams, nrtp); SetLength(ARichTextParams, nrtp);
for j:=0 to nrtp-1 do for j:=0 to nrtp-1 do
ARichTextParams[j] := analyzer.RichTextParams[j]; ARichTextParams[j] := analyzer.RichTextParams[j];
end else end;
SetLength(ARichTextParams, 0);
finally finally
analyzer.Free; analyzer.Free;
end; end;
@ -1162,7 +1162,7 @@ procedure TsHTMLComposer.GetFontsFromWorkbook(out AFonts: TsFontArray);
var var
i: Integer; i: Integer;
begin begin
SetLength(AFonts, Length(FRichTextParams)); SetLength(AFonts{%H-}, Length(FRichTextParams));
for i:=0 to High(AFonts) do for i:=0 to High(AFonts) do
AFonts[i] := FWorkbook.GetFont(FRichTextParams[i].FontIndex); AFonts[i] := FWorkbook.GetFont(FRichTextParams[i].FontIndex);
end; end;

View File

@ -2573,7 +2573,7 @@ end;
function TsNumFormatList.AddFormat(AFormatStr: String): Integer; function TsNumFormatList.AddFormat(AFormatStr: String): Integer;
var var
parser: TsNumFormatParser; parser: TsNumFormatParser;
newSections: TsNumFormatSections; newSections: TsNumFormatSections = nil;
i: Integer; i: Integer;
begin begin
parser := TsNumFormatParser.Create(AFormatStr, FFormatSettings); parser := TsNumFormatParser.Create(AFormatStr, FFormatSettings);

View File

@ -2172,7 +2172,6 @@ end;
procedure TsSpreadOpenDocReader.ReadConditionalFormats(ANode: TDOMNode; procedure TsSpreadOpenDocReader.ReadConditionalFormats(ANode: TDOMNode;
AWorksheet: TsBasicWorksheet); AWorksheet: TsBasicWorksheet);
var var
sheet: TsWorksheet;
childNode: TDOMNode; childNode: TDOMNode;
nodeName: String; nodeName: String;
s: String; s: String;
@ -2184,7 +2183,6 @@ begin
if ANode = nil then if ANode = nil then
exit; exit;
sheet := TsWorksheet(AWorksheet);
ANode := ANode.FirstChild; ANode := ANode.FirstChild;
while ANode <> nil do while ANode <> nil do
begin begin
@ -2888,7 +2886,7 @@ var
nodeName: String; nodeName: String;
cell: PCell; cell: PCell;
hyperlink: string; hyperlink: string;
rtParams: TsRichTextParams; rtParams: TsRichTextParams = nil;
idx: Integer; idx: Integer;
rtFntIndex, fntIndex: Integer; rtFntIndex, fntIndex: Integer;
rtFnt, fnt: TsFont; rtFnt, fnt: TsFont;
@ -3827,7 +3825,8 @@ var
fmt: TsCellFormat; fmt: TsCellFormat;
ok: Boolean; ok: Boolean;
condition: TsCFCondition; condition: TsCFCondition;
param1, param2: String; param1: String = '';
param2: String = '';
op1, op2: Variant; op1, op2: Variant;
sheet: TsWorksheet; sheet: TsWorksheet;
begin begin
@ -3939,8 +3938,8 @@ begin
if not ok then if not ok then
exit; exit;
if param1 = '' then VarClear(op1) else op1 := param1; if param1 = '' then VarClear(op1{%H-}) else op1 := param1;
if param2 = '' then VarClear(op2) else op2 := param2; if param2 = '' then VarClear(op2{%H-}) else op2 := param2;
sheet.WriteConditionalCellFormat(ARange, condition, op1, op2, fmtIndex); sheet.WriteConditionalCellFormat(ARange, condition, op1, op2, fmtIndex);
end; end;

View File

@ -1255,15 +1255,13 @@ function TsWorksheet.BuildRPNFormula(ACell: PCell;
var var
formula: PsFormula; formula: PsFormula;
begin begin
if (ACell = nil) or (not HasFormula(ACell)) then begin Result := nil;
SetLength(Result, 0); if (ACell = nil) or (not HasFormula(ACell)) then
exit; exit;
end;
formula := FFormulas.FindFormula(ACell^.Row, ACell^.Col); formula := FFormulas.FindFormula(ACell^.Row, ACell^.Col);
if formula = nil then begin if formula = nil then
SetLength(Result, 0);
exit; exit;
end;
if ADestCell <> nil then begin if ADestCell <> nil then begin
formula^.Parser.PrepareCopyMode(ACell, ADestCell); formula^.Parser.PrepareCopyMode(ACell, ADestCell);
@ -3630,7 +3628,7 @@ function TsWorksheet.GetSelection: TsCellRangeArray;
var var
i: Integer; i: Integer;
begin begin
SetLength(Result, Length(FSelection)); SetLength(Result{%H-}, Length(FSelection));
for i:=0 to High(FSelection) do for i:=0 to High(FSelection) do
Result[i] := FSelection[i]; Result[i] := FSelection[i];
end; end;
@ -6398,7 +6396,7 @@ var
fmtIDs: TsSpreadformatIDArray; fmtIDs: TsSpreadformatIDArray;
i, j: Integer; i, j: Integer;
begin begin
SetLength(AFormatIDs, 0); AFormatIDs := nil;
if AStream = nil then if AStream = nil then
exit; exit;
@ -7314,7 +7312,7 @@ var
begin begin
Result := false; Result := false;
AWorksheet := nil; AWorksheet := nil;
SetLength(ARanges, 0); ARanges := nil;
if AText = '' then if AText = '' then
exit; exit;

View File

@ -76,7 +76,7 @@ var
clipbook: TsWorkbook; clipbook: TsWorkbook;
clipsheet: TsWorksheet; clipsheet: TsWorksheet;
sel: TsCellRange; sel: TsCellRange;
selArray: TsCellRangeArray; selArray: TsCellRangeArray = nil;
r, c: LongInt; r, c: LongInt;
dr, dc: LongInt; dr, dc: LongInt;
srcCell, destCell: PCell; srcCell, destCell: PCell;

View File

@ -1171,7 +1171,7 @@ begin
end; end;
end; end;
SetLength(Result, FList.Count); SetLength(Result{%H-}, FList.Count);
n := 0; n := 0;
for i := 0 to FList.Count-1 do for i := 0 to FList.Count-1 do
begin begin
@ -1205,7 +1205,7 @@ begin
FList.Exchange(0, idx); FList.Exchange(0, idx);
end; end;
SetLength(Result, FList.Count); SetLength(Result{%H-}, FList.Count);
n := 0; n := 0;
for i := 0 to FList.Count - 1 do for i := 0 to FList.Count - 1 do
begin begin

View File

@ -472,7 +472,7 @@ begin
end; end;
// Set array length of TsRPNFormula result // Set array length of TsRPNFormula result
SetLength(Result, n); SetLength(Result{%H-}, n);
// Copy FormulaElements to result and free temporary RPNItems // Copy FormulaElements to result and free temporary RPNItems
item := AItem; item := AItem;

View File

@ -491,7 +491,6 @@ var
p: Integer; p: Integer;
s: String; s: String;
f: TsRelFlags; f: TsRelFlags;
singleCell: Boolean = false;
begin begin
Result := True; Result := True;
@ -499,7 +498,6 @@ begin
p := pos(':', AStr); p := pos(':', AStr);
if p = 0 then //exit(false); if p = 0 then //exit(false);
begin begin
singleCell := true;
Result := ParseCellString(AStr, AFirstcellRow, AFirstCellCol, f); Result := ParseCellString(AStr, AFirstcellRow, AFirstCellCol, f);
if not Result then exit; if not Result then exit;
ALastCellRow := AFirstCellRow; ALastCellRow := AFirstCellRow;
@ -2355,7 +2353,7 @@ function RandomString(ALen: Integer): String;
var var
i: Integer; i: Integer;
begin begin
SetLength(Result, ALen); SetLength(Result{%H-}, ALen);
for i:=1 to ALen do for i:=1 to ALen do
Result[i] := char(Random(26) + ord('a')); Result[i] := char(Random(26) + ord('a'));
end; end;
@ -2411,6 +2409,7 @@ var
arr1, arr2: TStringArray; arr1, arr2: TStringArray;
i: Integer; i: Integer;
begin begin
ARichText := nil;
p := pos(SEPARATOR, AValue); p := pos(SEPARATOR, AValue);
if p = 0 then begin if p = 0 then begin
AText := AValue; AText := AValue;
@ -2438,6 +2437,7 @@ var
L: TStringList; L: TStringList;
i: Integer; i: Integer;
begin begin
Result := nil;
L := TStringList.Create; L := TStringList.Create;
try try
L.Delimiter := ADelimiter; L.Delimiter := ADelimiter;

View File

@ -113,7 +113,7 @@ procedure TVirtualLayer.SplitPath(const APath: UTF8String;const ASplittedPath: T
var var
j,k: integer; j,k: integer;
LB: integer; LB: integer;
Chunk: UTF8String; Chunk: UTF8String = '';
ChunkC: integer; ChunkC: integer;
begin begin
ASplittedPath.Clear; ASplittedPath.Clear;

View File

@ -559,7 +559,7 @@ var
lHeight: Word; lHeight: Word;
lOptions: Word; lOptions: Word;
Len: Byte; Len: Byte;
lFontName: UTF8String; lFontName: UTF8String = '';
isDefaultFont: Boolean; isDefaultFont: Boolean;
begin begin
FFont := TsFont.Create; FFont := TsFont.Create;
@ -613,7 +613,7 @@ end;*)
procedure TsSpreadBIFF2Reader.ReadFormat(AStream: TStream); procedure TsSpreadBIFF2Reader.ReadFormat(AStream: TStream);
var var
len: byte; len: byte;
fmtString: AnsiString; fmtString: AnsiString = '';
nfs: String; nfs: String;
begin begin
// number format string // number format string
@ -798,7 +798,7 @@ var
L: Byte; L: Byte;
ARow, ACol: Cardinal; ARow, ACol: Cardinal;
XF: Word; XF: Word;
ansiStr: ansistring; ansiStr: ansistring = '';
valueStr: UTF8String; valueStr: UTF8String;
cell: PCell; cell: PCell;
sheet: TsWorksheet; sheet: TsWorksheet;
@ -1099,7 +1099,7 @@ end;
procedure TsSpreadBIFF2Reader.ReadStringRecord(AStream: TStream); procedure TsSpreadBIFF2Reader.ReadStringRecord(AStream: TStream);
var var
len: Byte; len: Byte;
s: ansistring; s: ansistring = '';
begin begin
// The string is a byte-string with 8 bit length // The string is a byte-string with 8 bit length
len := AStream.ReadByte; len := AStream.ReadByte;
@ -1948,7 +1948,7 @@ var
len: Integer; len: Integer;
s: string; //ansistring; s: string; //ansistring;
rec: TNumFormatRecord; rec: TNumFormatRecord;
buf: array of byte; buf: array of byte = nil;
begin begin
Unused(AFormatIndex); Unused(AFormatIndex);
@ -2239,7 +2239,7 @@ var
L: Byte; L: Byte;
AnsiText: ansistring; AnsiText: ansistring;
rec: TBIFF2_LabelRecord; rec: TBIFF2_LabelRecord;
buf: array of byte; buf: array of byte = nil;
var var
xf: Word; xf: Word;
begin begin

View File

@ -397,7 +397,7 @@ end;
procedure TsSpreadBIFF5Reader.ReadBOUNDSHEET(AStream: TStream); procedure TsSpreadBIFF5Reader.ReadBOUNDSHEET(AStream: TStream);
var var
len: Byte; len: Byte;
s: AnsiString; s: AnsiString = '';
sheetState: Byte; sheetState: Byte;
sheet: TsWorksheet; sheet: TsWorksheet;
//sheetData: TsSheetData; //sheetData: TsSheetData;
@ -433,7 +433,7 @@ var
options: Word; options: Word;
len: byte; len: byte;
formulaSize: Word; formulaSize: Word;
ansistr: ansiString; ansistr: ansiString = '';
defName: String; defName: String;
rpnformula: TsRPNFormula; rpnformula: TsRPNFormula;
{%H-}extsheetIndex: Integer; {%H-}extsheetIndex: Integer;
@ -721,10 +721,10 @@ var
B: Byte; B: Byte;
ARow, ACol: Cardinal; ARow, ACol: Cardinal;
XF: Word; XF: Word;
ansistr: ansistring; ansistr: ansistring = '';
valueStr: UTF8String; valueStr: UTF8String;
cell: PCell; cell: PCell;
rtfRuns: TBiff5_RichTextFormattingRuns; rtfRuns: TBiff5_RichTextFormattingRuns = nil;
fntIndex: Integer; fntIndex: Integer;
fnt: TsFont; fnt: TsFont;
sheet: TsWorksheet; sheet: TsWorksheet;
@ -796,7 +796,7 @@ end;
procedure TsSpreadBIFF5Reader.ReadStringRecord(AStream: TStream); procedure TsSpreadBIFF5Reader.ReadStringRecord(AStream: TStream);
var var
len: Word; len: Word;
s: ansistring; s: ansistring = '';
begin begin
// The string is a byte-string with 16 bit length // The string is a byte-string with 16 bit length
len := WordLEToN(AStream.ReadWord); len := WordLEToN(AStream.ReadWord);
@ -1045,7 +1045,7 @@ var
lWeight: Word; lWeight: Word;
lEsc: Word; lEsc: Word;
Len: Byte; Len: Byte;
fontname: ansistring; fontname: ansistring = '';
font: TsFont; font: TsFont;
isDefaultFont: Boolean; isDefaultFont: Boolean;
begin begin
@ -1132,7 +1132,7 @@ procedure TsSpreadBIFF5Reader.ReadFormat(AStream: TStream);
var var
len: byte; len: byte;
fmtIndex: Integer; fmtIndex: Integer;
fmtString: AnsiString; fmtString: AnsiString = '';
nfs: String; nfs: String;
begin begin
// Record FORMAT, BIFF 8 (5.49): // Record FORMAT, BIFF 8 (5.49):
@ -1162,7 +1162,7 @@ var
ARow, ACol: Cardinal; ARow, ACol: Cardinal;
XF: WORD; XF: WORD;
cell: PCell; cell: PCell;
ansistr: ansistring; ansistr: ansistring = '';
valuestr: String; valuestr: String;
begin begin
rec.Row := 0; // to silence the compiler... rec.Row := 0; // to silence the compiler...
@ -1223,7 +1223,7 @@ end;
procedure TsSpreadBIFF5Writer.InternalWriteToStream(AStream: TStream); procedure TsSpreadBIFF5Writer.InternalWriteToStream(AStream: TStream);
var var
CurrentPos: Int64; CurrentPos: Int64;
sheetPos: array of Int64; sheetPos: array of Int64 = nil;
i: Integer; i: Integer;
pane: Byte; pane: Byte;
book: TsWorkbook; book: TsWorkbook;
@ -1769,7 +1769,7 @@ var
//fmtStr: String; //fmtStr: String;
ansiFmtStr: ansiString; ansiFmtStr: ansiString;
rec: TNumFormatRecord; rec: TNumFormatRecord;
buf: array of byte; buf: array of byte = nil;
begin begin
//fmtStr := NumFormatList.FormatStringForWriting(AListIndex); //fmtStr := NumFormatList.FormatStringForWriting(AListIndex);
ansiFmtStr := ConvertEncoding(ANumFormatStr, encodingUTF8, FCodePage); ansiFmtStr := ConvertEncoding(ANumFormatStr, encodingUTF8, FCodePage);
@ -1867,9 +1867,9 @@ var
L: Word; L: Word;
AnsiValue: ansistring; AnsiValue: ansistring;
rec: TBIFF5_LabelRecord; rec: TBIFF5_LabelRecord;
buf: array of byte;
i, nRuns: Integer; i, nRuns: Integer;
rtfRuns: TBIFF5_RichTextFormattingRuns; rtfRuns: TBIFF5_RichTextFormattingRuns = nil;
buf: array of byte = nil;
begin begin
if (ARow >= FLimitations.MaxRowCount) or (ACol >= FLimitations.MaxColCount) then if (ARow >= FLimitations.MaxRowCount) or (ACol >= FLimitations.MaxColCount) then
exit; exit;

View File

@ -967,13 +967,14 @@ function TsSpreadBIFF8Reader.ReadUnformattedWideString(const AStream: TStream;
const ALength: WORD): WideString; const ALength: WORD): WideString;
var var
flags: Byte; flags: Byte;
DecomprStrValue: WideString; DecomprStrValue: WideString = '';
i: Integer; i: Integer;
len: SizeInt; len: SizeInt;
recType: Word; recType: Word;
{%H-}recSize: Word; {%H-}recSize: Word;
C: WideChar; C: WideChar;
begin begin
Result := '';
flags := AStream.ReadByte; flags := AStream.ReadByte;
dec(PendingRecordSize); dec(PendingRecordSize);
if flags and 1 = 1 Then begin if flags and 1 = 1 Then begin
@ -1019,8 +1020,8 @@ function TsSpreadBIFF8Reader.ReadWideString(const AStream: TStream;
const ALength: WORD; out ARichTextParams: TsRichTextParams): WideString; const ALength: WORD; out ARichTextParams: TsRichTextParams): WideString;
var var
StringFlags: BYTE; StringFlags: BYTE;
DecomprStrValue: WideString; DecomprStrValue: WideString = '';
AnsiStrValue: ansistring; AnsiStrValue: ansistring = '';
RunsCounter: WORD; RunsCounter: WORD;
AsianPhoneticBytes: DWORD; AsianPhoneticBytes: DWORD;
rtf_dummy: TsRichTextParams; rtf_dummy: TsRichTextParams;
@ -1031,6 +1032,7 @@ var
recSize: WORD; recSize: WORD;
C: WideChar; C: WideChar;
begin begin
Result := '';
StringFlags := AStream.ReadByte; StringFlags := AStream.ReadByte;
Dec(PendingRecordSize); Dec(PendingRecordSize);
if StringFlags and 8 = 8 then begin if StringFlags and 8 = 8 then begin
@ -1698,7 +1700,7 @@ var
XF: Word; XF: Word;
wideStrValue: WideString; wideStrValue: WideString;
cell: PCell; cell: PCell;
rtfRuns: TBiff8_RichTextFormattingRuns; rtfRuns: TBiff8_RichTextFormattingRuns = nil;
fntIndex: Integer; fntIndex: Integer;
fnt: TsFont; fnt: TsFont;
book: TsWorkbook; book: TsWorkbook;
@ -1859,7 +1861,7 @@ var
cell: PCell; cell: PCell;
ms: TMemoryStream; ms: TMemoryStream;
i, n: Integer; i, n: Integer;
rtParams: TsRichTextParams; rtParams: TsRichTextParams = nil;
fnt: TsFont; fnt: TsFont;
fntIndex: Integer; fntIndex: Integer;
book: TsWorkbook; book: TsWorkbook;
@ -2432,13 +2434,13 @@ var
row, col, row1, col1, row2, col2: word; row, col, row1, col1, row2, col2: word;
guid: TGUID; guid: TGUID;
flags: DWord; flags: DWord;
widestr: widestring; widestr: widestring = '';
len: DWord; len: DWord;
link: String; link: String;
linkDos: String; linkDos: String;
mark: String; mark: String;
dirUpCount: Word; dirUpCount: Word;
ansistr: ansistring; ansistr: ansistring = '';
size: DWord; size: DWord;
begin begin
{ Row and column index range of cells using the hyperlink } { Row and column index range of cells using the hyperlink }
@ -2574,7 +2576,7 @@ end;
procedure TsSpreadBIFF8Reader.ReadHyperlinkToolTip(const AStream: TStream); procedure TsSpreadBIFF8Reader.ReadHyperlinkToolTip(const AStream: TStream);
var var
txt: String; txt: String;
widestr: widestring; widestr: widestring = '';
//row, col, //row, col,
row1, col1, row2, col2: Word; row1, col1, row2, col2: Word;
hyperlink: PsHyperlink; hyperlink: PsHyperlink;
@ -2770,7 +2772,7 @@ const
isBIFF8 = true; isBIFF8 = true;
var var
currentPos: Int64; currentPos: Int64;
sheetPos: array of Int64; sheetPos: array of Int64 = nil;
i: Integer; i: Integer;
pane: Byte; pane: Byte;
book: TsWorkbook; book: TsWorkbook;
@ -3503,7 +3505,7 @@ var
len: Integer; len: Integer;
ws: widestring; ws: widestring;
rec: TNumFormatRecord; rec: TNumFormatRecord;
buf: array of byte; buf: array of byte = nil;
begin begin
ws := UTF8Decode(ANumFormatStr); ws := UTF8Decode(ANumFormatStr);
len := Length(ws); len := Length(ws);
@ -3819,9 +3821,9 @@ var
WideStr: WideString; WideStr: WideString;
rec: TBIFF8_LabelRecord; rec: TBIFF8_LabelRecord;
recSST: TBIFF8_LabelSSTRecord; recSST: TBIFF8_LabelSSTRecord;
buf: array of byte; buf: array of byte = nil;
i, nRuns, idx: Integer; i, nRuns, idx: Integer;
rtfRuns: TBiff8_RichTextFormattingRuns; rtfRuns: TBiff8_RichTextFormattingRuns = nil;
begin begin
if (ARow >= FLimitations.MaxRowCount) or (ACol >= FLimitations.MaxColCount) then if (ARow >= FLimitations.MaxRowCount) or (ACol >= FLimitations.MaxColCount) then
exit; exit;
@ -4742,7 +4744,7 @@ procedure TsSpreadBIFF8Writer.WriteTXO(AStream: TStream; AComment: PsComment);
var var
recTXO: TBIFF8TXORecord; recTXO: TBIFF8TXORecord;
comment: widestring; comment: widestring;
compressed: ansistring; compressed: ansistring = '';
len: Integer; len: Integer;
wchar: widechar; wchar: widechar;
i: Integer; i: Integer;

View File

@ -1102,7 +1102,7 @@ var
i, n: Integer; i, n: Integer;
elem: TsFormulaElement; elem: TsFormulaElement;
begin begin
SetLength(Result, 0); Result := nil;
for i:=0 to Length(FFormula)-1 do begin for i:=0 to Length(FFormula)-1 do begin
n := Length(Result); n := Length(Result);
elem := FFormula[i]; elem := FFormula[i];
@ -1740,7 +1740,7 @@ var
rec: TBIFF25NoteRecord; rec: TBIFF25NoteRecord;
r, c: Cardinal; r, c: Cardinal;
n: Word; n: Word;
s: ansiString; s: ansiString = '';
List: TStringList; List: TStringList;
sheet: TsWorksheet; sheet: TsWorksheet;
begin begin
@ -1885,7 +1885,7 @@ procedure TsSpreadBIFFReader.ReadEXTERNSHEET(AStream: TStream;
AWorksheet: TsBasicWorksheet); AWorksheet: TsBasicWorksheet);
var var
len, b: Byte; len, b: Byte;
ansistr: AnsiString; ansistr: AnsiString = '';
s: String; s: String;
sheetlist: TsBIFFExternSheetList; sheetlist: TsBIFFExternSheetList;
begin begin
@ -2046,7 +2046,7 @@ end;
procedure TsSpreadBIFFReader.ReadHeaderFooter(AStream: TStream; procedure TsSpreadBIFFReader.ReadHeaderFooter(AStream: TStream;
AIsHeader: Boolean); AIsHeader: Boolean);
var var
s: ansistring; s: ansistring = '';
len: Byte; len: Byte;
begin begin
if RecordSize = 0 then if RecordSize = 0 then
@ -2094,7 +2094,7 @@ begin
n := WordLEToN(AStream.ReadWord); n := WordLEToN(AStream.ReadWord);
for i := 1 to n do begin for i := 1 to n do begin
AStream.ReadBuffer(rec, SizeOf(rec)); AStream.ReadBuffer(rec{%H-}, SizeOf(rec));
r := WordLEToN(rec.RowIndex); r := WordLEToN(rec.RowIndex);
TsWorksheet(AWorksheet).AddPageBreakToRow(r); TsWorksheet(AWorksheet).AddPageBreakToRow(r);
end; end;
@ -2790,6 +2790,7 @@ begin
dr2 := SmallInt(r2 and $3FFF) dr2 := SmallInt(r2 and $3FFF)
else else
dr2 := SmallInt($C000 or (r2 and $3FFF)); dr2 := SmallInt($C000 or (r2 and $3FFF));
ARowOffset2 := dr2;
// 1 byte for col1 and col2, each // 1 byte for col1 and col2, each
dc1 := ShortInt(AStream.ReadByte); dc1 := ShortInt(AStream.ReadByte);
@ -3341,7 +3342,7 @@ var
{%H-}rngIndex: Word; {%H-}rngIndex: Word;
actRow, actCol: Word; actRow, actCol: Word;
n, i: Integer; n, i: Integer;
sel: TsCellRangeArray; sel: TsCellRangeArray = nil;
begin begin
// Pane index // Pane index
paneIdx := AStream.ReadByte; paneIdx := AStream.ReadByte;
@ -3441,7 +3442,7 @@ end;
function TsSpreadBIFFReader.ReadString_8bitLen(AStream: TStream): String; function TsSpreadBIFFReader.ReadString_8bitLen(AStream: TStream): String;
var var
len: Byte; len: Byte;
s: ansistring; s: ansistring = '';
begin begin
len := AStream.ReadByte; len := AStream.ReadByte;
SetLength(s, len); SetLength(s, len);
@ -3493,7 +3494,7 @@ begin
n := WordLEToN(AStream.ReadWord); n := WordLEToN(AStream.ReadWord);
for i := 1 to n do begin for i := 1 to n do begin
AStream.ReadBuffer(rec, SizeOf(rec)); AStream.ReadBuffer(rec{%H-}, SizeOf(rec));
c := WordLEToN(rec.ColIndex); c := WordLEToN(rec.ColIndex);
TsWorksheet(AWorksheet).AddPageBreakToCol(c); TsWorksheet(AWorksheet).AddPageBreakToCol(c);
end; end;

View File

@ -341,8 +341,6 @@ begin
end; end;
function TryStrToCFCellBorder(s: String; out ABorder: TsCellBorder): Boolean; function TryStrToCFCellBorder(s: String; out ABorder: TsCellBorder): Boolean;
var
cb: TsCellBorder;
begin begin
Result := true; Result := true;
if s = 'border-left' then if s = 'border-left' then
@ -860,8 +858,8 @@ begin
// initialize parameters // initialize parameters
condition := -1; condition := -1;
range := fpsUtils.Range(Cardinal(-1), Cardinal(-1), Cardinal(-1), Cardinal(-1)); range := fpsUtils.Range(Cardinal(-1), Cardinal(-1), Cardinal(-1), Cardinal(-1));
VarClear(op1); VarClear(op1{%H-});
VarClear(op2); VarClear(op2{%H-});
bgColor := scNotDefined; bgColor := scNotDefined;
fgColor := scNotDefined; fgColor := scNotDefined;
fill := fsNoFill; fill := fsNoFill;
@ -1044,7 +1042,7 @@ begin
exit; exit;
end; end;
if condition = Cardinal(-1) then if condition = -1 then
begin begin
book.AddErrorMsg('No condition given in conditional format.'); book.AddErrorMsg('No condition given in conditional format.');
exit; exit;
@ -1392,7 +1390,6 @@ procedure TsSpreadExcelXMLReader.ReadPageBreak(ANode: TDOMNode;
AWorksheet: TsBasicWorksheet); AWorksheet: TsBasicWorksheet);
var var
sheet: TsWorksheet absolute AWorksheet; sheet: TsWorksheet absolute AWorksheet;
node: TDOMNode;
nodeName: String; nodeName: String;
s: String; s: String;
n: Integer; n: Integer;
@ -1422,8 +1419,6 @@ var
sheet: TsWorksheet absolute AWorksheet; sheet: TsWorksheet absolute AWorksheet;
nodeName: String; nodeName: String;
node: TDOMNode; node: TDOMNode;
child: TDOMNode;
s: String;
begin begin
while ANode <> nil do while ANode <> nil do
begin begin
@ -1524,7 +1519,6 @@ var
nodeName: String; nodeName: String;
s: String; s: String;
n: Integer; n: Integer;
x: Double;
begin begin
while ANode <> nil do begin while ANode <> nil do begin
nodeName := ANode.NodeName; nodeName := ANode.NodeName;
@ -2012,6 +2006,8 @@ procedure TsSpreadExcelXMLReader.ReadFromStream(AStream: TStream;
var var
doc: TXMLDocument; doc: TXMLDocument;
begin begin
Unused(APassword, AParams);
try try
ReadXMLStream(doc, AStream); ReadXMLStream(doc, AStream);
@ -2614,12 +2610,10 @@ procedure TsSpreadExcelXMLWriter.WriteConditionalFormatting(AStream: TStream;
AWorksheet: TsBasicWorksheet); AWorksheet: TsBasicWorksheet);
var var
book: TsWorkbook; book: TsWorkbook;
sheet: TsWorksheet;
cf: TsConditionalFormat; cf: TsConditionalFormat;
i: Integer; i: Integer;
begin begin
book := TsWorkbook(FWorkbook); book := TsWorkbook(FWorkbook);
sheet := TsWorksheet(AWorksheet);
for i := 0 to book.GetNumConditionalFormats-1 do for i := 0 to book.GetNumConditionalFormats-1 do
begin begin
cf := book.GetConditionalFormat(i); cf := book.GetConditionalFormat(i);
@ -2731,6 +2725,9 @@ var
xmlnsStr: String; xmlnsStr: String;
dataTagStr: String; dataTagStr: String;
begin begin
Unused(ARow);
Unused(ACol);
if ACell^.ContentType <> cctFormula then if ACell^.ContentType <> cctFormula then
raise Exception.Create('WriteFormula called for calculated cell.'); raise Exception.Create('WriteFormula called for calculated cell.');
@ -2873,9 +2870,9 @@ begin
if (RepeatedCols.FirstIndex <> UNASSIGNED_ROW_COL_INDEX) and if (RepeatedCols.FirstIndex <> UNASSIGNED_ROW_COL_INDEX) and
(RepeatedCols.LastIndex <> UNASSIGNED_ROW_COL_INDEX) (RepeatedCols.LastIndex <> UNASSIGNED_ROW_COL_INDEX)
then begin then begin
s := 'C' + IntToStr(RepeatedCols.FirstIndex + 1); s := 'C' + {%H-}IntToStr(RepeatedCols.FirstIndex + 1);
if RepeatedCols.FirstIndex <> RepeatedCols.LastIndex then if RepeatedCols.FirstIndex <> RepeatedCols.LastIndex then
s := s + ':C' + IntToStr(RepeatedCols.LastIndex + 1); s := s + ':C' + {%H-}IntToStr(RepeatedCols.LastIndex + 1);
s := sheet.Name + '!' + s; s := sheet.Name + '!' + s;
print_titles_str := s; print_titles_str := s;
end; end;
@ -2884,9 +2881,9 @@ begin
if (RepeatedRows.FirstIndex <> UNASSIGNED_ROW_COL_INDEX) and if (RepeatedRows.FirstIndex <> UNASSIGNED_ROW_COL_INDEX) and
(RepeatedRows.LastIndex <> UNASSIGNED_ROW_COL_INDEX) (RepeatedRows.LastIndex <> UNASSIGNED_ROW_COL_INDEX)
then begin then begin
s := 'R' + IntToStr(RepeatedRows.FirstIndex + 1); s := 'R' + {%H-}IntToStr(RepeatedRows.FirstIndex + 1);
if RepeatedRows.FirstIndex <> RepeatedRows.LastIndex then if RepeatedRows.FirstIndex <> RepeatedRows.LastIndex then
s := s + ':R' + IntToStr(RepeatedRows.LastIndex + 1); s := s + ':R' + {%H-}IntToStr(RepeatedRows.LastIndex + 1);
s := sheet.Name + '!' + s; s := sheet.Name + '!' + s;
if print_titles_str = '' then if print_titles_str = '' then
print_titles_str := s print_titles_str := s

View File

@ -59,7 +59,6 @@ type
FBorderList: TFPList; FBorderList: TFPList;
FHyperlinkList: TFPList; FHyperlinkList: TFPList;
FSharedFormulaBaseList: TFPList; FSharedFormulaBaseList: TFPList;
FDxfList: TFPList;
FPalette: TsPalette; FPalette: TsPalette;
FThemeColors: array of TsColor; FThemeColors: array of TsColor;
FLastRow, FLastCol: Cardinal; FLastRow, FLastCol: Cardinal;
@ -167,9 +166,9 @@ type
procedure WriteConditionalFormatCellRule(AStream: TStream; ARule: TsCFCellRule; procedure WriteConditionalFormatCellRule(AStream: TStream; ARule: TsCFCellRule;
ARange: TsCellRange; APriority: Integer); ARange: TsCellRange; APriority: Integer);
procedure WriteConditionalFormatColorRangeRule(AStream: TStream; ARule: TsCFColorRangeRule; procedure WriteConditionalFormatColorRangeRule(AStream: TStream; ARule: TsCFColorRangeRule;
const ARange: TsCellRange; APriority: Integer); APriority: Integer);
procedure WriteConditionalFormatDataBarRule(AStream: TStream; ARule: TsCFDatabarRule; procedure WriteConditionalFormatDataBarRule(AStream: TStream; ARule: TsCFDatabarRule;
const ARange: TsCellRange; APriority: Integer); APriority: Integer);
procedure WriteConditionalFormatRule(AStream: TStream; ARule: TsCFRule; procedure WriteConditionalFormatRule(AStream: TStream; ARule: TsCFRule;
const ARange: TsCellRange; var APriority: Integer); const ARange: TsCellRange; var APriority: Integer);
procedure WriteConditionalFormats(AStream: TStream; AWorksheet: TsBasicWorksheet); procedure WriteConditionalFormats(AStream: TStream; AWorksheet: TsBasicWorksheet);
@ -1271,7 +1270,7 @@ end;
procedure TsSpreadOOXMLReader.ReadCFAverage(ANode: TDOMNode; procedure TsSpreadOOXMLReader.ReadCFAverage(ANode: TDOMNode;
AWorksheet: TsBasicWorksheet; ARange: TsCellRange; AFormatIndex: Integer); AWorksheet: TsBasicWorksheet; ARange: TsCellRange; AFormatIndex: Integer);
var var
s, sStdDev, sEquAve, sAboveAve: String; sStdDev, sEquAve, sAboveAve: String;
condition: TsCFCondition; condition: TsCFCondition;
stdDev: Double; stdDev: Double;
sheet: TsWorksheet; sheet: TsWorksheet;
@ -1310,8 +1309,8 @@ procedure TsSpreadOOXMLReader.ReadCFCellFormat(ANode: TDOMNode;
AWorksheet: TsBasicWorksheet; ARange: TsCellRange; AFormatIndex: Integer); AWorksheet: TsBasicWorksheet; ARange: TsCellRange; AFormatIndex: Integer);
var var
nodeName: String; nodeName: String;
s, sType, sOp: String; sOp: String;
sFormula: Array of String; sFormula: Array of String = nil;
cf: TsCFCondition; cf: TsCFCondition;
found: Boolean; found: Boolean;
i: Integer; i: Integer;
@ -1319,7 +1318,7 @@ var
x: Double; x: Double;
r, c: Cardinal; r, c: Cardinal;
condition: TsCFCondition; condition: TsCFCondition;
values: array of Variant; values: array of Variant = nil;
sheet: TsWorksheet; sheet: TsWorksheet;
begin begin
sheet := TsWorksheet(AWorksheet); sheet := TsWorksheet(AWorksheet);
@ -2015,7 +2014,6 @@ var
nodeName: String; nodeName: String;
childNode: TDOMNode; childNode: TDOMNode;
pattNode: TDOMNode; pattNode: TDOMNode;
s: String;
fontStyles: TsFontStyles; fontStyles: TsFontStyles;
fontColor: TsColor; fontColor: TsColor;
bgColor: TsColor; bgColor: TsColor;
@ -2854,7 +2852,7 @@ var
nodename: String; nodename: String;
totaltxt, sval: String; totaltxt, sval: String;
fntIndex: Integer; fntIndex: Integer;
rtParams: TsRichTextParams; rtParams: TsRichTextParams = nil;
ms: TMemoryStream; ms: TMemoryStream;
fnt: TsFont; fnt: TsFont;
begin begin
@ -3787,10 +3785,9 @@ end;
procedure TsSpreadOOXMLWriter.ListAllDifferentialFormats; procedure TsSpreadOOXMLWriter.ListAllDifferentialFormats;
var var
book: TsWorkbook; book: TsWorkbook;
sheet: TsWorksheet;
n: Integer; n: Integer;
idx: Integer; idx: Integer;
i, j, k, r, d: Integer; j, k, d: Integer;
CF: TsConditionalFormat; CF: TsConditionalFormat;
rule: TsCFCellRule; rule: TsCFCellRule;
begin begin
@ -4157,7 +4154,7 @@ begin
end; end;
procedure TsSpreadOOXMLWriter.WriteConditionalFormatColorRangeRule(AStream: TStream; procedure TsSpreadOOXMLWriter.WriteConditionalFormatColorRangeRule(AStream: TStream;
ARule: TsCFColorRangeRule; const ARange: TsCellRange; APriority: Integer); ARule: TsCFColorRangeRule; APriority: Integer);
{ example: { example:
<cfRule type="colorScale" priority="3"> <cfRule type="colorScale" priority="3">
<colorScale> <colorScale>
@ -4189,7 +4186,7 @@ begin
end; end;
procedure TsSpreadOOXMLWriter.WriteConditionalFormatDatabarRule(AStream: TStream; procedure TsSpreadOOXMLWriter.WriteConditionalFormatDatabarRule(AStream: TStream;
ARule: TsCFDataBarRule; const ARange: TsCellRange; APriority: Integer); ARule: TsCFDataBarRule; APriority: Integer);
{ example from test file: { example from test file:
<cfRule type="dataBar" priority="1"> <cfRule type="dataBar" priority="1">
<dataBar> <dataBar>
@ -4225,10 +4222,10 @@ begin
WriteConditionalFormatCellRule(AStream, TsCFCellRule(ARule), ARange, APriority) WriteConditionalFormatCellRule(AStream, TsCFCellRule(ARule), ARange, APriority)
else else
if ARule is TsCFColorRangeRule then if ARule is TsCFColorRangeRule then
WriteConditionalFormatColorRangeRule(AStream, TsCFColorRangeRule(ARule), ARange, APriority) WriteConditionalFormatColorRangeRule(AStream, TsCFColorRangeRule(ARule), APriority)
else else
if ARule is TsCFDataBarRule then if ARule is TsCFDataBarRule then
WriteConditionalFormatDataBarRule(AStream, TsCFDataBarRule(ARule), ARange, APriority) WriteConditionalFormatDataBarRule(AStream, TsCFDataBarRule(ARule), APriority)
else else
exit; exit;
dec(APriority); dec(APriority);
@ -6135,7 +6132,6 @@ procedure TsSpreadOOXMLWriter.WriteDifferentialFormat(AStream: TStream;
var var
pt, bc, fc, diag: string; pt, bc, fc, diag: string;
font: TsFont;
begin begin
AppendToStream(AStream, AppendToStream(AStream,
'<dxf>'); '<dxf>');