2009-01-28 22:36:41 +00:00
|
|
|
{
|
|
|
|
opendocwrite.dpr
|
|
|
|
|
|
|
|
Demonstrates how to write an OpenDocument file using the fpspreadsheet library
|
|
|
|
|
|
|
|
AUTHORS: Felipe Monteiro de Carvalho
|
|
|
|
}
|
|
|
|
program opendocwrite;
|
|
|
|
|
|
|
|
{$mode delphi}{$H+}
|
|
|
|
|
|
|
|
uses
|
2009-02-02 09:58:51 +00:00
|
|
|
Classes, SysUtils, fpspreadsheet, fpsallformats,
|
|
|
|
laz_fpspreadsheet;
|
2009-01-28 22:36:41 +00:00
|
|
|
|
|
|
|
var
|
|
|
|
MyWorkbook: TsWorkbook;
|
|
|
|
MyWorksheet: TsWorksheet;
|
|
|
|
MyDir: string;
|
2014-06-16 14:38:17 +00:00
|
|
|
number1, number2, number3, number4,
|
|
|
|
number5, number6, number7, number8: Double;
|
2014-06-17 11:57:03 +00:00
|
|
|
row: Integer = 7;
|
2009-01-28 22:36:41 +00:00
|
|
|
begin
|
|
|
|
MyDir := ExtractFilePath(ParamStr(0));
|
2014-06-16 14:38:17 +00:00
|
|
|
number1 := 1.23456789;
|
|
|
|
number2 := -number1;
|
|
|
|
number3 := 0.123456789;
|
|
|
|
number4 := -number3;
|
|
|
|
number5 := 10000*number1;
|
|
|
|
number6 := -10000*number1;
|
|
|
|
number7 := 1/number3;
|
|
|
|
number8 := -1/number3;
|
2009-01-28 22:36:41 +00:00
|
|
|
|
|
|
|
// Create the spreadsheet
|
|
|
|
MyWorkbook := TsWorkbook.Create;
|
|
|
|
MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet');
|
|
|
|
|
2009-02-03 09:41:17 +00:00
|
|
|
// Write some cells
|
2014-06-18 07:44:02 +00:00
|
|
|
MyWorksheet.WriteNumber(0, 0, 1.0, nfPercentage, 2);// A1
|
|
|
|
(*
|
2009-02-03 09:41:17 +00:00
|
|
|
MyWorksheet.WriteNumber(0, 1, 2.0);// B1
|
|
|
|
MyWorksheet.WriteNumber(0, 2, 3.0);// C1
|
|
|
|
MyWorksheet.WriteNumber(0, 3, 4.0);// D1
|
|
|
|
MyWorksheet.WriteUTF8Text(4, 2, 'Total:');// C5
|
|
|
|
MyWorksheet.WriteNumber(4, 3, 10); // D5
|
2013-12-22 14:02:04 +00:00
|
|
|
MyWorksheet.WriteDateTime(5, 0, now);
|
2014-05-31 21:04:53 +00:00
|
|
|
|
2010-12-08 10:24:15 +00:00
|
|
|
// Add some formatting
|
|
|
|
MyWorksheet.WriteUsedFormatting(0, 0, [uffBold]);
|
2014-06-06 13:09:14 +00:00
|
|
|
MyWorksheet.WriteFont(0, 1, 'Times New Roman', 16, [], scRed);
|
2009-01-28 22:36:41 +00:00
|
|
|
|
2014-06-16 14:38:17 +00:00
|
|
|
// Show number formats
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'Number formats:');
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfGeneral');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfGeneral);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfGeneral);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfFixed, 0 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfFixed, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfFixed, 0);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfFixed, 2 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfFixed, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfFixed, 2);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfFixed, 3 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfFixed, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfFixed, 3);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfFixedTh, 0 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfFixedTh, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfFixedTh, 0);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfFixedTh, 2 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfFixedTh, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfFixedTh, 2);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfFixedTh, 3 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfFixedTh, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfFixedTh, 3);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfPercentage, 0 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfPercentage, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfPercentage, 0);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfPercentage, 2 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfPercentage, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfPercentage, 2);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfPercentage, 3 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfPercentage, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfPercentage, 3);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfExp, 0 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfExp, 0);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfExp, 0);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfExp, 2 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfExp, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfExp, 2);
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfExp, 3 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfExp, 3);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfExp, 3);
|
2014-06-16 16:32:39 +00:00
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfSci, 2 decimals');
|
|
|
|
MyWorksheet.WriteNumber(row, 1, number1, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 2, number2, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 3, number3, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 4, number4, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 5, number5, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 6, number6, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 7, number7, nfSci, 2);
|
|
|
|
MyWorksheet.WriteNumber(row, 8, number8, nfSci, 2);
|
2014-06-17 09:06:34 +00:00
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfCurrency, 2 decimals');
|
|
|
|
MyWorksheet.WriteCurrency(row, 1, number1, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 2, number2, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 3, number3, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 4, number4, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 5, number5, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 6, number6, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 7, number7, nfCurrency, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 8, number8, nfCurrency, 2, '$');
|
|
|
|
inc(row);
|
2014-06-17 21:56:49 +00:00
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfCurrencyRed, 2 decimals, >0: $ 1000, <0: ($ 1000)');
|
2014-06-17 09:06:34 +00:00
|
|
|
MyWorksheet.WriteCurrency(row, 1, number1, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 2, number2, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 3, number3, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 4, number4, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 5, number5, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 6, number6, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 7, number7, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
|
|
|
MyWorksheet.WriteCurrency(row, 8, number8, nfCurrencyRed, 2, '$', pcfCSV, ncfBCSVB);
|
2014-06-17 21:56:49 +00:00
|
|
|
inc(row);
|
|
|
|
// Note: nfAccounting's not supported by ods, will be replaced by nfCurrency's
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfAccounting, 2 decimals');
|
|
|
|
MyWorksheet.WriteCurrency(row, 1, number1, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 2, number2, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 3, number3, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 4, number4, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 5, number5, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 6, number6, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 7, number7, nfAccounting, 2, '$');
|
|
|
|
MyWorksheet.WriteCurrency(row, 8, number8, nfAccounting, 2, '$');
|
|
|
|
inc(row);
|
|
|
|
MyWorksheet.WriteUTF8Text(row, 0, 'nfAccountingRed, 2 decimals, >0: EUR 1000, <0: -EUR 1000)');
|
|
|
|
MyWorksheet.WriteCurrency(row, 1, number1, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 2, number2, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 3, number3, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 4, number4, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 5, number5, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 6, number6, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 7, number7, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
|
|
|
MyWorksheet.WriteCurrency(row, 8, number8, nfAccountingRed, 2, 'EUR', pcfCSV, ncfMCSV);
|
2014-06-16 14:38:17 +00:00
|
|
|
|
2009-02-02 09:58:51 +00:00
|
|
|
// Creates a new worksheet
|
|
|
|
MyWorksheet := MyWorkbook.AddWorksheet('My Worksheet 2');
|
2014-06-18 07:44:02 +00:00
|
|
|
*)
|
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.ods',
|
|
|
|
sfOpenDocument);
|
2009-01-28 22:36:41 +00:00
|
|
|
MyWorkbook.Free;
|
|
|
|
end.
|
|
|
|
|