You've already forked lazarus-ccr
fpspreadsheet: Test cases for merged cells in xls, xlsx, ods files. Passed.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3557 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -51,23 +51,25 @@ type
|
|||||||
procedure TearDown; override;
|
procedure TearDown; override;
|
||||||
|
|
||||||
// Test alignments
|
// Test alignments
|
||||||
procedure TestWriteReadAlignment(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_Alignment(AFormat: TsSpreadsheetFormat);
|
||||||
// Test border
|
// Test border
|
||||||
procedure TestWriteReadBorder(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_Border(AFormat: TsSpreadsheetFormat);
|
||||||
// Test border styles
|
// Test border styles
|
||||||
procedure TestWriteReadBorderStyles(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_BorderStyles(AFormat: TsSpreadsheetFormat);
|
||||||
// Test column widths
|
// Test column widths
|
||||||
procedure TestWriteReadColWidths(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_ColWidths(AFormat: TsSpreadsheetFormat);
|
||||||
// Test row heights
|
// Test row heights
|
||||||
procedure TestWriteReadRowHeights(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_RowHeights(AFormat: TsSpreadsheetFormat);
|
||||||
// Test text rotation
|
// Test text rotation
|
||||||
procedure TestWriteReadTextRotation(AFormat:TsSpreadsheetFormat);
|
procedure TestWriteRead_TextRotation(AFormat:TsSpreadsheetFormat);
|
||||||
// Test word wrapping
|
// Test word wrapping
|
||||||
procedure TestWriteReadWordWrap(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_WordWrap(AFormat: TsSpreadsheetFormat);
|
||||||
// Test number formats
|
// Test number formats
|
||||||
procedure TestWriteReadNumberFormats(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_NumberFormats(AFormat: TsSpreadsheetFormat);
|
||||||
// Repeat with date/times
|
// Repeat with date/times
|
||||||
procedure TestWriteReadDateTimeFormats(AFormat: TsSpreadsheetFormat);
|
procedure TestWriteRead_DateTimeFormats(AFormat: TsSpreadsheetFormat);
|
||||||
|
// Test merged cells
|
||||||
|
procedure TestWriteRead_MergedCells(AFormat: TsSpreadsheetFormat);
|
||||||
|
|
||||||
published
|
published
|
||||||
// Writes out numbers & reads back.
|
// Writes out numbers & reads back.
|
||||||
@ -79,6 +81,7 @@ type
|
|||||||
procedure TestWriteRead_BIFF2_ColWidths;
|
procedure TestWriteRead_BIFF2_ColWidths;
|
||||||
procedure TestWriteRead_BIFF2_RowHeights;
|
procedure TestWriteRead_BIFF2_RowHeights;
|
||||||
procedure TestWriteRead_BIFF2_DateTimeFormats;
|
procedure TestWriteRead_BIFF2_DateTimeFormats;
|
||||||
|
procedure TestWriteRead_BIFF2_MergedCells;
|
||||||
procedure TestWriteRead_BIFF2_NumberFormats;
|
procedure TestWriteRead_BIFF2_NumberFormats;
|
||||||
// These features are not supported by Excel2 --> no test cases required!
|
// These features are not supported by Excel2 --> no test cases required!
|
||||||
// - BorderStyle
|
// - BorderStyle
|
||||||
@ -92,6 +95,7 @@ type
|
|||||||
procedure TestWriteRead_BIFF5_ColWidths;
|
procedure TestWriteRead_BIFF5_ColWidths;
|
||||||
procedure TestWriteRead_BIFF5_RowHeights;
|
procedure TestWriteRead_BIFF5_RowHeights;
|
||||||
procedure TestWriteRead_BIFF5_DateTimeFormats;
|
procedure TestWriteRead_BIFF5_DateTimeFormats;
|
||||||
|
procedure TestWriteRead_BIFF5_MergedCells;
|
||||||
procedure TestWriteRead_BIFF5_NumberFormats;
|
procedure TestWriteRead_BIFF5_NumberFormats;
|
||||||
procedure TestWriteRead_BIFF5_TextRotation;
|
procedure TestWriteRead_BIFF5_TextRotation;
|
||||||
procedure TestWriteRead_BIFF5_WordWrap;
|
procedure TestWriteRead_BIFF5_WordWrap;
|
||||||
@ -103,6 +107,7 @@ type
|
|||||||
procedure TestWriteRead_BIFF8_ColWidths;
|
procedure TestWriteRead_BIFF8_ColWidths;
|
||||||
procedure TestWriteRead_BIFF8_RowHeights;
|
procedure TestWriteRead_BIFF8_RowHeights;
|
||||||
procedure TestWriteRead_BIFF8_DateTimeFormats;
|
procedure TestWriteRead_BIFF8_DateTimeFormats;
|
||||||
|
procedure TestWriteRead_BIFF8_MergedCells;
|
||||||
procedure TestWriteRead_BIFF8_NumberFormats;
|
procedure TestWriteRead_BIFF8_NumberFormats;
|
||||||
procedure TestWriteRead_BIFF8_TextRotation;
|
procedure TestWriteRead_BIFF8_TextRotation;
|
||||||
procedure TestWriteRead_BIFF8_WordWrap;
|
procedure TestWriteRead_BIFF8_WordWrap;
|
||||||
@ -114,6 +119,7 @@ type
|
|||||||
procedure TestWriteRead_ODS_ColWidths;
|
procedure TestWriteRead_ODS_ColWidths;
|
||||||
procedure TestWriteRead_ODS_RowHeights;
|
procedure TestWriteRead_ODS_RowHeights;
|
||||||
procedure TestWriteRead_ODS_DateTimeFormats;
|
procedure TestWriteRead_ODS_DateTimeFormats;
|
||||||
|
procedure TestWriteRead_ODS_MergedCells;
|
||||||
procedure TestWriteRead_ODS_NumberFormats;
|
procedure TestWriteRead_ODS_NumberFormats;
|
||||||
procedure TestWriteRead_ODS_TextRotation;
|
procedure TestWriteRead_ODS_TextRotation;
|
||||||
procedure TestWriteRead_ODS_WordWrap;
|
procedure TestWriteRead_ODS_WordWrap;
|
||||||
@ -125,6 +131,7 @@ type
|
|||||||
procedure TestWriteRead_OOXML_ColWidths;
|
procedure TestWriteRead_OOXML_ColWidths;
|
||||||
procedure TestWriteRead_OOXML_RowHeights;
|
procedure TestWriteRead_OOXML_RowHeights;
|
||||||
procedure TestWriteRead_OOXML_DateTimeFormats;
|
procedure TestWriteRead_OOXML_DateTimeFormats;
|
||||||
|
procedure TestWriteRead_OOXML_MergedCells;
|
||||||
procedure TestWriteRead_OOXML_NumberFormats;
|
procedure TestWriteRead_OOXML_NumberFormats;
|
||||||
procedure TestWriteRead_OOXML_TextRotation;
|
procedure TestWriteRead_OOXML_TextRotation;
|
||||||
procedure TestWriteRead_OOXML_WordWrap;
|
procedure TestWriteRead_OOXML_WordWrap;
|
||||||
@ -290,7 +297,7 @@ end;
|
|||||||
|
|
||||||
{ --- Number format tests --- }
|
{ --- Number format tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadNumberFormats(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_NumberFormats(AFormat: TsSpreadsheetFormat);
|
||||||
var
|
var
|
||||||
MyWorksheet: TsWorksheet;
|
MyWorksheet: TsWorksheet;
|
||||||
MyWorkbook: TsWorkbook;
|
MyWorkbook: TsWorkbook;
|
||||||
@ -345,33 +352,33 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_NumberFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_NumberFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadNumberFormats(sfExcel2);
|
TestWriteRead_NumberFormats(sfExcel2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_NumberFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_NumberFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadNumberFormats(sfExcel5);
|
TestWriteRead_NumberFormats(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_NumberFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_NumberFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadNumberFormats(sfExcel8);
|
TestWriteRead_NumberFormats(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_NumberFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_NumberFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadNumberFormats(sfOpenDocument);
|
TestWriteRead_NumberFormats(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_NumberFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_NumberFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadNumberFormats(sfOOXML);
|
TestWriteRead_NumberFormats(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Date/time formats --- }
|
{ --- Date/time formats --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadDateTimeFormats(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_DateTimeFormats(AFormat: TsSpreadsheetFormat);
|
||||||
var
|
var
|
||||||
MyWorksheet: TsWorksheet;
|
MyWorksheet: TsWorksheet;
|
||||||
MyWorkbook: TsWorkbook;
|
MyWorkbook: TsWorkbook;
|
||||||
@ -432,32 +439,32 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_DateTimeFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_DateTimeFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadDateTimeFormats(sfExcel2);
|
TestWriteRead_DateTimeFormats(sfExcel2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_DateTimeFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_DateTimeFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadDateTimeFormats(sfExcel5);
|
TestWriteRead_DateTimeFormats(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_DateTimeFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_DateTimeFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadDateTimeFormats(sfExcel8);
|
TestWriteRead_DateTimeFormats(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_DateTimeFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_DateTimeFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadDateTimeFormats(sfOpenDocument);
|
TestWriteRead_DateTimeFormats(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_DateTimeFormats;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_DateTimeFormats;
|
||||||
begin
|
begin
|
||||||
TestWriteReadDateTimeFormats(sfOOXML);
|
TestWriteRead_DateTimeFormats(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ --- Alignment tests --- }
|
{ --- Alignment tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadAlignment(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_Alignment(AFormat: TsSpreadsheetFormat);
|
||||||
const
|
const
|
||||||
HORALIGN_TEXT: Array[TsHorAlignment] of String = ('haDefault', 'haLeft', 'haCenter', 'haRight');
|
HORALIGN_TEXT: Array[TsHorAlignment] of String = ('haDefault', 'haLeft', 'haCenter', 'haRight');
|
||||||
VERTALIGN_TEXT: Array[TsVertAlignment] of String = ('vaDefault', 'vaTop', 'vaCenter', 'vaBottom');
|
VERTALIGN_TEXT: Array[TsVertAlignment] of String = ('vaDefault', 'vaTop', 'vaCenter', 'vaBottom');
|
||||||
@ -582,33 +589,33 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_Alignment;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_Alignment;
|
||||||
begin
|
begin
|
||||||
TestWriteReadAlignment(sfExcel2);
|
TestWriteRead_Alignment(sfExcel2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_Alignment;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_Alignment;
|
||||||
begin
|
begin
|
||||||
TestWriteReadAlignment(sfExcel5);
|
TestWriteRead_Alignment(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_Alignment;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_Alignment;
|
||||||
begin
|
begin
|
||||||
TestWriteReadAlignment(sfExcel8);
|
TestWriteRead_Alignment(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_Alignment;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_Alignment;
|
||||||
begin
|
begin
|
||||||
TestWriteReadAlignment(sfOpenDocument);
|
TestWriteRead_Alignment(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_Alignment;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_Alignment;
|
||||||
begin
|
begin
|
||||||
TestWriteReadAlignment(sfOOXML);
|
TestWriteRead_Alignment(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Border on/off tests --- }
|
{ --- Border on/off tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadBorder(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_Border(AFormat: TsSpreadsheetFormat);
|
||||||
const
|
const
|
||||||
row = 0;
|
row = 0;
|
||||||
var
|
var
|
||||||
@ -686,33 +693,33 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_Border;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_Border;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorder(sfExcel2);
|
TestWriteRead_Border(sfExcel2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_Border;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_Border;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorder(sfExcel5);
|
TestWriteRead_Border(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_Border;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_Border;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorder(sfExcel8);
|
TestWriteRead_Border(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_Border;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_Border;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorder(sfOpenDocument);
|
TestWriteRead_Border(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_Border;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_Border;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorder(sfOOXML);
|
TestWriteRead_Border(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- BorderStyle tests --- }
|
{ --- BorderStyle tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadBorderStyles(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BorderStyles(AFormat: TsSpreadsheetFormat);
|
||||||
{ This test paints 10x10 cells with all borders, each separated by an empty
|
{ This test paints 10x10 cells with all borders, each separated by an empty
|
||||||
column and an empty row. The border style varies from border to border
|
column and an empty row. The border style varies from border to border
|
||||||
according to the line styles defined in SollBorderStyles. At first, all border
|
according to the line styles defined in SollBorderStyles. At first, all border
|
||||||
@ -837,28 +844,28 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_BorderStyles;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_BorderStyles;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorderStyles(sfExcel5);
|
TestWriteRead_BorderStyles(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_BorderStyles;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_BorderStyles;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorderStyles(sfExcel8);
|
TestWriteRead_BorderStyles(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_BorderStyles;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_BorderStyles;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorderStyles(sfOpenDocument);
|
TestWriteRead_BorderStyles(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_BorderStyles;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_BorderStyles;
|
||||||
begin
|
begin
|
||||||
TestWriteReadBorderStyles(sfOOXML);
|
TestWriteRead_BorderStyles(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Column widths tests --- }
|
{ --- Column widths tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadColWidths(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ColWidths(AFormat: TsSpreadsheetFormat);
|
||||||
var
|
var
|
||||||
MyWorksheet: TsWorksheet;
|
MyWorksheet: TsWorksheet;
|
||||||
MyWorkbook: TsWorkbook;
|
MyWorkbook: TsWorkbook;
|
||||||
@ -916,33 +923,33 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_ColWidths;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_ColWidths;
|
||||||
begin
|
begin
|
||||||
TestWriteReadColWidths(sfExcel2);
|
TestWriteRead_ColWidths(sfExcel2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_ColWidths;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_ColWidths;
|
||||||
begin
|
begin
|
||||||
TestWriteReadColWidths(sfExcel5);
|
TestWriteRead_ColWidths(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_ColWidths;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_ColWidths;
|
||||||
begin
|
begin
|
||||||
TestWriteReadColWidths(sfExcel8);
|
TestWriteRead_ColWidths(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_ColWidths;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_ColWidths;
|
||||||
begin
|
begin
|
||||||
TestWriteReadColWidths(sfOpenDocument);
|
TestWriteRead_ColWidths(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_ColWidths;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_ColWidths;
|
||||||
begin
|
begin
|
||||||
TestWriteReadColWidths(sfOOXML);
|
TestWriteRead_ColWidths(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Row height tests --- }
|
{ --- Row height tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadRowHeights(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_RowHeights(AFormat: TsSpreadsheetFormat);
|
||||||
var
|
var
|
||||||
MyWorksheet: TsWorksheet;
|
MyWorksheet: TsWorksheet;
|
||||||
MyWorkbook: TsWorkbook;
|
MyWorkbook: TsWorkbook;
|
||||||
@ -993,33 +1000,33 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_RowHeights;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_RowHeights;
|
||||||
begin
|
begin
|
||||||
TestWriteReadRowHeights(sfExcel2);
|
TestWriteRead_RowHeights(sfExcel2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_RowHeights;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_RowHeights;
|
||||||
begin
|
begin
|
||||||
TestWriteReadRowHeights(sfExcel5);
|
TestWriteRead_RowHeights(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_RowHeights;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_RowHeights;
|
||||||
begin
|
begin
|
||||||
TestWriteReadRowHeights(sfExcel8);
|
TestWriteRead_RowHeights(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_RowHeights;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_RowHeights;
|
||||||
begin
|
begin
|
||||||
TestWriteReadRowHeights(sfOpenDocument);
|
TestWriteRead_RowHeights(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_RowHeights;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_RowHeights;
|
||||||
begin
|
begin
|
||||||
TestWriteReadRowHeights(sfOOXML);
|
TestWriteRead_RowHeights(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Text rotation tests --- }
|
{ --- Text rotation tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadTextRotation(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_TextRotation(AFormat: TsSpreadsheetFormat);
|
||||||
const
|
const
|
||||||
col = 0;
|
col = 0;
|
||||||
var
|
var
|
||||||
@ -1083,28 +1090,28 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_TextRotation;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_TextRotation;
|
||||||
begin
|
begin
|
||||||
TestWriteReadTextRotation(sfExcel5);
|
TestWriteRead_TextRotation(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_TextRotation;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_TextRotation;
|
||||||
begin
|
begin
|
||||||
TestWriteReadTextRotation(sfExcel8);
|
TestWriteRead_TextRotation(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_TextRotation;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_TextRotation;
|
||||||
begin
|
begin
|
||||||
TestWriteReadTextRotation(sfOpenDocument);
|
TestWriteRead_TextRotation(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_TextRotation;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_TextRotation;
|
||||||
begin
|
begin
|
||||||
TestWriteReadTextRotation(sfOOXML);
|
TestWriteRead_TextRotation(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ --- Wordwrap tests --- }
|
{ --- Wordwrap tests --- }
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteReadWordWrap(AFormat: TsSpreadsheetFormat);
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_WordWrap(AFormat: TsSpreadsheetFormat);
|
||||||
const
|
const
|
||||||
LONGTEXT = 'This is a very, very, very, very long text.';
|
LONGTEXT = 'This is a very, very, very, very long text.';
|
||||||
var
|
var
|
||||||
@ -1168,25 +1175,180 @@ end;
|
|||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_Wordwrap;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_Wordwrap;
|
||||||
begin
|
begin
|
||||||
TestWriteReadWordwrap(sfExcel5);
|
TestWriteRead_Wordwrap(sfExcel5);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_Wordwrap;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_Wordwrap;
|
||||||
begin
|
begin
|
||||||
TestWriteReadWordwrap(sfExcel8);
|
TestWriteRead_Wordwrap(sfExcel8);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_Wordwrap;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_Wordwrap;
|
||||||
begin
|
begin
|
||||||
TestWriteReadWordwrap(sfOpenDocument);
|
TestWriteRead_Wordwrap(sfOpenDocument);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_Wordwrap;
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_Wordwrap;
|
||||||
begin
|
begin
|
||||||
TestWriteReadWordwrap(sfOOXML);
|
TestWriteRead_Wordwrap(sfOOXML);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ --- Merged tests --- }
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_MergedCells(AFormat: TsSpreadsheetFormat);
|
||||||
|
const
|
||||||
|
TEST_RANGES: Array[0..3] of string = ('A1:B1', 'E1:G5', 'H1:H5', 'L2:M4');
|
||||||
|
SHEETNAME1 = 'Sheet1';
|
||||||
|
SHEETNAME2 = 'Sheet2';
|
||||||
|
SHEETNAME3 = 'Sheet3';
|
||||||
|
CELL_TEXT = 'Lazarus';
|
||||||
|
var
|
||||||
|
MyWorksheet: TsWorksheet;
|
||||||
|
MyWorkbook: TsWorkbook;
|
||||||
|
cell: PCell;
|
||||||
|
TempFile: string; //write xls/xml to this file and read back from it
|
||||||
|
r1, c1, r2, c2: Cardinal;
|
||||||
|
r, c: Cardinal;
|
||||||
|
actual, expected: String;
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
MyWorkbook := TsWorkbook.Create;
|
||||||
|
try
|
||||||
|
// 1st sheet: merged ranges with text
|
||||||
|
MyWorksheet:= MyWorkBook.AddWorksheet(SHEETNAME1);
|
||||||
|
for i:=0 to High(TEST_RANGES) do
|
||||||
|
begin
|
||||||
|
ParseCellRangeString(TEST_RANGES[i], r1, c1, r2, c2);
|
||||||
|
Myworksheet.WriteUTF8Text(r1, c1, CELL_TEXT);
|
||||||
|
Myworksheet.MergeCells(r1, c1, r2, c2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
// 2nd sheet: merged ranges, empty
|
||||||
|
Myworksheet := MyWorkbook.AddWorksheet(SHEETNAME2);
|
||||||
|
for i:=0 to High(TEST_RANGES) do
|
||||||
|
begin
|
||||||
|
ParseCellRangeString(TEST_RANGES[i], r1, c1, r2, c2);
|
||||||
|
Myworksheet.MergeCells(r1, c1, r2, c2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
// 3rd sheet: merged ranges, with text, then unmerge all
|
||||||
|
MyWorksheet:= MyWorkBook.AddWorksheet(SHEETNAME3);
|
||||||
|
for i:=0 to High(TEST_RANGES) do
|
||||||
|
begin
|
||||||
|
ParseCellRangeString(TEST_RANGES[i], r1, c1, r2, c2);
|
||||||
|
Myworksheet.WriteUTF8Text(r1, c1, CELL_TEXT);
|
||||||
|
Myworksheet.MergeCells(r1, c1, r2, c2);
|
||||||
|
Myworksheet.UnmergeCells(r1, c1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
TempFile:=NewTempFile;
|
||||||
|
MyWorkBook.WriteToFile(TempFile, AFormat, true);
|
||||||
|
finally
|
||||||
|
MyWorkbook.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Open the spreadsheet
|
||||||
|
MyWorkbook := TsWorkbook.Create;
|
||||||
|
try
|
||||||
|
MyWorkbook.ReadFromFile(TempFile, AFormat);
|
||||||
|
|
||||||
|
// 1st sheet: merged cells with text
|
||||||
|
if AFormat = sfExcel2 then
|
||||||
|
MyWorksheet := MyWorkbook.GetFirstWorksheet
|
||||||
|
else
|
||||||
|
MyWorksheet := GetWorksheetByName(MyWorkBook, SHEETNAME1);
|
||||||
|
if MyWorksheet=nil then
|
||||||
|
fail('Error in test code. Failed to get named worksheet ' + SHEETNAME1);
|
||||||
|
for i:=0 to High(TEST_RANGES) do begin
|
||||||
|
ParseCellRangeString(TEST_RANGES[i], r1, c1, r2, c2);
|
||||||
|
cell := MyWorksheet.FindCell(r1, c1);
|
||||||
|
if MyWorksheet.IsMergeBase(cell) then begin
|
||||||
|
MyWorksheet.FindMergedRange(cell, r1, c1, r2, c2);
|
||||||
|
actual := GetCellRangeString(r1, c1, r2, c2);
|
||||||
|
expected := TEST_RANGES[i];
|
||||||
|
if AFormat in [sfExcel2, sfExcel5] then
|
||||||
|
CheckNotEquals(expected, actual, 'No merged cells expected, ' + expected)
|
||||||
|
else
|
||||||
|
CheckEquals(expected, actual, 'Merged cell range mismatch, ' + expected);
|
||||||
|
end else
|
||||||
|
if not (AFormat in [sfExcel2, sfExcel5]) then
|
||||||
|
fail('Unmerged cell found, ' + CellNotation(MyWorksheet, r1, c1));
|
||||||
|
CheckEquals(CELL_TEXT, MyWorksheet.ReadAsUTF8Text(cell),
|
||||||
|
'Merged cell content mismatch, cell '+ CellNotation(MyWorksheet, r1, c1));
|
||||||
|
end;
|
||||||
|
|
||||||
|
if AFormat = sfExcel2 then
|
||||||
|
exit; // only 1 page in Excel2
|
||||||
|
|
||||||
|
// 2nd sheet: merged empty cells
|
||||||
|
MyWorksheet := GetWorksheetByName(MyWorkBook, SHEETNAME2);
|
||||||
|
if MyWorksheet=nil then
|
||||||
|
fail('Error in test code. Failed to get named worksheet' + SHEETNAME2);
|
||||||
|
for i:=0 to High(TEST_RANGES) do begin
|
||||||
|
ParseCellRangeString(TEST_RANGES[i], r1, c1, r2, c2);
|
||||||
|
cell := MyWorksheet.FindCell(r1, c1);
|
||||||
|
if MyWorksheet.IsMergeBase(cell) then begin
|
||||||
|
MyWorksheet.FindMergedRange(cell, r1, c1, r2, c2);
|
||||||
|
actual := GetCellRangeString(r1, c1, r2, c2);
|
||||||
|
expected := TEST_RANGES[i];
|
||||||
|
if AFormat = sfExcel5 then
|
||||||
|
CheckNotEquals(expected, actual, 'Merged cells found in Excel5, ' + expected)
|
||||||
|
else
|
||||||
|
CheckEquals(expected, actual, 'Merged cell range mismatch, ' + expected);
|
||||||
|
end else
|
||||||
|
if AFormat <> sfExcel5 then
|
||||||
|
fail('Unmerged cell found, ' + CellNotation(MyWorksheet, r1, c1));
|
||||||
|
CheckEquals('', MyWorksheet.ReadAsUTF8Text(cell),
|
||||||
|
'Merged cell content mismatch, cell '+CellNotation(MyWorksheet, r1, c1));
|
||||||
|
end;
|
||||||
|
|
||||||
|
// 3rd sheet: merged & unmerged cells
|
||||||
|
MyWorksheet := GetWorksheetByName(MyWorkBook, SHEETNAME3);
|
||||||
|
if MyWorksheet=nil then
|
||||||
|
fail('Error in test code. Failed to get named worksheet' + SHEETNAME3);
|
||||||
|
for i:=0 to High(TEST_RANGES) do begin
|
||||||
|
ParseCellRangeString(TEST_RANGES[i], r1, c1, r2, c2);
|
||||||
|
cell := MyWorksheet.FindCell(r1, c1);
|
||||||
|
if MyWorksheet.IsMergeBase(cell) then
|
||||||
|
fail('Unmerged cell expected, cell ' + CellNotation(MyWorksheet, r1, c1));
|
||||||
|
CheckEquals(CELL_TEXT, MyWorksheet.ReadAsUTF8Text(cell),
|
||||||
|
'Merged/unmerged cell content mismatch, cell '+CellNotation(MyWorksheet, r1, c1));
|
||||||
|
end;
|
||||||
|
|
||||||
|
finally
|
||||||
|
MyWorkbook.Free;
|
||||||
|
DeleteFile(TempFile);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF2_MergedCells;
|
||||||
|
begin
|
||||||
|
TestWriteRead_MergedCells(sfExcel2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF5_MergedCells;
|
||||||
|
begin
|
||||||
|
TestWriteRead_MergedCells(sfExcel5);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_BIFF8_MergedCells;
|
||||||
|
begin
|
||||||
|
TestWriteRead_MergedCells(sfExcel8);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_ODS_MergedCells;
|
||||||
|
begin
|
||||||
|
TestWriteRead_MergedCells(sfOpenDocument);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteRead_OOXML_MergedCells;
|
||||||
|
begin
|
||||||
|
TestWriteRead_MergedCells(sfOOXML);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterTest(TSpreadWriteReadFormatTests);
|
RegisterTest(TSpreadWriteReadFormatTests);
|
||||||
InitSollFmtData;
|
InitSollFmtData;
|
||||||
|
@ -11,6 +11,7 @@ uses
|
|||||||
procedure WriteRPNFormulaSamples(Worksheet: TsWorksheet;
|
procedure WriteRPNFormulaSamples(Worksheet: TsWorksheet;
|
||||||
AFormat: TsSpreadsheetFormat; IncludeErrors: Boolean);
|
AFormat: TsSpreadsheetFormat; IncludeErrors: Boolean);
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
|
@ -48,7 +48,6 @@
|
|||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="datetests.pas"/>
|
<Filename Value="datetests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="datetests"/>
|
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="stringtests.pas"/>
|
<Filename Value="stringtests.pas"/>
|
||||||
@ -57,6 +56,7 @@
|
|||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="numberstests.pas"/>
|
<Filename Value="numberstests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="numberstests"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="manualtests.pas"/>
|
<Filename Value="manualtests.pas"/>
|
||||||
@ -66,20 +66,20 @@
|
|||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="testsutility.pas"/>
|
<Filename Value="testsutility.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="testsutility"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="internaltests.pas"/>
|
<Filename Value="internaltests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="internaltests"/>
|
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="formattests.pas"/>
|
<Filename Value="formattests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="formattests"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="colortests.pas"/>
|
<Filename Value="colortests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="colortests"/>
|
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="fonttests.pas"/>
|
<Filename Value="fonttests.pas"/>
|
||||||
@ -110,12 +110,10 @@
|
|||||||
<Unit15>
|
<Unit15>
|
||||||
<Filename Value="errortests.pas"/>
|
<Filename Value="errortests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="errortests"/>
|
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<Filename Value="virtualmodetests.pas"/>
|
<Filename Value="virtualmodetests.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="virtualmodetests"/>
|
|
||||||
</Unit16>
|
</Unit16>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
Reference in New Issue
Block a user