You've already forked lazarus-ccr
fpspreadsheet: Add test cases for Excel 2003/XML format. Not complete yet, some test failures.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7048 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -29,6 +29,7 @@ type
|
|||||||
{ TsSpreadExcelXMLReader }
|
{ TsSpreadExcelXMLReader }
|
||||||
TsSpreadExcelXMLReader = class(TsSpreadXMLReader)
|
TsSpreadExcelXMLReader = class(TsSpreadXMLReader)
|
||||||
private
|
private
|
||||||
|
FDateMode: TDateMode;
|
||||||
FPointSeparatorSettings: TFormatSettings;
|
FPointSeparatorSettings: TFormatSettings;
|
||||||
function ExtractDateTime(AText: String): TDateTime;
|
function ExtractDateTime(AText: String): TDateTime;
|
||||||
|
|
||||||
@@ -449,10 +450,11 @@ var
|
|||||||
err: TsErrorValue;
|
err: TsErrorValue;
|
||||||
cell: PCell;
|
cell: PCell;
|
||||||
fmt: TsCellFormat;
|
fmt: TsCellFormat;
|
||||||
|
nfp: TsNumFormatParams;
|
||||||
idx: Integer;
|
idx: Integer;
|
||||||
mergedCols, mergedRows: Integer;
|
mergedCols, mergedRows: Integer;
|
||||||
font: TsFont;
|
font: TsFont;
|
||||||
rtp: TsRichTextParams;
|
dt: TDateTime;
|
||||||
begin
|
begin
|
||||||
if ANode = nil then
|
if ANode = nil then
|
||||||
exit;
|
exit;
|
||||||
@@ -470,7 +472,7 @@ begin
|
|||||||
if idx <> -1 then begin
|
if idx <> -1 then begin
|
||||||
fmt := FCellFormatList.Items[idx]^;
|
fmt := FCellFormatList.Items[idx]^;
|
||||||
cell^.FormatIndex := book.AddCellFormat(fmt);
|
cell^.FormatIndex := book.AddCellFormat(fmt);
|
||||||
font := book.GetFont(fmt.FontIndex);;
|
font := book.GetFont(fmt.FontIndex);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -524,7 +526,15 @@ begin
|
|||||||
'Number':
|
'Number':
|
||||||
sheet.WriteNumber(cell, StrToFloat(sv, FPointSeparatorSettings));
|
sheet.WriteNumber(cell, StrToFloat(sv, FPointSeparatorSettings));
|
||||||
'DateTime':
|
'DateTime':
|
||||||
sheet.WriteDateTime(cell, ExtractDateTime(sv));
|
begin
|
||||||
|
dt := ExtractDateTime(sv);
|
||||||
|
if (cell^.FormatIndex > 0) then begin
|
||||||
|
nfp := TsWorkbook(FWorkbook).GetNumberFormat(fmt.NumberFormatIndex);
|
||||||
|
if not IsTimeIntervalFormat(nfp) then
|
||||||
|
dt := ConvertExcelDateTimeToDateTime(dt, FDateMode);
|
||||||
|
end;
|
||||||
|
sheet.WriteDateTime(cell, dt);
|
||||||
|
end;
|
||||||
'Boolean':
|
'Boolean':
|
||||||
if sv = '1' then
|
if sv = '1' then
|
||||||
sheet.WriteBoolValue(cell, true)
|
sheet.WriteBoolValue(cell, true)
|
||||||
@@ -616,7 +626,10 @@ begin
|
|||||||
s := ANode.TextContent;
|
s := ANode.TextContent;
|
||||||
if s = 'True' then
|
if s = 'True' then
|
||||||
FWorkbook.Protection := FWorkbook.Protection + [bpLockWindows];
|
FWorkbook.Protection := FWorkbook.Protection + [bpLockWindows];
|
||||||
end;
|
end else
|
||||||
|
if nodeName = 'Date1904' then
|
||||||
|
FDateMode := dm1904;
|
||||||
|
|
||||||
ANode := ANode.NextSibling;
|
ANode := ANode.NextSibling;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -761,12 +774,12 @@ procedure TsSpreadExcelXMLReader.ReadNames(ANode: TDOMNode;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
s, s1: String;
|
s: String;
|
||||||
nodeName: String;
|
nodeName: String;
|
||||||
sheet1, sheet2: String;
|
sheet1, sheet2: String;
|
||||||
r1, c1, r2, c2: Cardinal;
|
r1, c1, r2, c2: Cardinal;
|
||||||
flags: TsRelFlags;
|
flags: TsRelFlags;
|
||||||
p, q: Integer;
|
p: Integer;
|
||||||
begin
|
begin
|
||||||
while ANode <> nil do begin
|
while ANode <> nil do begin
|
||||||
nodeName := ANode.NodeName;
|
nodeName := ANode.NodeName;
|
||||||
@@ -811,8 +824,27 @@ begin
|
|||||||
|
|
||||||
s := GetAttrValue(ANode, 'ss:Format');
|
s := GetAttrValue(ANode, 'ss:Format');
|
||||||
case s of
|
case s of
|
||||||
'General':
|
'General': Exit;
|
||||||
exit;
|
'Standard':
|
||||||
|
begin
|
||||||
|
nf := nfFixedTh;
|
||||||
|
nfs := BuildNumberFormatString(nf, FWorkbook.FormatSettings, 2);
|
||||||
|
end;
|
||||||
|
'Fixed':
|
||||||
|
begin
|
||||||
|
nf := nfFixed;
|
||||||
|
nfs := BuildNumberFormatString(nf, FWorkbook.FormatSettings, 2);
|
||||||
|
end;
|
||||||
|
'Percent':
|
||||||
|
begin
|
||||||
|
nf := nfPercentage;
|
||||||
|
nfs := BuildNumberFormatString(nf, FWorkbook.FormatSettings, 2);
|
||||||
|
end;
|
||||||
|
'Scientific':
|
||||||
|
begin
|
||||||
|
nf := nfExp;
|
||||||
|
nfs := BuildNumberFormatString(nf, FWorkbook.FormatSettings);
|
||||||
|
end;
|
||||||
'Short Date':
|
'Short Date':
|
||||||
begin
|
begin
|
||||||
nf := nfShortDate;
|
nf := nfShortDate;
|
||||||
@@ -866,7 +898,6 @@ var
|
|||||||
nodeName: String;
|
nodeName: String;
|
||||||
fmt: TsCellFormat;
|
fmt: TsCellFormat;
|
||||||
s: String;
|
s: String;
|
||||||
id: Integer;
|
|
||||||
idx: Integer;
|
idx: Integer;
|
||||||
childNode: TDOMNode;
|
childNode: TDOMNode;
|
||||||
begin
|
begin
|
||||||
@@ -1064,8 +1095,6 @@ var
|
|||||||
n: Integer;
|
n: Integer;
|
||||||
hasFitToPage: Boolean = false;
|
hasFitToPage: Boolean = false;
|
||||||
c, r: Cardinal;
|
c, r: Cardinal;
|
||||||
r1, c1, r2, c2: Cardinal;
|
|
||||||
flags: TsRelFlags;
|
|
||||||
begin
|
begin
|
||||||
if ANode = nil then
|
if ANode = nil then
|
||||||
exit;
|
exit;
|
||||||
@@ -1391,7 +1420,11 @@ begin
|
|||||||
Result := '';
|
Result := '';
|
||||||
comment := (FWorksheet as TsWorksheet).FindComment(ACell);
|
comment := (FWorksheet as TsWorksheet).FindComment(ACell);
|
||||||
if Assigned(comment) then
|
if Assigned(comment) then
|
||||||
Result := INDENT1 + '<Comment><Data>' + comment^.Text + '</Data></Comment>' + LF + CELL_INDENT;
|
Result := INDENT1 +
|
||||||
|
'<Comment><Data>' +
|
||||||
|
UTF8TextToXMLText(comment^.Text) +
|
||||||
|
'</Data></Comment>' +
|
||||||
|
LF + CELL_INDENT;
|
||||||
// If there will be some rich-text-like formatting in the future, use
|
// If there will be some rich-text-like formatting in the future, use
|
||||||
// Result := '<Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40">'+comment^.Text+'</ss:Data></Comment>':
|
// Result := '<Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40">'+comment^.Text+'</ss:Data></Comment>':
|
||||||
end;
|
end;
|
||||||
@@ -1597,16 +1630,19 @@ var
|
|||||||
c, c1, c2: Cardinal;
|
c, c1, c2: Cardinal;
|
||||||
colwidthStr: String;
|
colwidthStr: String;
|
||||||
styleStr: String;
|
styleStr: String;
|
||||||
|
hiddenStr: String;
|
||||||
col: PCol;
|
col: PCol;
|
||||||
begin
|
begin
|
||||||
c1 := 0;
|
c1 := 0;
|
||||||
c2 := TsWorksheet(AWorksheet).GetLastColIndex;
|
c2 := TsWorksheet(AWorksheet).GetLastColIndex;
|
||||||
FPrevCol := -1;
|
FPrevCol := UNASSIGNED_ROW_COL_INDEX;
|
||||||
for c := c1 to c2 do
|
for c := c1 to c2 do
|
||||||
begin
|
begin
|
||||||
col := TsWorksheet(AWorksheet).FindCol(c);
|
col := TsWorksheet(AWorksheet).FindCol(c);
|
||||||
styleStr := '';
|
styleStr := '';
|
||||||
colWidthStr := '';
|
colWidthStr := '';
|
||||||
|
hiddenStr := '';
|
||||||
|
|
||||||
if Assigned(col) then
|
if Assigned(col) then
|
||||||
begin
|
begin
|
||||||
// column width is needed in pts.
|
// column width is needed in pts.
|
||||||
@@ -1618,9 +1654,13 @@ begin
|
|||||||
if col^.FormatIndex > 0 then
|
if col^.FormatIndex > 0 then
|
||||||
styleStr := GetStyleStr(col^.FormatIndex);
|
styleStr := GetStyleStr(col^.FormatIndex);
|
||||||
end;
|
end;
|
||||||
if (colWidthStr <> '') or (stylestr <> '') then begin
|
|
||||||
|
if TsWorksheet(AWorksheet).ColHidden(c) then
|
||||||
|
hiddenStr := ' ss:Hidden="1"';
|
||||||
|
|
||||||
|
if (colWidthStr <> '') or (stylestr <> '') or (hiddenstr <> '') then begin
|
||||||
AppendToStream(AStream, COL_INDENT + Format(
|
AppendToStream(AStream, COL_INDENT + Format(
|
||||||
'<Column%s%s%s />' + LF, [GetIndexStr(c, FPrevCol), colWidthStr, styleStr]));
|
'<Column%s%s%s%s />' + LF, [GetIndexStr(c, FPrevCol), colWidthStr, styleStr, hiddenStr]));
|
||||||
FPrevCol := c;
|
FPrevCol := c;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -1708,6 +1748,8 @@ end;
|
|||||||
|
|
||||||
procedure TsSpreadExcelXMLWriter.WriteLabel(AStream: TStream; const ARow,
|
procedure TsSpreadExcelXMLWriter.WriteLabel(AStream: TStream; const ARow,
|
||||||
ACol: Cardinal; const AValue: string; ACell: PCell);
|
ACol: Cardinal; const AValue: string; ACell: PCell);
|
||||||
|
const
|
||||||
|
MAXBYTES = 32767; // limit for this format
|
||||||
var
|
var
|
||||||
valueStr: String;
|
valueStr: String;
|
||||||
cctStr: String;
|
cctStr: String;
|
||||||
@@ -1715,14 +1757,31 @@ var
|
|||||||
dataTagStr: String;
|
dataTagStr: String;
|
||||||
p: Integer;
|
p: Integer;
|
||||||
tmp: String;
|
tmp: String;
|
||||||
ch:char;
|
ResultingValue: String;
|
||||||
begin
|
begin
|
||||||
|
// Office 2007-2010 (at least) supports no more characters in a cell;
|
||||||
|
if Length(AValue) > MAXBYTES then
|
||||||
|
begin
|
||||||
|
ResultingValue := Copy(AValue, 1, MAXBYTES); //may chop off multicodepoint UTF8 characters but well...
|
||||||
|
Workbook.AddErrorMsg(rsTruncateTooLongCellText, [
|
||||||
|
MAXBYTES, GetCellString(ARow, ACol)
|
||||||
|
]);
|
||||||
|
end else
|
||||||
|
resultingValue := AValue;
|
||||||
|
|
||||||
|
{ Check for invalid characters }
|
||||||
|
if not ValidXMLText(ResultingValue) then
|
||||||
|
Workbook.AddErrorMsg(
|
||||||
|
rsInvalidCharacterInCell, [
|
||||||
|
GetCellString(ARow, ACol)
|
||||||
|
]);
|
||||||
|
|
||||||
if Length(ACell^.RichTextParams) > 0 then
|
if Length(ACell^.RichTextParams) > 0 then
|
||||||
begin
|
begin
|
||||||
RichTextToHTML(
|
RichTextToHTML(
|
||||||
FWorkbook as TsWorkbook,
|
FWorkbook as TsWorkbook,
|
||||||
(FWorksheet as TsWorksheet).ReadCellFont(ACell),
|
(FWorksheet as TsWorksheet).ReadCellFont(ACell),
|
||||||
AValue,
|
ResultingValue,
|
||||||
ACell^.RichTextParams,
|
ACell^.RichTextParams,
|
||||||
valueStr, // html-formatted rich text
|
valueStr, // html-formatted rich text
|
||||||
'html:', tcProperCase
|
'html:', tcProperCase
|
||||||
@@ -1749,7 +1808,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
valueStr := AValue;
|
valueStr := ResultingValue;
|
||||||
if not ValidXMLText(valueStr, true, true) then
|
if not ValidXMLText(valueStr, true, true) then
|
||||||
Workbook.AddErrorMsg(
|
Workbook.AddErrorMsg(
|
||||||
rsInvalidCharacterInCell, [
|
rsInvalidCharacterInCell, [
|
||||||
@@ -1806,6 +1865,7 @@ var
|
|||||||
r, r1, r2: Cardinal;
|
r, r1, r2: Cardinal;
|
||||||
cell: PCell;
|
cell: PCell;
|
||||||
rowheightStr: String;
|
rowheightStr: String;
|
||||||
|
hiddenStr: String;
|
||||||
styleStr: String;
|
styleStr: String;
|
||||||
row: PRow;
|
row: PRow;
|
||||||
hasCells: Boolean;
|
hasCells: Boolean;
|
||||||
@@ -1816,11 +1876,12 @@ begin
|
|||||||
r2 := sheet.GetLastRowIndex;
|
r2 := sheet.GetLastRowIndex;
|
||||||
c2 := sheet.GetLastColIndex;
|
c2 := sheet.GetLastColIndex;
|
||||||
|
|
||||||
FPrevRow := -1;
|
FPrevRow := UNASSIGNED_ROW_COL_INDEX;
|
||||||
for r := r1 to r2 do
|
for r := r1 to r2 do
|
||||||
begin
|
begin
|
||||||
row := sheet.FindRow(r);
|
row := sheet.FindRow(r);
|
||||||
styleStr := '';
|
styleStr := '';
|
||||||
|
hiddenStr := '';
|
||||||
// Row height is needed in pts.
|
// Row height is needed in pts.
|
||||||
if Assigned(row) then
|
if Assigned(row) then
|
||||||
begin
|
begin
|
||||||
@@ -1837,6 +1898,9 @@ begin
|
|||||||
end else
|
end else
|
||||||
rowheightStr := ' ss:AutoFitHeight="1"';
|
rowheightStr := ' ss:AutoFitHeight="1"';
|
||||||
|
|
||||||
|
if sheet.RowHidden(r) then
|
||||||
|
hiddenStr := ' ss:Hidden="1"';
|
||||||
|
|
||||||
hasCells := false;
|
hasCells := false;
|
||||||
for c := c1 to c2 do begin
|
for c := c1 to c2 do begin
|
||||||
cell := sheet.FindCell(r, c);
|
cell := sheet.FindCell(r, c);
|
||||||
@@ -1847,7 +1911,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
AppendToStream(AStream, ROW_INDENT + Format(
|
AppendToStream(AStream, ROW_INDENT + Format(
|
||||||
'<Row%s%s%s', [GetIndexStr(r, FPrevRow), rowheightStr, styleStr]));
|
'<Row%s%s%s%s', [GetIndexStr(r, FPrevRow), rowheightStr, styleStr, hiddenStr]));
|
||||||
|
|
||||||
if hasCells then
|
if hasCells then
|
||||||
AppendToStream(AStream, '>' + LF)
|
AppendToStream(AStream, '>' + LF)
|
||||||
@@ -1856,7 +1920,7 @@ begin
|
|||||||
Continue;
|
Continue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FPrevCol := -1;
|
FPrevCol := UNASSIGNED_ROW_COL_INDEX;
|
||||||
for c := c1 to c2 do
|
for c := c1 to c2 do
|
||||||
begin
|
begin
|
||||||
cell := sheet.FindCell(r, c);
|
cell := sheet.FindCell(r, c);
|
||||||
@@ -2050,20 +2114,8 @@ end;
|
|||||||
procedure TsSpreadExcelXMLWriter.WriteTable(AStream: TStream;
|
procedure TsSpreadExcelXMLWriter.WriteTable(AStream: TStream;
|
||||||
AWorksheet: TsBasicWorksheet);
|
AWorksheet: TsBasicWorksheet);
|
||||||
var
|
var
|
||||||
c, c1, c2: Cardinal;
|
|
||||||
r, r1, r2: Cardinal;
|
|
||||||
cell: PCell;
|
|
||||||
rowheightStr: String;
|
|
||||||
colwidthStr: String;
|
|
||||||
styleStr: String;
|
|
||||||
col: PCol;
|
|
||||||
row: PRow;
|
|
||||||
sheet: TsWorksheet absolute AWorksheet;
|
sheet: TsWorksheet absolute AWorksheet;
|
||||||
begin
|
begin
|
||||||
r1 := 0;
|
|
||||||
c1 := 0;
|
|
||||||
r2 := sheet.GetLastRowIndex;
|
|
||||||
c2 := sheet.GetLastColIndex;
|
|
||||||
AppendToStream(AStream, TABLE_INDENT + Format(
|
AppendToStream(AStream, TABLE_INDENT + Format(
|
||||||
'<Table ss:ExpandedColumnCount="%d" ss:ExpandedRowCount="%d" ' +
|
'<Table ss:ExpandedColumnCount="%d" ss:ExpandedRowCount="%d" ' +
|
||||||
'x:FullColumns="1" x:FullRows="1" ' +
|
'x:FullColumns="1" x:FullRows="1" ' +
|
||||||
@@ -2145,6 +2197,7 @@ var
|
|||||||
marginStr: String;
|
marginStr: String;
|
||||||
selectedStr: String;
|
selectedStr: String;
|
||||||
protectStr: String;
|
protectStr: String;
|
||||||
|
visibleStr: String;
|
||||||
sheet: TsWorksheet absolute AWorksheet;
|
sheet: TsWorksheet absolute AWorksheet;
|
||||||
begin
|
begin
|
||||||
// Orientation, some PageLayout.Options
|
// Orientation, some PageLayout.Options
|
||||||
@@ -2165,18 +2218,27 @@ begin
|
|||||||
|
|
||||||
// Show/hide grid lines
|
// Show/hide grid lines
|
||||||
if not (soShowGridLines in AWorksheet.Options) then
|
if not (soShowGridLines in AWorksheet.Options) then
|
||||||
hideGridStr := INDENT3 + '<DoNotDisplayGridlines/>' + LF else
|
hideGridStr := INDENT3 + '<DoNotDisplayGridlines/>' + LF
|
||||||
|
else
|
||||||
hideGridStr := '';
|
hideGridStr := '';
|
||||||
|
|
||||||
// Show/hide column/row headers
|
// Show/hide column/row headers
|
||||||
if not (soShowHeaders in AWorksheet.Options) then
|
if not (soShowHeaders in AWorksheet.Options) then
|
||||||
hideHeadersStr := INDENT3 + '<DoNotDisplayHeadings/>' + LF else
|
hideHeadersStr := INDENT3 + '<DoNotDisplayHeadings/>' + LF
|
||||||
|
else
|
||||||
hideHeadersStr := '';
|
hideHeadersStr := '';
|
||||||
|
|
||||||
if (FWorkbook as TsWorkbook).ActiveWorksheet = AWorksheet then
|
if (FWorkbook as TsWorkbook).ActiveWorksheet = AWorksheet then
|
||||||
selectedStr := INDENT3 + '<Selected/>' + LF else
|
selectedStr := INDENT3 + '<Selected/>' + LF
|
||||||
|
else
|
||||||
selectedStr := '';
|
selectedStr := '';
|
||||||
|
|
||||||
|
// Visible
|
||||||
|
if (soHidden in AWorksheet.Options) then
|
||||||
|
visibleStr := INDENT3 + '<Visible>SheetHidden</Visible>' + LF
|
||||||
|
else
|
||||||
|
visibleStr := '';
|
||||||
|
|
||||||
// Frozen panes
|
// Frozen panes
|
||||||
frozenStr := GetFrozenPanesStr(AWorksheet, INDENT3);
|
frozenStr := GetFrozenPanesStr(AWorksheet, INDENT3);
|
||||||
|
|
||||||
@@ -2198,6 +2260,7 @@ begin
|
|||||||
footerStr +
|
footerStr +
|
||||||
marginStr + INDENT3 +
|
marginStr + INDENT3 +
|
||||||
'</PageSetup>' + LF +
|
'</PageSetup>' + LF +
|
||||||
|
visibleStr +
|
||||||
selectedStr +
|
selectedStr +
|
||||||
protectStr +
|
protectStr +
|
||||||
frozenStr +
|
frozenStr +
|
||||||
|
@@ -43,6 +43,9 @@ type
|
|||||||
// OOXML test cases
|
// OOXML test cases
|
||||||
procedure TestWriteRead_Bool_OOXML;
|
procedure TestWriteRead_Bool_OOXML;
|
||||||
|
|
||||||
|
// Excel2003/XML test cases
|
||||||
|
procedure TestWriteRead_Bool_XML;
|
||||||
|
|
||||||
// CSV test cases
|
// CSV test cases
|
||||||
procedure TestWriteRead_Bool_CSV;
|
procedure TestWriteRead_Bool_CSV;
|
||||||
end;
|
end;
|
||||||
@@ -191,6 +194,12 @@ begin
|
|||||||
TestWriteRead_Bool(sfOOXML);
|
TestWriteRead_Bool(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ XML }
|
||||||
|
procedure TSpreadWriteReadCellTypeTests.TestWriteRead_Bool_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Bool(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
{ CSV }
|
{ CSV }
|
||||||
procedure TSpreadWriteReadCellTypeTests.TestWriteRead_Bool_CSV;
|
procedure TSpreadWriteReadCellTypeTests.TestWriteRead_Bool_CSV;
|
||||||
begin
|
begin
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
|
{ Color tests
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
This unit tests writing out to and reading back from files.
|
||||||
|
}
|
||||||
|
|
||||||
unit colortests;
|
unit colortests;
|
||||||
|
|
||||||
{$mode objfpc}{$H+}
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
{ Color tests
|
|
||||||
This unit tests writing out to and reading back from files.
|
|
||||||
}
|
|
||||||
|
|
||||||
uses
|
uses
|
||||||
// Not using Lazarus package as the user may be working with multiple versions
|
// Not using Lazarus package as the user may be working with multiple versions
|
||||||
@@ -78,6 +80,18 @@ type
|
|||||||
procedure TestWriteRead_OOXML_Font_Biff5Pal; // official biff5 palette in BIFF8 file format
|
procedure TestWriteRead_OOXML_Font_Biff5Pal; // official biff5 palette in BIFF8 file format
|
||||||
procedure TestWriteRead_OOXML_Font_Biff8Pal; // official biff8 palette in BIFF8 file format
|
procedure TestWriteRead_OOXML_Font_Biff8Pal; // official biff8 palette in BIFF8 file format
|
||||||
procedure TestWriteRead_OOXML_Font_RandomPal; // palette 64, top 56 entries random
|
procedure TestWriteRead_OOXML_Font_RandomPal; // palette 64, top 56 entries random
|
||||||
|
|
||||||
|
{ Excel 2003/XML file format tests }
|
||||||
|
// Background colors...
|
||||||
|
procedure TestWriteRead_XML_Background_InternalPal; // internal palette
|
||||||
|
procedure TestWriteRead_XML_Background_Biff5Pal; // official biff5 palette
|
||||||
|
procedure TestWriteRead_XML_Background_Biff8Pal; // official biff8 palette
|
||||||
|
procedure TestWriteRead_XML_Background_RandomPal; // palette 64, top 56 entries random
|
||||||
|
// Font colors...
|
||||||
|
procedure TestWriteRead_XML_Font_InternalPal; // internal palette for BIFF8 file format
|
||||||
|
procedure TestWriteRead_XML_Font_Biff5Pal; // official biff5 palette in BIFF8 file format
|
||||||
|
procedure TestWriteRead_XML_Font_Biff8Pal; // official biff8 palette in BIFF8 file format
|
||||||
|
procedure TestWriteRead_XML_Font_RandomPal; // palette 64, top 56 entries random
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@@ -458,6 +472,48 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Tests for Excel 2003/XML file format }
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Background_InternalPal;
|
||||||
|
begin
|
||||||
|
TestWriteReadBackgroundColors(sfExcelXML, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Background_Biff5Pal;
|
||||||
|
begin
|
||||||
|
TestWriteReadBackgroundColors(sfExcelXML, 5);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Background_Biff8Pal;
|
||||||
|
begin
|
||||||
|
TestWriteReadBackgroundColors(sfExcelXML, 8);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Background_RandomPal;
|
||||||
|
begin
|
||||||
|
TestWriteReadBackgroundColors(sfExcelXML, 999);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Font_InternalPal;
|
||||||
|
begin
|
||||||
|
TestWriteReadFontColors(sfExcelXML, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Font_Biff5Pal;
|
||||||
|
begin
|
||||||
|
TestWriteReadFontColors(sfExcelXML, 5);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Font_Biff8Pal;
|
||||||
|
begin
|
||||||
|
TestWriteReadFontColors(sfExcelXML, 8);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadColorTests.TestWriteRead_XML_Font_RandomPal;
|
||||||
|
begin
|
||||||
|
TestWriteReadFontColors(sfExcelXML, 999);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterTest(TSpreadWriteReadColorTests);
|
RegisterTest(TSpreadWriteReadColorTests);
|
||||||
|
|
||||||
|
@@ -222,52 +222,58 @@ type
|
|||||||
procedure TestWriteRead_HideColDef_BIFF5;
|
procedure TestWriteRead_HideColDef_BIFF5;
|
||||||
procedure TestWriteRead_HideColDef_BIFF8;
|
procedure TestWriteRead_HideColDef_BIFF8;
|
||||||
procedure TestWriteRead_HideColDef_OOXML;
|
procedure TestWriteRead_HideColDef_OOXML;
|
||||||
|
procedure TestWriteRead_HideColDef_XML;
|
||||||
procedure TestWriteRead_HideColDef_ODS;
|
procedure TestWriteRead_HideColDef_ODS;
|
||||||
|
|
||||||
// Hide a row having default row height
|
// Hide a row having default row height
|
||||||
procedure TestWriteRead_HideRowDef_BIFF5;
|
procedure TestWriteRead_HideRowDef_BIFF5;
|
||||||
procedure TestWriteRead_HideRowDef_BIFF8;
|
procedure TestWriteRead_HideRowDef_BIFF8;
|
||||||
procedure TestWriteRead_HideRowDef_OOXML;
|
procedure TestWriteRead_HideRowDef_OOXML;
|
||||||
|
procedure TestWriteRead_HideRowDef_XML;
|
||||||
procedure TestWriteRead_HideRowDef_ODS;
|
procedure TestWriteRead_HideRowDef_ODS;
|
||||||
|
|
||||||
// Show a hidden column having default col width
|
// Show a hidden column having default col width
|
||||||
procedure TestWriteRead_ShowColDef_BIFF5;
|
procedure TestWriteRead_ShowColDef_BIFF5;
|
||||||
procedure TestWriteRead_ShowColDef_BIFF8;
|
procedure TestWriteRead_ShowColDef_BIFF8;
|
||||||
procedure TestWriteRead_ShowColDef_OOXML;
|
procedure TestWriteRead_ShowColDef_OOXML;
|
||||||
|
procedure TestWriteRead_ShowColDef_XML;
|
||||||
procedure TestWriteRead_ShowColDef_ODS;
|
procedure TestWriteRead_ShowColDef_ODS;
|
||||||
|
|
||||||
// Show a hidden row having default row height
|
// Show a hidden row having default row height
|
||||||
procedure TestWriteRead_ShowRowDef_BIFF5;
|
procedure TestWriteRead_ShowRowDef_BIFF5;
|
||||||
procedure TestWriteRead_ShowRowDef_BIFF8;
|
procedure TestWriteRead_ShowRowDef_BIFF8;
|
||||||
procedure TestWriteRead_ShowRowDef_OOXML;
|
procedure TestWriteRead_ShowRowDef_OOXML;
|
||||||
|
procedure TestWriteRead_ShowRowDef_XML;
|
||||||
procedure TestWriteRead_ShowRowDef_ODS;
|
procedure TestWriteRead_ShowRowDef_ODS;
|
||||||
|
|
||||||
|
|
||||||
// Hide a column
|
// Hide a column
|
||||||
procedure TestWriteRead_HideCol_BIFF5;
|
procedure TestWriteRead_HideCol_BIFF5;
|
||||||
procedure TestWriteRead_HideCol_BIFF8;
|
procedure TestWriteRead_HideCol_BIFF8;
|
||||||
procedure TestWriteRead_HideCol_OOXML;
|
procedure TestWriteRead_HideCol_OOXML;
|
||||||
|
procedure TestWriteRead_HideCol_XML;
|
||||||
procedure TestWriteRead_HideCol_ODS;
|
procedure TestWriteRead_HideCol_ODS;
|
||||||
|
|
||||||
// Hide a row
|
// Hide a row
|
||||||
procedure TestWriteRead_HideRow_BIFF5;
|
procedure TestWriteRead_HideRow_BIFF5;
|
||||||
procedure TestWriteRead_HideRow_BIFF8;
|
procedure TestWriteRead_HideRow_BIFF8;
|
||||||
procedure TestWriteRead_HideRow_OOXML;
|
procedure TestWriteRead_HideRow_OOXML;
|
||||||
|
procedure TestWriteRead_HideRow_XML;
|
||||||
procedure TestWriteRead_HideRow_ODS;
|
procedure TestWriteRead_HideRow_ODS;
|
||||||
|
|
||||||
// Show a hidden column
|
// Show a hidden column
|
||||||
procedure TestWriteRead_ShowCol_BIFF5;
|
procedure TestWriteRead_ShowCol_BIFF5;
|
||||||
procedure TestWriteRead_ShowCol_BIFF8;
|
procedure TestWriteRead_ShowCol_BIFF8;
|
||||||
procedure TestWriteRead_ShowCol_OOXML;
|
procedure TestWriteRead_ShowCol_OOXML;
|
||||||
|
procedure TestWriteRead_ShowCol_XML;
|
||||||
procedure TestWriteRead_ShowCol_ODS;
|
procedure TestWriteRead_ShowCol_ODS;
|
||||||
|
|
||||||
// Show a hidden row
|
// Show a hidden row
|
||||||
procedure TestWriteRead_ShowRow_BIFF5;
|
procedure TestWriteRead_ShowRow_BIFF5;
|
||||||
procedure TestWriteRead_ShowRow_BIFF8;
|
procedure TestWriteRead_ShowRow_BIFF8;
|
||||||
procedure TestWriteRead_ShowRow_OOXML;
|
procedure TestWriteRead_ShowRow_OOXML;
|
||||||
|
procedure TestWriteRead_ShowRow_XML;
|
||||||
procedure TestWriteRead_ShowRow_ODS;
|
procedure TestWriteRead_ShowRow_ODS;
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -1920,6 +1926,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, true, true, sfOOXML);
|
TestWriteRead_HideShowColRow(true, true, true, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(true, true, true, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, true, true, sfOpenDocument);
|
TestWriteRead_HideShowColRow(true, true, true, sfOpenDocument);
|
||||||
@@ -1938,6 +1948,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, true, true, sfOOXML);
|
TestWriteRead_HideShowColRow(false, true, true, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(false, true, true, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, true, true, sfOpenDocument);
|
TestWriteRead_HideShowColRow(false, true, true, sfOpenDocument);
|
||||||
@@ -1956,6 +1970,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, false, true, sfOOXML);
|
TestWriteRead_HideShowColRow(true, false, true, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(true, false, true, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, false, true, sfOpenDocument);
|
TestWriteRead_HideShowColRow(true, false, true, sfOpenDocument);
|
||||||
@@ -1974,6 +1992,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, false, true, sfOOXML);
|
TestWriteRead_HideShowColRow(false, false, true, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(false, false, true, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, false, true, sfOpenDocument);
|
TestWriteRead_HideShowColRow(false, false, true, sfOpenDocument);
|
||||||
@@ -1995,6 +2017,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, true, false, sfOOXML);
|
TestWriteRead_HideShowColRow(true, true, false, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(true, true, false, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, true, false, sfOpenDocument);
|
TestWriteRead_HideShowColRow(true, true, false, sfOpenDocument);
|
||||||
@@ -2013,6 +2039,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, true, false, sfOOXML);
|
TestWriteRead_HideShowColRow(false, true, false, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(false, true, false, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, true, false, sfOpenDocument);
|
TestWriteRead_HideShowColRow(false, true, false, sfOpenDocument);
|
||||||
@@ -2031,6 +2061,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, false, false, sfOOXML);
|
TestWriteRead_HideShowColRow(true, false, false, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(true, false, false, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(true, false, false, sfOpenDocument);
|
TestWriteRead_HideShowColRow(true, false, false, sfOpenDocument);
|
||||||
@@ -2049,6 +2083,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_OOXML;
|
|||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, false, false, sfOOXML);
|
TestWriteRead_HideShowColRow(false, false, false, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_XML;
|
||||||
|
begin
|
||||||
|
TestWriteRead_HideShowColRow(false, false, false, sfExcelXML);
|
||||||
|
end;
|
||||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_ODS;
|
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_ODS;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_HideShowColRow(false, false, false, sfOpenDocument);
|
TestWriteRead_HideShowColRow(false, false, false, sfOpenDocument);
|
||||||
|
@@ -60,6 +60,12 @@ type
|
|||||||
procedure TestWriteRead_OOXML_NonAscii_Comment;
|
procedure TestWriteRead_OOXML_NonAscii_Comment;
|
||||||
procedure TestWriteRead_OOXML_NonXMLChar_Comment;
|
procedure TestWriteRead_OOXML_NonXMLChar_Comment;
|
||||||
procedure TestWriteRead_OOXML_VeryLong_Comment;
|
procedure TestWriteRead_OOXML_VeryLong_Comment;
|
||||||
|
|
||||||
|
{ XML comment tests }
|
||||||
|
procedure TestWriteRead_XML_Standard_Comment;
|
||||||
|
procedure TestWriteRead_XML_NonAscii_Comment;
|
||||||
|
procedure TestWriteRead_XML_NonXMLChar_Comment;
|
||||||
|
procedure TestWriteRead_XML_VeryLong_Comment;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -284,6 +290,29 @@ begin
|
|||||||
TestWriteRead_Comment(sfOOXML, VERY_LONG_COMMENT);
|
TestWriteRead_Comment(sfOOXML, VERY_LONG_COMMENT);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Tests for Excel 2003/XML file format }
|
||||||
|
procedure TSpreadWriteReadCommentTests.TestWriteRead_XML_Standard_Comment;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Comment(sfExcelXML, STANDARD_COMMENT);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadCommentTests.TestWriteRead_XML_NonAscii_Comment;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Comment(sfExcelXML, COMMENT_UTF8);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadCommentTests.TestWriteRead_XML_NonXMLChar_Comment;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Comment(sfExcelXML, COMMENT_XML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadCommentTests.TestWriteRead_XML_VeryLong_Comment;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Comment(sfExcelXML, VERY_LONG_COMMENT);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterTest(TSpreadWriteReadCommentTests);
|
RegisterTest(TSpreadWriteReadCommentTests);
|
||||||
|
|
||||||
|
@@ -297,12 +297,14 @@ type
|
|||||||
procedure TestWriteReadDates_BIFF8;
|
procedure TestWriteReadDates_BIFF8;
|
||||||
procedure TestWriteReadDates_ODS;
|
procedure TestWriteReadDates_ODS;
|
||||||
procedure TestWriteReadDates_OOXML;
|
procedure TestWriteReadDates_OOXML;
|
||||||
|
procedure TestWriteReadDates_XML;
|
||||||
|
|
||||||
procedure TestWriteReadMilliseconds_BIFF2;
|
procedure TestWriteReadMilliseconds_BIFF2;
|
||||||
procedure TestWriteReadMilliseconds_BIFF5;
|
procedure TestWriteReadMilliseconds_BIFF5;
|
||||||
procedure TestWriteReadMilliseconds_BIFF8;
|
procedure TestWriteReadMilliseconds_BIFF8;
|
||||||
procedure TestWriteReadMilliseconds_ODS;
|
procedure TestWriteReadMilliseconds_ODS;
|
||||||
procedure TestWriteReadMilliseconds_OOXML;
|
procedure TestWriteReadMilliseconds_OOXML;
|
||||||
|
procedure TestWriteReadMilliseconds_XML;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@@ -565,6 +567,11 @@ begin
|
|||||||
TestWriteReadDates(sfOOXML);
|
TestWriteReadDates(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadDateTests.TestWriteReadDates_XML;
|
||||||
|
begin
|
||||||
|
TestWriteReadDates(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TSpreadReadDateTests }
|
{ TSpreadReadDateTests }
|
||||||
|
|
||||||
@@ -1815,6 +1822,11 @@ begin
|
|||||||
TestWriteReadMilliseconds(sfOOXML);
|
TestWriteReadMilliseconds(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadDateTests.TestWriteReadMilliseconds_XML;
|
||||||
|
begin
|
||||||
|
TestWriteReadMilliseconds(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
// Register so these tests are included in a full run
|
// Register so these tests are included in a full run
|
||||||
|
@@ -30,6 +30,7 @@ type
|
|||||||
procedure TestWriteErrorMessages_BIFF8;
|
procedure TestWriteErrorMessages_BIFF8;
|
||||||
procedure TestWriteErrorMessages_ODS;
|
procedure TestWriteErrorMessages_ODS;
|
||||||
procedure TestWriteErrorMessages_OOXML;
|
procedure TestWriteErrorMessages_OOXML;
|
||||||
|
procedure TestWriteErrorMessages_XML;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -253,6 +254,11 @@ begin
|
|||||||
TestWriteErrorMessages(sfOOXML);
|
TestWriteErrorMessages(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadErrorTests.TestWriteErrorMessages_XML;
|
||||||
|
begin
|
||||||
|
TestWriteErrorMessages(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
// Register so these tests are included in a full run
|
// Register so these tests are included in a full run
|
||||||
|
@@ -154,6 +154,20 @@ type
|
|||||||
procedure TestWriteRead_OOXML_WordWrap;
|
procedure TestWriteRead_OOXML_WordWrap;
|
||||||
procedure TestWriteRead_OOXML_FormatStrings;
|
procedure TestWriteRead_OOXML_FormatStrings;
|
||||||
|
|
||||||
|
{ Excel 2003/XML Tests }
|
||||||
|
procedure TestWriteRead_XML_Alignment;
|
||||||
|
procedure TestWriteRead_XML_Background;
|
||||||
|
procedure TestWriteRead_XML_Border;
|
||||||
|
procedure TestWriteRead_XML_BorderStyles;
|
||||||
|
procedure TestWriteRead_XML_ColWidths;
|
||||||
|
procedure TestWriteRead_XML_RowHeights;
|
||||||
|
procedure TestWriteRead_XML_DateTimeFormats;
|
||||||
|
procedure TestWriteRead_XML_MergedCells;
|
||||||
|
procedure TestWriteRead_XML_NumberFormats;
|
||||||
|
procedure TestWriteRead_XML_TextRotation;
|
||||||
|
procedure TestWriteRead_XML_WordWrap;
|
||||||
|
procedure TestWriteRead_XML_FormatStrings;
|
||||||
|
|
||||||
{ CSV Tests }
|
{ CSV Tests }
|
||||||
procedure TestWriteRead_CSV_DateTimeFormats;
|
procedure TestWriteRead_CSV_DateTimeFormats;
|
||||||
procedure TestWriteRead_CSV_NumberFormats_0;
|
procedure TestWriteRead_CSV_NumberFormats_0;
|
||||||
@@ -458,6 +472,11 @@ begin
|
|||||||
TestWriteRead_NumberFormats(sfOOXML);
|
TestWriteRead_NumberFormats(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_NumberFormats;
|
||||||
|
begin
|
||||||
|
TestWriteRead_NumberFormats(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_CSV_NumberFormats_0;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_CSV_NumberFormats_0;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_NumberFormats(sfCSV, 0);
|
TestWriteRead_NumberFormats(sfCSV, 0);
|
||||||
@@ -565,6 +584,11 @@ begin
|
|||||||
TestWriteRead_DateTimeFormats(sfOOXML);
|
TestWriteRead_DateTimeFormats(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_DateTimeFormats;
|
||||||
|
begin
|
||||||
|
TestWriteRead_DateTimeFormats(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_CSV_DateTimeFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_CSV_DateTimeFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_DateTimeFormats(sfCSV);
|
TestWriteRead_DateTimeFormats(sfCSV);
|
||||||
@@ -721,6 +745,11 @@ begin
|
|||||||
TestWriteRead_Alignment(sfOOXML);
|
TestWriteRead_Alignment(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Alignment;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Alignment(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ This test writes in column A the names of the Background.Styles, in column B
|
{ This test writes in column A the names of the Background.Styles, in column B
|
||||||
the background fill with a specific pattern and background color, in column C
|
the background fill with a specific pattern and background color, in column C
|
||||||
@@ -846,6 +875,11 @@ begin
|
|||||||
TestWriteRead_Background(sfOOXML);
|
TestWriteRead_Background(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Background;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Background(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Border on/off tests --- }
|
{ --- Border on/off tests --- }
|
||||||
|
|
||||||
@@ -953,6 +987,11 @@ begin
|
|||||||
TestWriteRead_Border(sfOOXML);
|
TestWriteRead_Border(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Border;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Border(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- BorderStyle tests --- }
|
{ --- BorderStyle tests --- }
|
||||||
|
|
||||||
@@ -1101,6 +1140,11 @@ begin
|
|||||||
TestWriteRead_BorderStyles(sfOOXML);
|
TestWriteRead_BorderStyles(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_BorderStyles;
|
||||||
|
begin
|
||||||
|
TestWriteRead_BorderStyles(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Column widths tests --- }
|
{ --- Column widths tests --- }
|
||||||
|
|
||||||
@@ -1186,6 +1230,11 @@ begin
|
|||||||
TestWriteRead_ColWidths(sfOOXML);
|
TestWriteRead_ColWidths(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_ColWidths;
|
||||||
|
begin
|
||||||
|
TestWriteRead_ColWidths(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Row height tests --- }
|
{ --- Row height tests --- }
|
||||||
|
|
||||||
@@ -1275,6 +1324,11 @@ begin
|
|||||||
TestWriteRead_RowHeights(sfOOXML);
|
TestWriteRead_RowHeights(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_RowHeights;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RowHeights(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Text rotation tests --- }
|
{ --- Text rotation tests --- }
|
||||||
|
|
||||||
@@ -1360,6 +1414,11 @@ begin
|
|||||||
TestWriteRead_TextRotation(sfOOXML);
|
TestWriteRead_TextRotation(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_TextRotation;
|
||||||
|
begin
|
||||||
|
TestWriteRead_TextRotation(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Wordwrap tests --- }
|
{ --- Wordwrap tests --- }
|
||||||
|
|
||||||
@@ -1447,6 +1506,11 @@ begin
|
|||||||
TestWriteRead_Wordwrap(sfOOXML);
|
TestWriteRead_Wordwrap(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Wordwrap;
|
||||||
|
begin
|
||||||
|
TestWriteRead_Wordwrap(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Merged tests --- }
|
{ --- Merged tests --- }
|
||||||
|
|
||||||
@@ -1601,6 +1665,12 @@ begin
|
|||||||
TestWriteRead_MergedCells(sfOOXML);
|
TestWriteRead_MergedCells(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_MergedCells;
|
||||||
|
begin
|
||||||
|
TestWriteRead_MergedCells(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ If a biff2 file contains more than 62 XF records the XF record index is stored
|
{ If a biff2 file contains more than 62 XF records the XF record index is stored
|
||||||
in a separats IXFE record. This is tested here. }
|
in a separats IXFE record. This is tested here. }
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ManyXF(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ManyXF(AFormat: TsSpreadsheetFormat);
|
||||||
@@ -1757,6 +1827,11 @@ begin
|
|||||||
TestWriteRead_FormatStrings(sfOOXML);
|
TestWriteRead_FormatStrings(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_FormatStrings;
|
||||||
|
begin
|
||||||
|
TestWriteRead_FormatStrings(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_FormatStrings;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_FormatStrings;
|
||||||
begin
|
begin
|
||||||
TestWriteRead_FormatStrings(sfOpenDocument);
|
TestWriteRead_FormatStrings(sfOpenDocument);
|
||||||
|
@@ -94,6 +94,20 @@ type
|
|||||||
procedure TestWriteRead_OOXML_Panes_None;
|
procedure TestWriteRead_OOXML_Panes_None;
|
||||||
|
|
||||||
procedure TestWriteRead_OOXML_HiddenSheet;
|
procedure TestWriteRead_OOXML_HiddenSheet;
|
||||||
|
|
||||||
|
{ Excel 2003/XML tests }
|
||||||
|
procedure TestWriteRead_XML_ShowGridLines_ShowHeaders;
|
||||||
|
procedure TestWriteRead_XML_ShowGridLines_HideHeaders;
|
||||||
|
procedure TestWriteRead_XML_HideGridLines_ShowHeaders;
|
||||||
|
procedure TestWriteRead_XML_HideGridLines_HideHeaders;
|
||||||
|
|
||||||
|
procedure TestWriteRead_XML_Panes_HorVert;
|
||||||
|
procedure TestWriteRead_XML_Panes_Hor;
|
||||||
|
procedure TestWriteRead_XML_Panes_Vert;
|
||||||
|
procedure TestWriteRead_XML_Panes_None;
|
||||||
|
|
||||||
|
procedure TestWriteRead_XML_HiddenSheet;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -272,6 +286,28 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Tests for Excel2003/XML grid lines and/or headers }
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_ShowGridLines_ShowHeaders;
|
||||||
|
begin
|
||||||
|
TestWriteReadGridHeaders(sfExcelXML, true, true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_ShowGridLines_HideHeaders;
|
||||||
|
begin
|
||||||
|
TestWriteReadGridHeaders(sfExcelXML, true, false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_HideGridLines_ShowHeaders;
|
||||||
|
begin
|
||||||
|
TestWriteReadGridHeaders(sfExcelXML, false, true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_HideGridLines_HideHeaders;
|
||||||
|
begin
|
||||||
|
TestWriteReadGridHeaders(sfExcelXML, false, false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ Test for frozen panes }
|
{ Test for frozen panes }
|
||||||
|
|
||||||
procedure TSpreadWriteReadOptionsTests.TestWriteReadPanes(AFormat: TsSpreadsheetFormat;
|
procedure TSpreadWriteReadOptionsTests.TestWriteReadPanes(AFormat: TsSpreadsheetFormat;
|
||||||
@@ -431,6 +467,28 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Tests for Excel 2003/XML frozen panes }
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_Panes_HorVert;
|
||||||
|
begin
|
||||||
|
TestWriteReadPanes(sfExcelXML, 1, 2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_Panes_Hor;
|
||||||
|
begin
|
||||||
|
TestWriteReadPanes(sfExcelXML, 1, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_Panes_Vert;
|
||||||
|
begin
|
||||||
|
TestWriteReadPanes(sfExcelXML, 0, 2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_Panes_None;
|
||||||
|
begin
|
||||||
|
TestWriteReadPanes(sfExcelXML, 0, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TSpreadWriteReadOptionsTests.TestWriteReadHiddenSheet(
|
procedure TSpreadWriteReadOptionsTests.TestWriteReadHiddenSheet(
|
||||||
AFormat: TsSpreadsheetFormat);
|
AFormat: TsSpreadsheetFormat);
|
||||||
const
|
const
|
||||||
@@ -491,6 +549,11 @@ begin
|
|||||||
TestWriteReadHiddenSheet(sfOpenDocument);
|
TestWriteReadHiddenSheet(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_HiddenSheet;
|
||||||
|
begin
|
||||||
|
TestWriteReadHiddenSheet(sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterTest(TSpreadWriteReadOptionsTests);
|
RegisterTest(TSpreadWriteReadOptionsTests);
|
||||||
|
@@ -35,12 +35,14 @@ type
|
|||||||
procedure AddConst_BIFF5;
|
procedure AddConst_BIFF5;
|
||||||
procedure AddConst_BIFF8;
|
procedure AddConst_BIFF8;
|
||||||
procedure AddConst_OOXML;
|
procedure AddConst_OOXML;
|
||||||
|
procedure AddConst_XML;
|
||||||
procedure AddConst_ODS;
|
procedure AddConst_ODS;
|
||||||
|
|
||||||
procedure AddCells_BIFF2;
|
procedure AddCells_BIFF2;
|
||||||
procedure AddCells_BIFF5;
|
procedure AddCells_BIFF5;
|
||||||
procedure AddCells_BIFF8;
|
procedure AddCells_BIFF8;
|
||||||
procedure AddCells_OOXML;
|
procedure AddCells_OOXML;
|
||||||
|
procedure AddCells_XML;
|
||||||
procedure AddCells_ODS;
|
procedure AddCells_ODS;
|
||||||
|
|
||||||
procedure RoundConst1_ODS;
|
procedure RoundConst1_ODS;
|
||||||
@@ -66,16 +68,19 @@ type
|
|||||||
procedure SumRange_BIFF5;
|
procedure SumRange_BIFF5;
|
||||||
procedure SumRange_BIFF8;
|
procedure SumRange_BIFF8;
|
||||||
procedure SumRange_OOXML;
|
procedure SumRange_OOXML;
|
||||||
|
procedure SumRange_XML;
|
||||||
procedure SumRange_ODS;
|
procedure SumRange_ODS;
|
||||||
|
|
||||||
procedure SumSheetRange_BIFF5; // no 3d ranges for BIFF2
|
procedure SumSheetRange_BIFF5; // no 3d ranges for BIFF2
|
||||||
procedure SumSheetRange_BIFF8;
|
procedure SumSheetRange_BIFF8;
|
||||||
procedure SumSheetRange_OOXML;
|
procedure SumSheetRange_OOXML;
|
||||||
|
procedure SumSheetRange_XML;
|
||||||
procedure SumSheetRange_ODS;
|
procedure SumSheetRange_ODS;
|
||||||
|
|
||||||
procedure SumMultiSheetRange_BIFF5;
|
procedure SumMultiSheetRange_BIFF5;
|
||||||
procedure SumMultiSheetRange_BIFF8;
|
procedure SumMultiSheetRange_BIFF8;
|
||||||
procedure SumMultiSheetRange_OOXML;
|
procedure SumMultiSheetRange_OOXML;
|
||||||
|
procedure SumMultiSheetRange_XML;
|
||||||
procedure SumMultiSheetRange_ODS;
|
procedure SumMultiSheetRange_ODS;
|
||||||
|
|
||||||
procedure SumMultiSheetRange_FlippedCells_BIFF8;
|
procedure SumMultiSheetRange_FlippedCells_BIFF8;
|
||||||
@@ -86,6 +91,7 @@ type
|
|||||||
|
|
||||||
procedure IfConst_BIFF8;
|
procedure IfConst_BIFF8;
|
||||||
procedure IfConst_OOXML;
|
procedure IfConst_OOXML;
|
||||||
|
procedure IfConst_XML;
|
||||||
procedure IfConst_ODS;
|
procedure IfConst_ODS;
|
||||||
|
|
||||||
procedure IfConst_BIFF8_2;
|
procedure IfConst_BIFF8_2;
|
||||||
@@ -104,11 +110,13 @@ type
|
|||||||
procedure NonExistantSheet_BIFF5;
|
procedure NonExistantSheet_BIFF5;
|
||||||
procedure NonExistantSheet_BIFF8;
|
procedure NonExistantSheet_BIFF8;
|
||||||
procedure NonExistantSheet_OOXML;
|
procedure NonExistantSheet_OOXML;
|
||||||
|
procedure NonExistantSheet_XML;
|
||||||
procedure NonExistantSheet_ODS;
|
procedure NonExistantSheet_ODS;
|
||||||
|
|
||||||
procedure NonExistantSheetRange_BIFF5;
|
procedure NonExistantSheetRange_BIFF5;
|
||||||
procedure NonExistantSheetRange_BIFF8;
|
procedure NonExistantSheetRange_BIFF8;
|
||||||
procedure NonExistantSheetRange_OOXML;
|
procedure NonExistantSheetRange_OOXML;
|
||||||
|
procedure NonExistantSheetRange_XML;
|
||||||
procedure NonExistantSheetRange_ODS;
|
procedure NonExistantSheetRange_ODS;
|
||||||
|
|
||||||
procedure RenameWorksheet_Single;
|
procedure RenameWorksheet_Single;
|
||||||
@@ -314,6 +322,11 @@ begin
|
|||||||
TestFormula('1+1', '2', ftkConstants, sfOOXML);
|
TestFormula('1+1', '2', ftkConstants, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.AddConst_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('1+1', '2', ftkConstants, sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.AddConst_ODS;
|
procedure TSpreadSingleFormulaTests.AddConst_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('1+1', '2', ftkConstants, sfOpenDocument);
|
TestFormula('1+1', '2', ftkConstants, sfOpenDocument);
|
||||||
@@ -341,6 +354,11 @@ begin
|
|||||||
TestFormula('C3+C4', '-1', ftkCells, sfOOXML);
|
TestFormula('C3+C4', '-1', ftkCells, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.AddCells_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('C3+C4', '-1', ftkCells, sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.AddCells_ODS;
|
procedure TSpreadSingleFormulaTests.AddCells_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('C3+C4', '-1', ftkCells, sfOpenDocument);
|
TestFormula('C3+C4', '-1', ftkCells, sfOpenDocument);
|
||||||
@@ -472,6 +490,11 @@ begin
|
|||||||
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfOOXML);
|
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.SumRange_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.SumRange_ODS;
|
procedure TSpreadSingleFormulaTests.SumRange_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfOpenDocument);
|
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfOpenDocument);
|
||||||
@@ -494,6 +517,11 @@ begin
|
|||||||
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfOOXML);
|
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.SumSheetRange_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.SumSheetRange_ODS;
|
procedure TSpreadSingleFormulaTests.SumSheetRange_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfOpenDocument);
|
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfOpenDocument);
|
||||||
@@ -516,6 +544,11 @@ begin
|
|||||||
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfOOXML);
|
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.SumMultiSheetRange_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.SumMultiSheetRange_ODS;
|
procedure TSpreadSingleFormulaTests.SumMultiSheetRange_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfOpenDocument);
|
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfOpenDocument);
|
||||||
@@ -564,6 +597,11 @@ begin
|
|||||||
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfOOXML);
|
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.IfConst_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfExcelXML);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.IfConst_ODS;
|
procedure TSpreadSingleFormulaTests.IfConst_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfOpenDocument);
|
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfOpenDocument);
|
||||||
@@ -637,6 +675,11 @@ begin
|
|||||||
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfOOXML, '#REF!');
|
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfOOXML, '#REF!');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.NonExistantSheet_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfExcelXML, '#REF!');
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.NonExistantSheet_ODS;
|
procedure TSpreadSingleFormulaTests.NonExistantSheet_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfOpenDocument, '#REF!');
|
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfOpenDocument, '#REF!');
|
||||||
@@ -659,6 +702,11 @@ begin
|
|||||||
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfOOXML, 'SUM(#REF!)');
|
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfOOXML, 'SUM(#REF!)');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadSingleFormulaTests.NonExistantSheetRange_XML;
|
||||||
|
begin
|
||||||
|
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfExcelXML, 'SUM(#REF!)');
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSpreadSingleFormulaTests.NonExistantSheetRange_ODS;
|
procedure TSpreadSingleFormulaTests.NonExistantSheetRange_ODS;
|
||||||
begin
|
begin
|
||||||
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfOpenDocument, 'SUM(#REF!)');
|
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfOpenDocument, 'SUM(#REF!)');
|
||||||
|
@@ -94,6 +94,20 @@ type
|
|||||||
procedure TestReadOOXMLString12;
|
procedure TestReadOOXMLString12;
|
||||||
procedure TestReadOOXMLString13;
|
procedure TestReadOOXMLString13;
|
||||||
|
|
||||||
|
procedure TestReadXMLString0; //Excel2003/XML format empty string
|
||||||
|
procedure TestReadXMLString1;
|
||||||
|
procedure TestReadXMLString2;
|
||||||
|
procedure TestReadXMLString3;
|
||||||
|
procedure TestReadXMLString4;
|
||||||
|
procedure TestReadXMLString5;
|
||||||
|
procedure TestReadXMLString6;
|
||||||
|
procedure TestReadXMLString7;
|
||||||
|
procedure TestReadXMLString8;
|
||||||
|
procedure TestReadXMLString9;
|
||||||
|
procedure TestReadXMLString10;
|
||||||
|
procedure TestReadXMLString11;
|
||||||
|
procedure TestReadXMLString12;
|
||||||
|
procedure TestReadXMLString13;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TSpreadWriteReadStringTests }
|
{ TSpreadWriteReadStringTests }
|
||||||
@@ -340,6 +354,7 @@ begin
|
|||||||
case Uppercase(ExtractFileExt(FileName)) of
|
case Uppercase(ExtractFileExt(FileName)) of
|
||||||
'.XLSX': AFormat := sfOOXML;
|
'.XLSX': AFormat := sfOOXML;
|
||||||
'.ODS' : AFormat := sfOpenDocument;
|
'.ODS' : AFormat := sfOpenDocument;
|
||||||
|
'.XML' : AFormat := sfExcelXML;
|
||||||
else AFormat := sfExcel8;
|
else AFormat := sfExcel8;
|
||||||
end;
|
end;
|
||||||
TestWorkbook.ReadFromFile(FileName, AFormat);
|
TestWorkbook.ReadFromFile(FileName, AFormat);
|
||||||
@@ -511,7 +526,7 @@ begin
|
|||||||
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,13);
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,13);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ ODF Tests }
|
{ Excel XLSX Tests }
|
||||||
procedure TSpreadReadStringTests.TestReadOOXMLString0;
|
procedure TSpreadReadStringTests.TestReadOOXMLString0;
|
||||||
begin
|
begin
|
||||||
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileOOXML,0);
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileOOXML,0);
|
||||||
@@ -582,6 +597,77 @@ begin
|
|||||||
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileOOXML,13);
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileOOXML,13);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ Excel2003/XML Tests }
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString0;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString1;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString2;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString3;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,3);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString4;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,4);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString5;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,5);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString6;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,6);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString7;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,7);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString8;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,8);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString9;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,9);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString10;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,10);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString11;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,11);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString12;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,12);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadReadStringTests.TestReadXMLString13;
|
||||||
|
begin
|
||||||
|
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileXML,13);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
// Register so these tests are included in a full run
|
// Register so these tests are included in a full run
|
||||||
|
@@ -14,12 +14,19 @@ const
|
|||||||
TestFileBIFF8_1904='testbiff8_1904.xls'; //with 1904 datemode date system
|
TestFileBIFF8_1904='testbiff8_1904.xls'; //with 1904 datemode date system
|
||||||
TestFileBIFF8_1899='testbiff8_1899.xls'; //with 1899/1900 datemode date system
|
TestFileBIFF8_1899='testbiff8_1899.xls'; //with 1899/1900 datemode date system
|
||||||
TestFileBIFF8 = TestFileBIFF8_1899;
|
TestFileBIFF8 = TestFileBIFF8_1899;
|
||||||
|
|
||||||
TestFileODF_1904='testodf_1904.ods'; //OpenDocument/LibreOffice with 1904 datemode date system
|
TestFileODF_1904='testodf_1904.ods'; //OpenDocument/LibreOffice with 1904 datemode date system
|
||||||
TestFileODF_1899='testodf_1899.ods'; //OpenDocument/LibreOffice with 1899/1900 datemode date system
|
TestFileODF_1899='testodf_1899.ods'; //OpenDocument/LibreOffice with 1899/1900 datemode date system
|
||||||
TestFileODF = TestFileODF_1899;
|
TestFileODF = TestFileODF_1899;
|
||||||
|
|
||||||
TestFileOOXML_1904='testooxml_1904.xlsx'; //Excel xlsx with 1904 datemode date system
|
TestFileOOXML_1904='testooxml_1904.xlsx'; //Excel xlsx with 1904 datemode date system
|
||||||
TestFileOOXML_1899='testooxml_1899.xlsx'; //Excel xlsx with 1899/1900 datemode date system
|
TestFileOOXML_1899='testooxml_1899.xlsx'; //Excel xlsx with 1899/1900 datemode date system
|
||||||
TestFileOOXML = TestFileOOXML_1899;
|
TestFileOOXML = TestFileOOXML_1899;
|
||||||
|
|
||||||
|
TestFileXML_1904='testxml_1904.xml'; //Excel 2003/XML file with 1904 datemode date system
|
||||||
|
TestFileXML_1899='testxml_1899.xml'; //Excel 2003/XML file with 1899/1900 datemode date system
|
||||||
|
TestFileXML = TestFileXML_1899;
|
||||||
|
|
||||||
TestFileManual = 'testmanual.xls'; //file name for manual checking using external spreadsheet program (Excel/LibreOffice..)
|
TestFileManual = 'testmanual.xls'; //file name for manual checking using external spreadsheet program (Excel/LibreOffice..)
|
||||||
DatesSheet = 'Dates'; //worksheet name
|
DatesSheet = 'Dates'; //worksheet name
|
||||||
FormulasSheet = 'Formulas'; //worksheet name
|
FormulasSheet = 'Formulas'; //worksheet name
|
||||||
|
591
components/fpspreadsheet/tests/testxml_1899.xml
Normal file
591
components/fpspreadsheet/tests/testxml_1899.xml
Normal file
@@ -0,0 +1,591 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<?mso-application progid="Excel.Sheet"?>
|
||||||
|
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||||
|
xmlns:x="urn:schemas-microsoft-com:office:excel"
|
||||||
|
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:html="http://www.w3.org/TR/REC-html40">
|
||||||
|
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<Author>Pamler</Author>
|
||||||
|
<LastAuthor>Werner</LastAuthor>
|
||||||
|
<Created>2014-08-05T08:05:53Z</Created>
|
||||||
|
<LastSaved>2015-04-30T11:25:25Z</LastSaved>
|
||||||
|
<Version>16.00</Version>
|
||||||
|
</DocumentProperties>
|
||||||
|
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<AllowPNG/>
|
||||||
|
</OfficeDocumentSettings>
|
||||||
|
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<WindowHeight>8190</WindowHeight>
|
||||||
|
<WindowWidth>16380</WindowWidth>
|
||||||
|
<WindowTopX>32767</WindowTopX>
|
||||||
|
<WindowTopY>32767</WindowTopY>
|
||||||
|
<TabRatio>500</TabRatio>
|
||||||
|
<ActiveSheet>2</ActiveSheet>
|
||||||
|
<ProtectStructure>False</ProtectStructure>
|
||||||
|
<ProtectWindows>False</ProtectWindows>
|
||||||
|
</ExcelWorkbook>
|
||||||
|
<Styles>
|
||||||
|
<Style ss:ID="Default" ss:Name="Normal">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Verdana" x:Family="Swiss"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s16">
|
||||||
|
<Font ss:FontName="Verdana" x:Family="Swiss" ss:Bold="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s17">
|
||||||
|
<NumberFormat ss:Format="Short Date"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s18">
|
||||||
|
<NumberFormat ss:Format="hh:mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s19">
|
||||||
|
<NumberFormat ss:Format="0%"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s20">
|
||||||
|
<NumberFormat ss:Format="Percent"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s21">
|
||||||
|
<NumberFormat ss:Format="#,##0"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s22">
|
||||||
|
<NumberFormat ss:Format="Standard"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s23">
|
||||||
|
<NumberFormat ss:Format="Scientific"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s24">
|
||||||
|
<NumberFormat ss:Format="h:mm;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s25">
|
||||||
|
<NumberFormat ss:Format="[$-F400]h:mm:ss\ AM/PM"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s26">
|
||||||
|
<NumberFormat ss:Format="[$-409]h:mm\ AM/PM;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s27">
|
||||||
|
<NumberFormat ss:Format="[$-409]h:mm:ss\ AM/PM;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s28">
|
||||||
|
<NumberFormat ss:Format="dd/\ mmm"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s29">
|
||||||
|
<NumberFormat ss:Format="mmm\ yy"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s30">
|
||||||
|
<NumberFormat ss:Format="mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s31">
|
||||||
|
<NumberFormat ss:Format="[h]:mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s32">
|
||||||
|
<NumberFormat/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s33">
|
||||||
|
<NumberFormat ss:Format="General Date"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s35">
|
||||||
|
<NumberFormat ss:Format="#,##0.00\ "€""/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s36">
|
||||||
|
<NumberFormat ss:Format="#,##0.00\ [$$-409]"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s37">
|
||||||
|
<NumberFormat ss:Format="[$$-409]#,##0.00;[Red]\-#,###.00\ [$$-409]"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s38">
|
||||||
|
<NumberFormat ss:Format="#,##0.00\ [$EUR];[Red]\(#,##0.00\ [$EUR]\)"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s39">
|
||||||
|
<NumberFormat ss:Format="yyyy\-mm\-dd\Thh:mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
</Styles>
|
||||||
|
<Worksheet ss:Name="Numbers">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="23" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="54">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="95.25"/>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-59000000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">Please use the A column for cells that will be read by fpspreadsheet</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-988</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">Do not modify or delete cells; it will mess up the tests</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-124.23432</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">You can use other cells for comments, intermediate calculations, etc</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-81.902850873027404</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-15</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-2.934E-3</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus small fraction</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">0</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus zero</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">0</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">zero</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">5.0000000000000001E-9</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">small fraction</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">0.98239399999999999</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost 1</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">3.14159265358979</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">some parts of pi</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">59000000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">59000000.100000001</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">same + a tenth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s19"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with no decimal</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s20"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s21"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, no decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s22"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s23"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as "exp" with 2 decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s35"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted as EUROs, € at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s36"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted as DOLLARs, $ at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s35"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as EUROs, € at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s36"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as DOLLARs, $ at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s37"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as DOLLARs, $ at end, negative red, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.51180555555555551"/>
|
||||||
|
<Footer x:Margin="0.51180555555555551"/>
|
||||||
|
<PageMargins x:Bottom="0.98402777777777772" x:Left="0.74791666666666667"
|
||||||
|
x:Right="0.74791666666666667" x:Top="0.98402777777777772"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>300</HorizontalResolution>
|
||||||
|
<VerticalResolution>300</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<EnableSelection>NoSelection</EnableSelection>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Texts">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="14" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="54">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="119.25"/>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:Index="2"><Data ss:Type="String">nothing, empty text</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">Please use the A column for cells that will be read by fpspreadsheet</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">a</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">Do not modify or delete cells; it will mess up the tests</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">a number</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">You can use other cells for comments, intermediate calculations, etc</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">The quick brown fox jumps over the lazy dog</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">café au lait</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">accent aigue on the e</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">водка</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Cyrillic</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">wódka</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Polish o accent aigue</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s19"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with no decimal</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s20"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s21"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, no decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s22"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s23"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as "exp" with 2 decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s38"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted as "currencyRed" with 2 decimals, brackets and EUR</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s38"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as "currencyRed" with 2 decimals, brackets and EUR</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.51180555555555551"/>
|
||||||
|
<Footer x:Margin="0.51180555555555551"/>
|
||||||
|
<PageMargins x:Bottom="0.98402777777777772" x:Left="0.74791666666666667"
|
||||||
|
x:Right="0.74791666666666667" x:Top="0.98402777777777772"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>300</HorizontalResolution>
|
||||||
|
<VerticalResolution>300</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>11</ActiveRow>
|
||||||
|
<RangeSelection>R12C1:R12C256</RangeSelection>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<EnableSelection>NoSelection</EnableSelection>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Dates">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="38" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="66">
|
||||||
|
<Column ss:StyleID="s17" ss:AutoFitWidth="0" ss:Width="108.75"/>
|
||||||
|
<Column ss:StyleID="s17" ss:AutoFitWidth="0" ss:Width="63.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="134.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="104.25"/>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1905-09-12T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1905-09-12T00:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">midnight</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s16"><Data ss:Type="String">Please use the A column for cells that will be read by fpspreadsheet</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s16"><Data ss:Type="String">Do not modify or delete cells; it will mess up the tests</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">2013-11-24T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">2013-11-24T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s16"><Data ss:Type="String">You can use other cells for comments, intermediate calculations, etc</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">2030-12-31T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">2030-12-31T00:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">time only...</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T01:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T01:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T03:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T03:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T18:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T18:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T23:59:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortDateTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s24"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s25"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s26"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s27"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s28"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfDayMonth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s29"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfMonthYear</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s33"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfFmtDateTime, ms</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortDateTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s24"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s25"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s26"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s27"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s28"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfDayMonth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s29"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfMonthYear</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s30"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfFmtDateTime, ms</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortDateTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s24"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s25"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s26"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s27"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s28"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfDayMonth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s29"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfMonthYear</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s30"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1899-12-31T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfFmtDateTime, ms</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s31"><Data ss:Type="DateTime">1899-12-31T03:45:12.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell><Data ss:Type="String">3 hours 45 mins 12 secs</Data></Cell>
|
||||||
|
<Cell ss:Index="5"><Data ss:Type="String">formatted as nfTimeDuration</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s31"><Data ss:Type="DateTime">1900-01-01T03:45:12.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s32"/>
|
||||||
|
<Cell><Data ss:Type="String">the same plus 1 day</Data></Cell>
|
||||||
|
<Cell ss:Index="5"><Data ss:Type="String">formatted as nfTimeDuration</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.51180555555555551"/>
|
||||||
|
<Footer x:Margin="0.51180555555555551"/>
|
||||||
|
<PageMargins x:Bottom="0.98402777777777772" x:Left="0.74791666666666667"
|
||||||
|
x:Right="0.74791666666666667" x:Top="0.98402777777777772"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>300</HorizontalResolution>
|
||||||
|
<VerticalResolution>300</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Selected/>
|
||||||
|
<TopRowVisible>9</TopRowVisible>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>35</ActiveRow>
|
||||||
|
<ActiveCol>4</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<EnableSelection>NoSelection</EnableSelection>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
</Workbook>
|
580
components/fpspreadsheet/tests/testxml_1904.xml
Normal file
580
components/fpspreadsheet/tests/testxml_1904.xml
Normal file
@@ -0,0 +1,580 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<?mso-application progid="Excel.Sheet"?>
|
||||||
|
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||||
|
xmlns:x="urn:schemas-microsoft-com:office:excel"
|
||||||
|
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:html="http://www.w3.org/TR/REC-html40">
|
||||||
|
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<Author>Pamler</Author>
|
||||||
|
<LastAuthor>Werner</LastAuthor>
|
||||||
|
<Created>2013-11-25T11:24:52Z</Created>
|
||||||
|
<LastSaved>2015-04-30T11:27:08Z</LastSaved>
|
||||||
|
<Version>16.00</Version>
|
||||||
|
</DocumentProperties>
|
||||||
|
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<AllowPNG/>
|
||||||
|
</OfficeDocumentSettings>
|
||||||
|
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<WindowHeight>8190</WindowHeight>
|
||||||
|
<WindowWidth>16380</WindowWidth>
|
||||||
|
<WindowTopX>32767</WindowTopX>
|
||||||
|
<WindowTopY>32767</WindowTopY>
|
||||||
|
<TabRatio>500</TabRatio>
|
||||||
|
<Date1904/>
|
||||||
|
<ProtectStructure>False</ProtectStructure>
|
||||||
|
<ProtectWindows>False</ProtectWindows>
|
||||||
|
</ExcelWorkbook>
|
||||||
|
<Styles>
|
||||||
|
<Style ss:ID="Default" ss:Name="Normal">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Verdana" x:Family="Swiss"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s16">
|
||||||
|
<NumberFormat ss:Format="Short Date"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s17">
|
||||||
|
<Font ss:FontName="Verdana" x:Family="Swiss" ss:Bold="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s18">
|
||||||
|
<NumberFormat ss:Format="hh:mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s20">
|
||||||
|
<Font ss:FontName="Verdana" x:Family="Swiss" ss:Bold="1"/>
|
||||||
|
<NumberFormat ss:Format="Short Date"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s21">
|
||||||
|
<NumberFormat ss:Format="Percent"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s22">
|
||||||
|
<NumberFormat ss:Format="0%"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s23">
|
||||||
|
<NumberFormat ss:Format="#,##0"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s24">
|
||||||
|
<NumberFormat ss:Format="Standard"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s25">
|
||||||
|
<NumberFormat ss:Format="Scientific"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s26">
|
||||||
|
<NumberFormat ss:Format="h:mm;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s27">
|
||||||
|
<NumberFormat ss:Format="[$-F400]h:mm:ss\ AM/PM"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s28">
|
||||||
|
<NumberFormat ss:Format="[$-409]h:mm\ AM/PM;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s29">
|
||||||
|
<NumberFormat ss:Format="[$-409]h:mm:ss\ AM/PM;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s30">
|
||||||
|
<NumberFormat ss:Format="dd/\ mmm"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s31">
|
||||||
|
<NumberFormat ss:Format="mmm\ yy"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s32">
|
||||||
|
<NumberFormat ss:Format="mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s33">
|
||||||
|
<NumberFormat ss:Format="[h]:mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s34">
|
||||||
|
<NumberFormat ss:Format="d/m/yy\ h:mm;@"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s35">
|
||||||
|
<NumberFormat ss:Format="#,##0.00\ "€""/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s36">
|
||||||
|
<NumberFormat ss:Format="#,##0.00\ [$$-409]"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s37">
|
||||||
|
<NumberFormat ss:Format="[$$-409]#,##0.00;[Red]\-#,###.00\ [$$-409]"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s38">
|
||||||
|
<NumberFormat ss:Format="#,##0.00\ [$EUR];[Red]\(#,##0.00\ [$EUR]\)"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s39">
|
||||||
|
<NumberFormat ss:Format="yyyy\-mm\-dd\Thh:mm:ss"/>
|
||||||
|
</Style>
|
||||||
|
</Styles>
|
||||||
|
<Worksheet ss:Name="Numbers">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="23" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="54">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="105.75"/>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-59000000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">Please use the A column for cells that will be read by fpspreadsheet</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-988</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">Do not modify or delete cells; it will mess up the tests</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-124.23432</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">You can use other cells for comments, intermediate calculations, etc</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-81.902850873027404</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-15</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">-2.934E-3</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus small fraction</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">0</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus zero</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">0</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">zero</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">5.0000000000000001E-9</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">small fraction</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">0.98239399999999999</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost 1</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">3.14159265358979</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">some parts of pi</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">59000000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="Number">59000000.100000001</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">same + a tenth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s22"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with no decimal</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s21"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s23"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, no decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s24"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s25"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as "exp" with 2 decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s35"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted as EUROs, € at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s36"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted as DOLLARs, $ at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s35"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as EUROs, € at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s36"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as DOLLARs, $ at end, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s37"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as DOLLARs, $ at end, negative red, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
|
||||||
|
x:Right="0.78740157499999996" x:Top="0.984251969"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>600</HorizontalResolution>
|
||||||
|
<VerticalResolution>600</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Selected/>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Texts">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="14" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="54">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="122.25"/>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:Index="2"><Data ss:Type="String">nothing, empty text</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">Please use the A column for cells that will be read by fpspreadsheet</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">a</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">Do not modify or delete cells; it will mess up the tests</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">a number</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">You can use other cells for comments, intermediate calculations, etc</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">The quick brown fox jumps over the lazy dog</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">café au lait</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">accent aigue on the e</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">водка</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Cyrillic</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">wódka</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Polish o accent aigue</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s22"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with no decimal</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s21"><Data ss:Type="Number">0.35360000000000003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">0.3536 formatted as percent with two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s23"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, no decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s24"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted with thousand separator, two decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s25"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as "exp" with 2 decimals</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s38"><Data ss:Type="Number">59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">59 million + 0.1234, formatted as "currencyRed" with 2 decimals, brackets and EUR</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s38"><Data ss:Type="Number">-59000000.123400003</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">minus 59 million + 0.1234, formatted as "currencyRed" with 2 decimals, brackets and EUR</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
|
||||||
|
x:Right="0.78740157499999996" x:Top="0.984251969"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>600</HorizontalResolution>
|
||||||
|
<VerticalResolution>600</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Dates">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="40" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="66">
|
||||||
|
<Column ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="100.5"/>
|
||||||
|
<Column ss:StyleID="s16" ss:AutoFitWidth="0"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="127.5"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="104.25"/>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1905-09-12T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1905-09-12T00:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">midnight</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s17"><Data ss:Type="String">Please use the A column for cells that will be read by fpspreadsheet</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s20"/>
|
||||||
|
<Cell ss:StyleID="s39" ss:Formula="=RC[-2]"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s17"><Data ss:Type="String">Do not modify or delete cells; it will mess up the tests</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">2013-11-24T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">2013-11-24T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s17"><Data ss:Type="String">You can use other cells for comments, intermediate calculations, etc</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="DateTime">2030-12-31T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">2030-12-31T00:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T00:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">time only...</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T01:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T01:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T03:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T03:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T18:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T18:00:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T23:59:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:00.000</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s18"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s34"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortDateTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s26"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s27"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s28"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s29"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s30"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfDayMonth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s31"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfMonthYear</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s32"><Data ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1908-09-12T12:00:00.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">noon</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfFmtDateTime, ms</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s34"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortDateTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s26"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s27"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s28"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s29"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s30"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfDayMonth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s31"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfMonthYear</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s32"><Data ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T00:00:01.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">just after midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfFmtDateTime, ms</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s34"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortDateTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s26"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s27"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTime</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s28"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfShortTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s29"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfLongTimeAM</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s30"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfDayMonth</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s31"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfMonthYear</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s32"><Data ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s39" ss:Formula="=RC[-2]"><Data
|
||||||
|
ss:Type="DateTime">1904-01-01T23:59:59.000</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">almost midnight</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">formatted as nfFmtDateTime, ms</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s33"><Data ss:Type="DateTime">1904-01-01T03:45:12.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3"><Data ss:Type="String">3 hours 45 mins 12 secs</Data></Cell>
|
||||||
|
<Cell ss:Index="5"><Data ss:Type="String">formatted as nfTimeDuration</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell ss:StyleID="s33"><Data ss:Type="DateTime">1904-01-02T03:45:12.000</Data></Cell>
|
||||||
|
<Cell ss:Index="3"><Data ss:Type="String">the same plus 1 day</Data></Cell>
|
||||||
|
<Cell ss:Index="5"><Data ss:Type="String">formatted as nfTimeDuration</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Index="40">
|
||||||
|
<Cell ss:StyleID="s33"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.51180555555555551"/>
|
||||||
|
<Footer x:Margin="0.51180555555555551"/>
|
||||||
|
<PageMargins x:Bottom="0.98402777777777772" x:Left="0.74791666666666667"
|
||||||
|
x:Right="0.74791666666666667" x:Top="0.98402777777777772"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>300</HorizontalResolution>
|
||||||
|
<VerticalResolution>300</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<TopRowVisible>6</TopRowVisible>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>19</ActiveRow>
|
||||||
|
<ActiveCol>4</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<EnableSelection>NoSelection</EnableSelection>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
</Workbook>
|
Reference in New Issue
Block a user