You've already forked lazarus-ccr
fpspreadsheet: Add workaround for number format nfSci which is not supported by Open/LibreOffice
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3178 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -181,6 +181,16 @@ begin
|
||||
MyWorksheet.WriteNumber(row, 6, number6, nfExp, 3);
|
||||
MyWorksheet.WriteNumber(row, 7, number7, nfExp, 3);
|
||||
MyWorksheet.WriteNumber(row, 8, number8, nfExp, 3);
|
||||
inc(row);
|
||||
MyWorksheet.WriteUTF8Text(row, 0, 'nfSci, 2 decimals');
|
||||
MyWorksheet.WriteNumber(row, 1, number1, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 2, number2, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 3, number3, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 4, number4, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 5, number5, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 6, number6, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 7, number7, nfSci, 2);
|
||||
MyWorksheet.WriteNumber(row, 8, number8, nfSci, 2);
|
||||
|
||||
// Creates a new worksheet
|
||||
MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet 2');
|
||||
|
@ -332,6 +332,7 @@ var
|
||||
sStyleMap: String;
|
||||
ns: Integer;
|
||||
clr: TsColorvalue;
|
||||
el: Integer;
|
||||
begin
|
||||
Result := '';
|
||||
sGrouping := '';
|
||||
@ -401,7 +402,7 @@ begin
|
||||
end;
|
||||
|
||||
// nfExp
|
||||
if IsTokenAt(nftExpChar, ASection, next) then begin
|
||||
if (nf = nfFixed) and IsTokenAt(nftExpChar, ASection, next) then begin
|
||||
if (next + 2 < Length(Elements)) and
|
||||
IsTokenAt(nftExpSign, ASection, next+1) and
|
||||
IsTokenAt(nftExpDigits, ASection, next+2)
|
||||
@ -425,9 +426,39 @@ begin
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// nfSci: not supported by ods, use nfExp instead.
|
||||
el := 0;
|
||||
decs := 0;
|
||||
while el < Length(Elements) do begin
|
||||
case Elements[el].Token of
|
||||
nftDecs:
|
||||
decs := Elements[el].IntValue;
|
||||
nftExpChar:
|
||||
begin
|
||||
while el < Length(Elements) do begin
|
||||
if Elements[el].Token = nftExpDigits then begin
|
||||
expdig := Elements[el].IntValue;
|
||||
Result := AIndent +
|
||||
'<number:number-style style:name="' + AFormatName + '">' + LineEnding +
|
||||
sColor + AIndent +
|
||||
' <number:scientific-number number:decimal-places="' + IntToStr(decs) +'" '+
|
||||
'number:min-integer-digits="1" '+
|
||||
'number:min-exponent-digits="' + IntToStr(expdig) +'" />' +
|
||||
sStylemap + AIndent +
|
||||
'</number:number-style>';
|
||||
exit;
|
||||
end;
|
||||
inc(el);
|
||||
end;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
inc(el);
|
||||
end;
|
||||
|
||||
// ... more to follow...
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TsSpreadOpenDocReader }
|
||||
|
Reference in New Issue
Block a user