2009-01-28 22:36:41 +00:00
|
|
|
{
|
2014-06-26 07:15:51 +00:00
|
|
|
ooxmlwrite.lpr
|
2009-01-28 22:36:41 +00:00
|
|
|
|
|
|
|
Demonstrates how to write an OOXML file using the fpspreadsheet library
|
|
|
|
|
|
|
|
AUTHORS: Felipe Monteiro de Carvalho
|
|
|
|
}
|
|
|
|
program ooxmlwrite;
|
|
|
|
|
|
|
|
{$mode delphi}{$H+}
|
|
|
|
|
|
|
|
uses
|
|
|
|
Classes, SysUtils, fpspreadsheet, fpsallformats, laz_fpspreadsheet;
|
|
|
|
|
|
|
|
var
|
|
|
|
MyWorkbook: TsWorkbook;
|
|
|
|
MyWorksheet: TsWorksheet;
|
|
|
|
MyDir: string;
|
|
|
|
i: Integer;
|
|
|
|
a: TStringList;
|
2011-09-01 07:55:12 +00:00
|
|
|
MyCell: PCell;
|
2009-01-28 22:36:41 +00:00
|
|
|
begin
|
|
|
|
// Open the output file
|
|
|
|
MyDir := ExtractFilePath(ParamStr(0));
|
|
|
|
|
|
|
|
// Create the spreadsheet
|
|
|
|
MyWorkbook := TsWorkbook.Create;
|
|
|
|
MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet');
|
|
|
|
|
|
|
|
// Write some number cells
|
|
|
|
MyWorksheet.WriteNumber(0, 0, 1.0);
|
|
|
|
MyWorksheet.WriteNumber(0, 1, 2.0);
|
|
|
|
MyWorksheet.WriteNumber(0, 2, 3.0);
|
|
|
|
MyWorksheet.WriteNumber(0, 3, 4.0);
|
2014-07-08 20:52:59 +00:00
|
|
|
MyWorksheet.WriteUTF8Text(0, 4, '& " '' < >');
|
2009-01-28 22:36:41 +00:00
|
|
|
|
2014-07-03 16:12:43 +00:00
|
|
|
MyWorksheet.WriteUTF8Text(0, 26, 'AA'); // Test for column name
|
|
|
|
|
2014-07-15 13:31:45 +00:00
|
|
|
MyWorksheet.WriteColWidth(0, 20);
|
|
|
|
MyWorksheet.WriteRowHeight(0, 4);
|
|
|
|
|
2013-12-22 14:02:04 +00:00
|
|
|
// Uncomment this to test large XLS files
|
2011-09-01 07:55:12 +00:00
|
|
|
for i := 2 to 2{20} do
|
2009-01-28 22:36:41 +00:00
|
|
|
begin
|
2011-09-01 07:55:12 +00:00
|
|
|
MyWorksheet.WriteUTF8Text(i, 0, ParamStr(0));
|
|
|
|
MyWorksheet.WriteUTF8Text(i, 1, ParamStr(0));
|
|
|
|
MyWorksheet.WriteUTF8Text(i, 2, ParamStr(0));
|
|
|
|
MyWorksheet.WriteUTF8Text(i, 3, ParamStr(0));
|
2009-01-28 22:36:41 +00:00
|
|
|
end;
|
2011-09-01 07:55:12 +00:00
|
|
|
|
|
|
|
// Test for Bold
|
|
|
|
MyCell := MyWorksheet.GetCell(2, 0);
|
|
|
|
MyCell^.UsedFormattingFields := [uffBold];
|
|
|
|
MyCell := MyWorksheet.GetCell(2, 1);
|
|
|
|
MyCell^.UsedFormattingFields := [uffBold];
|
|
|
|
MyCell := MyWorksheet.GetCell(2, 2);
|
|
|
|
MyCell^.UsedFormattingFields := [uffBold];
|
|
|
|
MyCell := MyWorksheet.GetCell(2, 3);
|
|
|
|
MyCell^.UsedFormattingFields := [uffBold];
|
2009-01-28 22:36:41 +00:00
|
|
|
|
2014-07-13 22:09:27 +00:00
|
|
|
// Background and text color
|
|
|
|
MyWorksheet.WriteUTF8Text(4, 0, 'white on red');
|
|
|
|
Myworksheet.WriteBackgroundColor(4, 0, scRed);
|
|
|
|
MyWorksheet.WriteFontColor(4, 0, scWhite);
|
|
|
|
|
|
|
|
// Border
|
|
|
|
MyWorksheet.WriteUTF8Text(4, 2, 'left/right');
|
|
|
|
Myworksheet.WriteBorders(4, 2, [cbWest, cbEast]);
|
|
|
|
MyWorksheet.WriteHorAlignment(4, 2, haCenter);
|
|
|
|
|
|
|
|
Myworksheet.WriteUTF8Text(4, 4, 'top/bottom');
|
|
|
|
Myworksheet.WriteBorders(4, 4, [cbNorth, cbSouth]);
|
|
|
|
MyWorksheet.WriteBorderStyle(4, 4, cbSouth, lsThick, scBlue);
|
|
|
|
Myworksheet.WriteHorAlignment(4, 4, haRight);
|
|
|
|
|
2014-07-14 07:58:45 +00:00
|
|
|
// Wordwrap
|
|
|
|
MyWorksheet.WriteUTF8Text(4, 6, 'This is a long, long, long, wrapped text.');
|
|
|
|
MyWorksheet.WriteWordwrap(4, 6, true);
|
|
|
|
|
2009-01-28 22:36:41 +00:00
|
|
|
// Creates a new worksheet
|
|
|
|
MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet 2');
|
|
|
|
|
|
|
|
// Write some string cells
|
|
|
|
MyWorksheet.WriteUTF8Text(0, 0, 'First');
|
|
|
|
MyWorksheet.WriteUTF8Text(0, 1, 'Second');
|
|
|
|
MyWorksheet.WriteUTF8Text(0, 2, 'Third');
|
|
|
|
MyWorksheet.WriteUTF8Text(0, 3, 'Fourth');
|
|
|
|
|
2013-12-22 14:02:04 +00:00
|
|
|
// Write current date/time
|
|
|
|
MyWorksheet.WriteDateTime(0, 5, now);
|
|
|
|
|
2009-01-28 22:36:41 +00:00
|
|
|
// Save the spreadsheet to a file
|
2009-02-02 09:58:51 +00:00
|
|
|
MyWorkbook.WriteToFile(MyDir + 'test.xlsx', sfOOXML);
|
2009-01-28 22:36:41 +00:00
|
|
|
MyWorkbook.Free;
|
|
|
|
end.
|
|
|
|
|