From 7f8e1edddb875bf338557db08c090cb9840c3aa5 Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Wed, 25 May 2011 13:52:46 +0000 Subject: [PATCH] FPSpreadsheet: Adds a reader method which guesses the format from the extension. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1642 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../excel8demo/excel8write_format.lpi | 117 +----------------- components/fpspreadsheet/fpspreadsheet.pas | 18 ++- 2 files changed, 20 insertions(+), 115 deletions(-) diff --git a/components/fpspreadsheet/examples/excel8demo/excel8write_format.lpi b/components/fpspreadsheet/examples/excel8demo/excel8write_format.lpi index 381488aa5..e40d98a11 100644 --- a/components/fpspreadsheet/examples/excel8demo/excel8write_format.lpi +++ b/components/fpspreadsheet/examples/excel8demo/excel8write_format.lpi @@ -9,11 +9,11 @@ + - @@ -21,7 +21,7 @@ - + @@ -39,124 +39,13 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index 2a118e9e5..a5a331f46 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -190,7 +190,8 @@ type destructor Destroy; override; function CreateSpreadReader(AFormat: TsSpreadsheetFormat): TsCustomSpreadReader; function CreateSpreadWriter(AFormat: TsSpreadsheetFormat): TsCustomSpreadWriter; - procedure ReadFromFile(AFileName: string; AFormat: TsSpreadsheetFormat); + procedure ReadFromFile(AFileName: string; AFormat: TsSpreadsheetFormat); overload; + procedure ReadFromFile(AFileName: string); overload; procedure ReadFromStream(AStream: TStream; AFormat: TsSpreadsheetFormat); procedure WriteToFile(const AFileName: string; const AFormat: TsSpreadsheetFormat; @@ -777,6 +778,21 @@ begin end; end; +{@@ + Reads the document from a file. This method will try to guess the format from + the extension. In the case of the ambiguous xls extension, it will simply + assume that it is BIFF8. Note that it could be BIFF2, 3, 4 or 5 too. +} +procedure TsWorkbook.ReadFromFile(AFileName: string); +var + Str: String; +begin + Str := ExtractFileExt(AFileName); + if Str = STR_EXCEL_EXTENSION then ReadFromFile(AFileName, sfExcel8) + else if Str = STR_OOXML_EXCEL_EXTENSION then ReadFromFile(AFileName, sfOOXML) + else if Str = STR_OPENDOCUMENT_CALC_EXTENSION then ReadFromFile(AFileName, sfOpenDocument); +end; + {@@ Reads the document from a seekable stream. }