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 = class(TsSpreadXMLReader)
|
||||
private
|
||||
FDateMode: TDateMode;
|
||||
FPointSeparatorSettings: TFormatSettings;
|
||||
function ExtractDateTime(AText: String): TDateTime;
|
||||
|
||||
@@ -449,10 +450,11 @@ var
|
||||
err: TsErrorValue;
|
||||
cell: PCell;
|
||||
fmt: TsCellFormat;
|
||||
nfp: TsNumFormatParams;
|
||||
idx: Integer;
|
||||
mergedCols, mergedRows: Integer;
|
||||
font: TsFont;
|
||||
rtp: TsRichTextParams;
|
||||
dt: TDateTime;
|
||||
begin
|
||||
if ANode = nil then
|
||||
exit;
|
||||
@@ -470,7 +472,7 @@ begin
|
||||
if idx <> -1 then begin
|
||||
fmt := FCellFormatList.Items[idx]^;
|
||||
cell^.FormatIndex := book.AddCellFormat(fmt);
|
||||
font := book.GetFont(fmt.FontIndex);;
|
||||
font := book.GetFont(fmt.FontIndex);
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -524,7 +526,15 @@ begin
|
||||
'Number':
|
||||
sheet.WriteNumber(cell, StrToFloat(sv, FPointSeparatorSettings));
|
||||
'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':
|
||||
if sv = '1' then
|
||||
sheet.WriteBoolValue(cell, true)
|
||||
@@ -616,7 +626,10 @@ begin
|
||||
s := ANode.TextContent;
|
||||
if s = 'True' then
|
||||
FWorkbook.Protection := FWorkbook.Protection + [bpLockWindows];
|
||||
end;
|
||||
end else
|
||||
if nodeName = 'Date1904' then
|
||||
FDateMode := dm1904;
|
||||
|
||||
ANode := ANode.NextSibling;
|
||||
end;
|
||||
end;
|
||||
@@ -761,12 +774,12 @@ procedure TsSpreadExcelXMLReader.ReadNames(ANode: TDOMNode;
|
||||
end;
|
||||
|
||||
var
|
||||
s, s1: String;
|
||||
s: String;
|
||||
nodeName: String;
|
||||
sheet1, sheet2: String;
|
||||
r1, c1, r2, c2: Cardinal;
|
||||
flags: TsRelFlags;
|
||||
p, q: Integer;
|
||||
p: Integer;
|
||||
begin
|
||||
while ANode <> nil do begin
|
||||
nodeName := ANode.NodeName;
|
||||
@@ -811,8 +824,27 @@ begin
|
||||
|
||||
s := GetAttrValue(ANode, 'ss:Format');
|
||||
case s of
|
||||
'General':
|
||||
exit;
|
||||
'General': 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':
|
||||
begin
|
||||
nf := nfShortDate;
|
||||
@@ -866,7 +898,6 @@ var
|
||||
nodeName: String;
|
||||
fmt: TsCellFormat;
|
||||
s: String;
|
||||
id: Integer;
|
||||
idx: Integer;
|
||||
childNode: TDOMNode;
|
||||
begin
|
||||
@@ -1064,8 +1095,6 @@ var
|
||||
n: Integer;
|
||||
hasFitToPage: Boolean = false;
|
||||
c, r: Cardinal;
|
||||
r1, c1, r2, c2: Cardinal;
|
||||
flags: TsRelFlags;
|
||||
begin
|
||||
if ANode = nil then
|
||||
exit;
|
||||
@@ -1391,7 +1420,11 @@ begin
|
||||
Result := '';
|
||||
comment := (FWorksheet as TsWorksheet).FindComment(ACell);
|
||||
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
|
||||
// Result := '<Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40">'+comment^.Text+'</ss:Data></Comment>':
|
||||
end;
|
||||
@@ -1597,16 +1630,19 @@ var
|
||||
c, c1, c2: Cardinal;
|
||||
colwidthStr: String;
|
||||
styleStr: String;
|
||||
hiddenStr: String;
|
||||
col: PCol;
|
||||
begin
|
||||
c1 := 0;
|
||||
c2 := TsWorksheet(AWorksheet).GetLastColIndex;
|
||||
FPrevCol := -1;
|
||||
FPrevCol := UNASSIGNED_ROW_COL_INDEX;
|
||||
for c := c1 to c2 do
|
||||
begin
|
||||
col := TsWorksheet(AWorksheet).FindCol(c);
|
||||
styleStr := '';
|
||||
colWidthStr := '';
|
||||
hiddenStr := '';
|
||||
|
||||
if Assigned(col) then
|
||||
begin
|
||||
// column width is needed in pts.
|
||||
@@ -1618,9 +1654,13 @@ begin
|
||||
if col^.FormatIndex > 0 then
|
||||
styleStr := GetStyleStr(col^.FormatIndex);
|
||||
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(
|
||||
'<Column%s%s%s />' + LF, [GetIndexStr(c, FPrevCol), colWidthStr, styleStr]));
|
||||
'<Column%s%s%s%s />' + LF, [GetIndexStr(c, FPrevCol), colWidthStr, styleStr, hiddenStr]));
|
||||
FPrevCol := c;
|
||||
end;
|
||||
end;
|
||||
@@ -1708,6 +1748,8 @@ end;
|
||||
|
||||
procedure TsSpreadExcelXMLWriter.WriteLabel(AStream: TStream; const ARow,
|
||||
ACol: Cardinal; const AValue: string; ACell: PCell);
|
||||
const
|
||||
MAXBYTES = 32767; // limit for this format
|
||||
var
|
||||
valueStr: String;
|
||||
cctStr: String;
|
||||
@@ -1715,14 +1757,31 @@ var
|
||||
dataTagStr: String;
|
||||
p: Integer;
|
||||
tmp: String;
|
||||
ch:char;
|
||||
ResultingValue: String;
|
||||
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
|
||||
begin
|
||||
RichTextToHTML(
|
||||
FWorkbook as TsWorkbook,
|
||||
(FWorksheet as TsWorksheet).ReadCellFont(ACell),
|
||||
AValue,
|
||||
ResultingValue,
|
||||
ACell^.RichTextParams,
|
||||
valueStr, // html-formatted rich text
|
||||
'html:', tcProperCase
|
||||
@@ -1749,7 +1808,7 @@ begin
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
valueStr := AValue;
|
||||
valueStr := ResultingValue;
|
||||
if not ValidXMLText(valueStr, true, true) then
|
||||
Workbook.AddErrorMsg(
|
||||
rsInvalidCharacterInCell, [
|
||||
@@ -1806,6 +1865,7 @@ var
|
||||
r, r1, r2: Cardinal;
|
||||
cell: PCell;
|
||||
rowheightStr: String;
|
||||
hiddenStr: String;
|
||||
styleStr: String;
|
||||
row: PRow;
|
||||
hasCells: Boolean;
|
||||
@@ -1816,11 +1876,12 @@ begin
|
||||
r2 := sheet.GetLastRowIndex;
|
||||
c2 := sheet.GetLastColIndex;
|
||||
|
||||
FPrevRow := -1;
|
||||
FPrevRow := UNASSIGNED_ROW_COL_INDEX;
|
||||
for r := r1 to r2 do
|
||||
begin
|
||||
row := sheet.FindRow(r);
|
||||
styleStr := '';
|
||||
hiddenStr := '';
|
||||
// Row height is needed in pts.
|
||||
if Assigned(row) then
|
||||
begin
|
||||
@@ -1837,6 +1898,9 @@ begin
|
||||
end else
|
||||
rowheightStr := ' ss:AutoFitHeight="1"';
|
||||
|
||||
if sheet.RowHidden(r) then
|
||||
hiddenStr := ' ss:Hidden="1"';
|
||||
|
||||
hasCells := false;
|
||||
for c := c1 to c2 do begin
|
||||
cell := sheet.FindCell(r, c);
|
||||
@@ -1847,7 +1911,7 @@ begin
|
||||
end;
|
||||
|
||||
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
|
||||
AppendToStream(AStream, '>' + LF)
|
||||
@@ -1856,7 +1920,7 @@ begin
|
||||
Continue;
|
||||
end;
|
||||
|
||||
FPrevCol := -1;
|
||||
FPrevCol := UNASSIGNED_ROW_COL_INDEX;
|
||||
for c := c1 to c2 do
|
||||
begin
|
||||
cell := sheet.FindCell(r, c);
|
||||
@@ -2050,20 +2114,8 @@ end;
|
||||
procedure TsSpreadExcelXMLWriter.WriteTable(AStream: TStream;
|
||||
AWorksheet: TsBasicWorksheet);
|
||||
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;
|
||||
begin
|
||||
r1 := 0;
|
||||
c1 := 0;
|
||||
r2 := sheet.GetLastRowIndex;
|
||||
c2 := sheet.GetLastColIndex;
|
||||
AppendToStream(AStream, TABLE_INDENT + Format(
|
||||
'<Table ss:ExpandedColumnCount="%d" ss:ExpandedRowCount="%d" ' +
|
||||
'x:FullColumns="1" x:FullRows="1" ' +
|
||||
@@ -2145,6 +2197,7 @@ var
|
||||
marginStr: String;
|
||||
selectedStr: String;
|
||||
protectStr: String;
|
||||
visibleStr: String;
|
||||
sheet: TsWorksheet absolute AWorksheet;
|
||||
begin
|
||||
// Orientation, some PageLayout.Options
|
||||
@@ -2165,18 +2218,27 @@ begin
|
||||
|
||||
// Show/hide grid lines
|
||||
if not (soShowGridLines in AWorksheet.Options) then
|
||||
hideGridStr := INDENT3 + '<DoNotDisplayGridlines/>' + LF else
|
||||
hideGridStr := INDENT3 + '<DoNotDisplayGridlines/>' + LF
|
||||
else
|
||||
hideGridStr := '';
|
||||
|
||||
// Show/hide column/row headers
|
||||
if not (soShowHeaders in AWorksheet.Options) then
|
||||
hideHeadersStr := INDENT3 + '<DoNotDisplayHeadings/>' + LF else
|
||||
hideHeadersStr := INDENT3 + '<DoNotDisplayHeadings/>' + LF
|
||||
else
|
||||
hideHeadersStr := '';
|
||||
|
||||
if (FWorkbook as TsWorkbook).ActiveWorksheet = AWorksheet then
|
||||
selectedStr := INDENT3 + '<Selected/>' + LF else
|
||||
selectedStr := INDENT3 + '<Selected/>' + LF
|
||||
else
|
||||
selectedStr := '';
|
||||
|
||||
// Visible
|
||||
if (soHidden in AWorksheet.Options) then
|
||||
visibleStr := INDENT3 + '<Visible>SheetHidden</Visible>' + LF
|
||||
else
|
||||
visibleStr := '';
|
||||
|
||||
// Frozen panes
|
||||
frozenStr := GetFrozenPanesStr(AWorksheet, INDENT3);
|
||||
|
||||
@@ -2198,6 +2260,7 @@ begin
|
||||
footerStr +
|
||||
marginStr + INDENT3 +
|
||||
'</PageSetup>' + LF +
|
||||
visibleStr +
|
||||
selectedStr +
|
||||
protectStr +
|
||||
frozenStr +
|
||||
|
@@ -43,6 +43,9 @@ type
|
||||
// OOXML test cases
|
||||
procedure TestWriteRead_Bool_OOXML;
|
||||
|
||||
// Excel2003/XML test cases
|
||||
procedure TestWriteRead_Bool_XML;
|
||||
|
||||
// CSV test cases
|
||||
procedure TestWriteRead_Bool_CSV;
|
||||
end;
|
||||
@@ -191,6 +194,12 @@ begin
|
||||
TestWriteRead_Bool(sfOOXML);
|
||||
end;
|
||||
|
||||
{ XML }
|
||||
procedure TSpreadWriteReadCellTypeTests.TestWriteRead_Bool_XML;
|
||||
begin
|
||||
TestWriteRead_Bool(sfExcelXML);
|
||||
end;
|
||||
|
||||
{ CSV }
|
||||
procedure TSpreadWriteReadCellTypeTests.TestWriteRead_Bool_CSV;
|
||||
begin
|
||||
|
@@ -1,11 +1,13 @@
|
||||
{ Color tests
|
||||
--------------------------------------------------------------------------------
|
||||
This unit tests writing out to and reading back from files.
|
||||
}
|
||||
|
||||
unit colortests;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
{ Color tests
|
||||
This unit tests writing out to and reading back from files.
|
||||
}
|
||||
|
||||
uses
|
||||
// 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_Biff8Pal; // official biff8 palette in BIFF8 file format
|
||||
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;
|
||||
|
||||
|
||||
@@ -458,6 +472,48 @@ begin
|
||||
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
|
||||
RegisterTest(TSpreadWriteReadColorTests);
|
||||
|
||||
|
@@ -222,52 +222,58 @@ type
|
||||
procedure TestWriteRead_HideColDef_BIFF5;
|
||||
procedure TestWriteRead_HideColDef_BIFF8;
|
||||
procedure TestWriteRead_HideColDef_OOXML;
|
||||
procedure TestWriteRead_HideColDef_XML;
|
||||
procedure TestWriteRead_HideColDef_ODS;
|
||||
|
||||
// Hide a row having default row height
|
||||
procedure TestWriteRead_HideRowDef_BIFF5;
|
||||
procedure TestWriteRead_HideRowDef_BIFF8;
|
||||
procedure TestWriteRead_HideRowDef_OOXML;
|
||||
procedure TestWriteRead_HideRowDef_XML;
|
||||
procedure TestWriteRead_HideRowDef_ODS;
|
||||
|
||||
// Show a hidden column having default col width
|
||||
procedure TestWriteRead_ShowColDef_BIFF5;
|
||||
procedure TestWriteRead_ShowColDef_BIFF8;
|
||||
procedure TestWriteRead_ShowColDef_OOXML;
|
||||
procedure TestWriteRead_ShowColDef_XML;
|
||||
procedure TestWriteRead_ShowColDef_ODS;
|
||||
|
||||
// Show a hidden row having default row height
|
||||
procedure TestWriteRead_ShowRowDef_BIFF5;
|
||||
procedure TestWriteRead_ShowRowDef_BIFF8;
|
||||
procedure TestWriteRead_ShowRowDef_OOXML;
|
||||
procedure TestWriteRead_ShowRowDef_XML;
|
||||
procedure TestWriteRead_ShowRowDef_ODS;
|
||||
|
||||
|
||||
// Hide a column
|
||||
procedure TestWriteRead_HideCol_BIFF5;
|
||||
procedure TestWriteRead_HideCol_BIFF8;
|
||||
procedure TestWriteRead_HideCol_OOXML;
|
||||
procedure TestWriteRead_HideCol_XML;
|
||||
procedure TestWriteRead_HideCol_ODS;
|
||||
|
||||
// Hide a row
|
||||
procedure TestWriteRead_HideRow_BIFF5;
|
||||
procedure TestWriteRead_HideRow_BIFF8;
|
||||
procedure TestWriteRead_HideRow_OOXML;
|
||||
procedure TestWriteRead_HideRow_XML;
|
||||
procedure TestWriteRead_HideRow_ODS;
|
||||
|
||||
// Show a hidden column
|
||||
procedure TestWriteRead_ShowCol_BIFF5;
|
||||
procedure TestWriteRead_ShowCol_BIFF8;
|
||||
procedure TestWriteRead_ShowCol_OOXML;
|
||||
procedure TestWriteRead_ShowCol_XML;
|
||||
procedure TestWriteRead_ShowCol_ODS;
|
||||
|
||||
// Show a hidden row
|
||||
procedure TestWriteRead_ShowRow_BIFF5;
|
||||
procedure TestWriteRead_ShowRow_BIFF8;
|
||||
procedure TestWriteRead_ShowRow_OOXML;
|
||||
procedure TestWriteRead_ShowRow_XML;
|
||||
procedure TestWriteRead_ShowRow_ODS;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
@@ -1920,6 +1926,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, true, true, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, true, true, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideColDef_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, true, true, sfOpenDocument);
|
||||
@@ -1938,6 +1948,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, true, true, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, true, true, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRowDef_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, true, true, sfOpenDocument);
|
||||
@@ -1956,6 +1970,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, false, true, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, false, true, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowColDef_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, false, true, sfOpenDocument);
|
||||
@@ -1974,6 +1992,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, false, true, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, false, true, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRowDef_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, false, true, sfOpenDocument);
|
||||
@@ -1995,6 +2017,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, true, false, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, true, false, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideCol_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, true, false, sfOpenDocument);
|
||||
@@ -2013,6 +2039,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, true, false, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, true, false, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_HideRow_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, true, false, sfOpenDocument);
|
||||
@@ -2031,6 +2061,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, false, false, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, false, false, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowCol_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(true, false, false, sfOpenDocument);
|
||||
@@ -2049,6 +2083,10 @@ procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_OOXML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, false, false, sfOOXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_XML;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, false, false, sfExcelXML);
|
||||
end;
|
||||
procedure TSpreadWriteRead_ColRow_Tests.TestWriteRead_ShowRow_ODS;
|
||||
begin
|
||||
TestWriteRead_HideShowColRow(false, false, false, sfOpenDocument);
|
||||
|
@@ -60,6 +60,12 @@ type
|
||||
procedure TestWriteRead_OOXML_NonAscii_Comment;
|
||||
procedure TestWriteRead_OOXML_NonXMLChar_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;
|
||||
|
||||
implementation
|
||||
@@ -284,6 +290,29 @@ begin
|
||||
TestWriteRead_Comment(sfOOXML, VERY_LONG_COMMENT);
|
||||
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
|
||||
RegisterTest(TSpreadWriteReadCommentTests);
|
||||
|
||||
|
@@ -297,12 +297,14 @@ type
|
||||
procedure TestWriteReadDates_BIFF8;
|
||||
procedure TestWriteReadDates_ODS;
|
||||
procedure TestWriteReadDates_OOXML;
|
||||
procedure TestWriteReadDates_XML;
|
||||
|
||||
procedure TestWriteReadMilliseconds_BIFF2;
|
||||
procedure TestWriteReadMilliseconds_BIFF5;
|
||||
procedure TestWriteReadMilliseconds_BIFF8;
|
||||
procedure TestWriteReadMilliseconds_ODS;
|
||||
procedure TestWriteReadMilliseconds_OOXML;
|
||||
procedure TestWriteReadMilliseconds_XML;
|
||||
end;
|
||||
|
||||
|
||||
@@ -565,6 +567,11 @@ begin
|
||||
TestWriteReadDates(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadDateTests.TestWriteReadDates_XML;
|
||||
begin
|
||||
TestWriteReadDates(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ TSpreadReadDateTests }
|
||||
|
||||
@@ -1815,6 +1822,11 @@ begin
|
||||
TestWriteReadMilliseconds(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadDateTests.TestWriteReadMilliseconds_XML;
|
||||
begin
|
||||
TestWriteReadMilliseconds(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
// Register so these tests are included in a full run
|
||||
|
@@ -30,6 +30,7 @@ type
|
||||
procedure TestWriteErrorMessages_BIFF8;
|
||||
procedure TestWriteErrorMessages_ODS;
|
||||
procedure TestWriteErrorMessages_OOXML;
|
||||
procedure TestWriteErrorMessages_XML;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@@ -253,6 +254,11 @@ begin
|
||||
TestWriteErrorMessages(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadErrorTests.TestWriteErrorMessages_XML;
|
||||
begin
|
||||
TestWriteErrorMessages(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
// Register so these tests are included in a full run
|
||||
|
@@ -154,6 +154,20 @@ type
|
||||
procedure TestWriteRead_OOXML_WordWrap;
|
||||
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 }
|
||||
procedure TestWriteRead_CSV_DateTimeFormats;
|
||||
procedure TestWriteRead_CSV_NumberFormats_0;
|
||||
@@ -458,6 +472,11 @@ begin
|
||||
TestWriteRead_NumberFormats(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_NumberFormats;
|
||||
begin
|
||||
TestWriteRead_NumberFormats(sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_CSV_NumberFormats_0;
|
||||
begin
|
||||
TestWriteRead_NumberFormats(sfCSV, 0);
|
||||
@@ -565,6 +584,11 @@ begin
|
||||
TestWriteRead_DateTimeFormats(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_DateTimeFormats;
|
||||
begin
|
||||
TestWriteRead_DateTimeFormats(sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_CSV_DateTimeFormats;
|
||||
begin
|
||||
TestWriteRead_DateTimeFormats(sfCSV);
|
||||
@@ -721,6 +745,11 @@ begin
|
||||
TestWriteRead_Alignment(sfOOXML);
|
||||
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
|
||||
the background fill with a specific pattern and background color, in column C
|
||||
@@ -846,6 +875,11 @@ begin
|
||||
TestWriteRead_Background(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Background;
|
||||
begin
|
||||
TestWriteRead_Background(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- Border on/off tests --- }
|
||||
|
||||
@@ -953,6 +987,11 @@ begin
|
||||
TestWriteRead_Border(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Border;
|
||||
begin
|
||||
TestWriteRead_Border(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- BorderStyle tests --- }
|
||||
|
||||
@@ -1101,6 +1140,11 @@ begin
|
||||
TestWriteRead_BorderStyles(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_BorderStyles;
|
||||
begin
|
||||
TestWriteRead_BorderStyles(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- Column widths tests --- }
|
||||
|
||||
@@ -1186,6 +1230,11 @@ begin
|
||||
TestWriteRead_ColWidths(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_ColWidths;
|
||||
begin
|
||||
TestWriteRead_ColWidths(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- Row height tests --- }
|
||||
|
||||
@@ -1275,6 +1324,11 @@ begin
|
||||
TestWriteRead_RowHeights(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_RowHeights;
|
||||
begin
|
||||
TestWriteRead_RowHeights(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- Text rotation tests --- }
|
||||
|
||||
@@ -1360,6 +1414,11 @@ begin
|
||||
TestWriteRead_TextRotation(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_TextRotation;
|
||||
begin
|
||||
TestWriteRead_TextRotation(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- Wordwrap tests --- }
|
||||
|
||||
@@ -1447,6 +1506,11 @@ begin
|
||||
TestWriteRead_Wordwrap(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_Wordwrap;
|
||||
begin
|
||||
TestWriteRead_Wordwrap(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
{ --- Merged tests --- }
|
||||
|
||||
@@ -1601,6 +1665,12 @@ begin
|
||||
TestWriteRead_MergedCells(sfOOXML);
|
||||
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
|
||||
in a separats IXFE record. This is tested here. }
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ManyXF(AFormat: TsSpreadsheetFormat);
|
||||
@@ -1757,6 +1827,11 @@ begin
|
||||
TestWriteRead_FormatStrings(sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_XML_FormatStrings;
|
||||
begin
|
||||
TestWriteRead_FormatStrings(sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_FormatStrings;
|
||||
begin
|
||||
TestWriteRead_FormatStrings(sfOpenDocument);
|
||||
|
@@ -94,6 +94,20 @@ type
|
||||
procedure TestWriteRead_OOXML_Panes_None;
|
||||
|
||||
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;
|
||||
|
||||
implementation
|
||||
@@ -272,6 +286,28 @@ begin
|
||||
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 }
|
||||
|
||||
procedure TSpreadWriteReadOptionsTests.TestWriteReadPanes(AFormat: TsSpreadsheetFormat;
|
||||
@@ -431,6 +467,28 @@ begin
|
||||
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(
|
||||
AFormat: TsSpreadsheetFormat);
|
||||
const
|
||||
@@ -491,6 +549,11 @@ begin
|
||||
TestWriteReadHiddenSheet(sfOpenDocument);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadOptionsTests.TestWriteRead_XML_HiddenSheet;
|
||||
begin
|
||||
TestWriteReadHiddenSheet(sfExcelXML);
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterTest(TSpreadWriteReadOptionsTests);
|
||||
|
@@ -35,12 +35,14 @@ type
|
||||
procedure AddConst_BIFF5;
|
||||
procedure AddConst_BIFF8;
|
||||
procedure AddConst_OOXML;
|
||||
procedure AddConst_XML;
|
||||
procedure AddConst_ODS;
|
||||
|
||||
procedure AddCells_BIFF2;
|
||||
procedure AddCells_BIFF5;
|
||||
procedure AddCells_BIFF8;
|
||||
procedure AddCells_OOXML;
|
||||
procedure AddCells_XML;
|
||||
procedure AddCells_ODS;
|
||||
|
||||
procedure RoundConst1_ODS;
|
||||
@@ -66,16 +68,19 @@ type
|
||||
procedure SumRange_BIFF5;
|
||||
procedure SumRange_BIFF8;
|
||||
procedure SumRange_OOXML;
|
||||
procedure SumRange_XML;
|
||||
procedure SumRange_ODS;
|
||||
|
||||
procedure SumSheetRange_BIFF5; // no 3d ranges for BIFF2
|
||||
procedure SumSheetRange_BIFF8;
|
||||
procedure SumSheetRange_OOXML;
|
||||
procedure SumSheetRange_XML;
|
||||
procedure SumSheetRange_ODS;
|
||||
|
||||
procedure SumMultiSheetRange_BIFF5;
|
||||
procedure SumMultiSheetRange_BIFF8;
|
||||
procedure SumMultiSheetRange_OOXML;
|
||||
procedure SumMultiSheetRange_XML;
|
||||
procedure SumMultiSheetRange_ODS;
|
||||
|
||||
procedure SumMultiSheetRange_FlippedCells_BIFF8;
|
||||
@@ -86,6 +91,7 @@ type
|
||||
|
||||
procedure IfConst_BIFF8;
|
||||
procedure IfConst_OOXML;
|
||||
procedure IfConst_XML;
|
||||
procedure IfConst_ODS;
|
||||
|
||||
procedure IfConst_BIFF8_2;
|
||||
@@ -104,11 +110,13 @@ type
|
||||
procedure NonExistantSheet_BIFF5;
|
||||
procedure NonExistantSheet_BIFF8;
|
||||
procedure NonExistantSheet_OOXML;
|
||||
procedure NonExistantSheet_XML;
|
||||
procedure NonExistantSheet_ODS;
|
||||
|
||||
procedure NonExistantSheetRange_BIFF5;
|
||||
procedure NonExistantSheetRange_BIFF8;
|
||||
procedure NonExistantSheetRange_OOXML;
|
||||
procedure NonExistantSheetRange_XML;
|
||||
procedure NonExistantSheetRange_ODS;
|
||||
|
||||
procedure RenameWorksheet_Single;
|
||||
@@ -314,6 +322,11 @@ begin
|
||||
TestFormula('1+1', '2', ftkConstants, sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.AddConst_XML;
|
||||
begin
|
||||
TestFormula('1+1', '2', ftkConstants, sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.AddConst_ODS;
|
||||
begin
|
||||
TestFormula('1+1', '2', ftkConstants, sfOpenDocument);
|
||||
@@ -341,6 +354,11 @@ begin
|
||||
TestFormula('C3+C4', '-1', ftkCells, sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.AddCells_XML;
|
||||
begin
|
||||
TestFormula('C3+C4', '-1', ftkCells, sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.AddCells_ODS;
|
||||
begin
|
||||
TestFormula('C3+C4', '-1', ftkCells, sfOpenDocument);
|
||||
@@ -472,6 +490,11 @@ begin
|
||||
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.SumRange_XML;
|
||||
begin
|
||||
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.SumRange_ODS;
|
||||
begin
|
||||
TestFormula('SUM(C3:C5)', '0.5', ftkCellRange, sfOpenDocument);
|
||||
@@ -494,6 +517,11 @@ begin
|
||||
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.SumSheetRange_XML;
|
||||
begin
|
||||
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.SumSheetRange_ODS;
|
||||
begin
|
||||
TestFormula('SUM(Sheet2!C3:C5)', '5', ftkCellRangeSheet, sfOpenDocument);
|
||||
@@ -516,6 +544,11 @@ begin
|
||||
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfOOXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.SumMultiSheetRange_XML;
|
||||
begin
|
||||
TestFormula('SUM(Sheet2:Sheet3!C3:C5)', '55', ftkCellRangeSheetRange, sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.SumMultiSheetRange_ODS;
|
||||
begin
|
||||
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);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.IfConst_XML;
|
||||
begin
|
||||
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfExcelXML);
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.IfConst_ODS;
|
||||
begin
|
||||
TestFormula('IF(C3="A","is A","not A")', 'not A', ftkCellConstant, sfOpenDocument);
|
||||
@@ -637,6 +675,11 @@ begin
|
||||
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfOOXML, '#REF!');
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.NonExistantSheet_XML;
|
||||
begin
|
||||
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfExcelXML, '#REF!');
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.NonExistantSheet_ODS;
|
||||
begin
|
||||
TestFormula('Missing!C3', '#REF!', ftkCellRangeSheet, sfOpenDocument, '#REF!');
|
||||
@@ -659,6 +702,11 @@ begin
|
||||
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfOOXML, 'SUM(#REF!)');
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.NonExistantSheetRange_XML;
|
||||
begin
|
||||
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfExcelXML, 'SUM(#REF!)');
|
||||
end;
|
||||
|
||||
procedure TSpreadSingleFormulaTests.NonExistantSheetRange_ODS;
|
||||
begin
|
||||
TestFormula('SUM(Missing1:Missing2!C3)', '#REF!', ftkCellRangeSheet, sfOpenDocument, 'SUM(#REF!)');
|
||||
|
@@ -94,6 +94,20 @@ type
|
||||
procedure TestReadOOXMLString12;
|
||||
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;
|
||||
|
||||
{ TSpreadWriteReadStringTests }
|
||||
@@ -340,6 +354,7 @@ begin
|
||||
case Uppercase(ExtractFileExt(FileName)) of
|
||||
'.XLSX': AFormat := sfOOXML;
|
||||
'.ODS' : AFormat := sfOpenDocument;
|
||||
'.XML' : AFormat := sfExcelXML;
|
||||
else AFormat := sfExcel8;
|
||||
end;
|
||||
TestWorkbook.ReadFromFile(FileName, AFormat);
|
||||
@@ -511,7 +526,7 @@ begin
|
||||
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,13);
|
||||
end;
|
||||
|
||||
{ ODF Tests }
|
||||
{ Excel XLSX Tests }
|
||||
procedure TSpreadReadStringTests.TestReadOOXMLString0;
|
||||
begin
|
||||
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileOOXML,0);
|
||||
@@ -582,6 +597,77 @@ begin
|
||||
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileOOXML,13);
|
||||
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
|
||||
// Register so these tests are included in a full run
|
||||
|
@@ -13,14 +13,21 @@ uses
|
||||
const
|
||||
TestFileBIFF8_1904='testbiff8_1904.xls'; //with 1904 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_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_1899='testooxml_1899.xlsx'; //Excel xlsx with 1899/1900 datemode date system
|
||||
TestFileOOXML=TestFileOOXML_1899;
|
||||
TestFileManual='testmanual.xls'; //file name for manual checking using external spreadsheet program (Excel/LibreOffice..)
|
||||
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..)
|
||||
DatesSheet = 'Dates'; //worksheet name
|
||||
FormulasSheet = 'Formulas'; //worksheet name
|
||||
ManualSheet = 'ManualTests'; //worksheet names
|
||||
|
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