fpspreadsheet: Add support for format xlsm
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4967 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
77e0cb052a
commit
5782410686
@ -253,14 +253,31 @@ end;
|
||||
|
||||
function TsSpreadFormatRegistry.GetAllExcelFilesMask(AExtSeparator: Char): String;
|
||||
var
|
||||
j: Integer;
|
||||
L: TStrings;
|
||||
data: TsSpreadFormatData;
|
||||
ext: String;
|
||||
begin
|
||||
L := TStringList.Create;
|
||||
try
|
||||
// good old BIFF...
|
||||
if (IndexOf(ord(sfExcel8)) <> -1) or
|
||||
(IndexOf(ord(sfExcel5)) <> -1) or
|
||||
(IndexOf(ord(sfExcel2)) <> -1) then L.Add('*.xls');
|
||||
if (IndexOf(ord(sfOOXML)) <> -1) then L.Add('*.xlsx');
|
||||
|
||||
// Excel 2007+
|
||||
j := IndexOf(ord(sfOOXML));
|
||||
if j <> -1 then
|
||||
begin
|
||||
data := TsSpreadFormatData(FList[j]);
|
||||
for j:=0 to data.FileExtensionCount-1 do
|
||||
begin
|
||||
ext := data.FileExtension[j];
|
||||
if L.IndexOf(ext) = -1 then
|
||||
L.Add('*' + ext);
|
||||
end;
|
||||
end;
|
||||
|
||||
L.Delimiter := AExtSeparator;
|
||||
L.StrictDelimiter := true;
|
||||
Result := L.DelimitedText;
|
||||
@ -363,7 +380,7 @@ function TsSpreadFormatRegistry.GetFormatArrayFromFileName(
|
||||
APriorityFormat: TsSpreadFormatID = sfidUnknown): TsSpreadFormatIDArray;
|
||||
var
|
||||
idx: Integer;
|
||||
i, n: Integer;
|
||||
i, j, n: Integer;
|
||||
ext: String;
|
||||
data: TsSpreadFormatData;
|
||||
begin
|
||||
@ -385,13 +402,15 @@ begin
|
||||
faRead : if data.ReaderClass = nil then Continue;
|
||||
faWrite : if data.WriterClass = nil then Continue;
|
||||
end;
|
||||
if Lowercase(data.FileExtension[0]) = ext then
|
||||
begin
|
||||
Result[n] := data.FormatID;
|
||||
inc(n);
|
||||
end;
|
||||
for j:=0 to data.FileExtensionCount-1 do
|
||||
if Lowercase(data.FileExtension[j]) = ext then
|
||||
begin
|
||||
Result[n] := data.FormatID;
|
||||
inc(n);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
SetLength(Result, n);
|
||||
|
||||
if APriorityFormat <> sfidUnknown then
|
||||
|
@ -9,7 +9,6 @@
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="."/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
|
@ -2919,7 +2919,7 @@ begin
|
||||
InitCell(lCell);
|
||||
value := varNull;
|
||||
styleCell := nil;
|
||||
Workbook.OnWriteCellData(Workbook, r, c, value, styleCell);
|
||||
Workbook.OnWriteCellData(FWorkbook, r, c, value, styleCell);
|
||||
if styleCell <> nil then
|
||||
lCell := styleCell^;
|
||||
lCell.Row := r;
|
||||
@ -4706,7 +4706,7 @@ initialization
|
||||
// Registers this reader / writer on fpSpreadsheet
|
||||
sfidOOXML := RegisterSpreadFormat(sfOOXML,
|
||||
TsSpreadOOXMLReader, TsSpreadOOXMLWriter,
|
||||
STR_FILEFORMAT_EXCEL_XLSX, 'OOXML', [STR_OOXML_EXCEL_EXTENSION]
|
||||
STR_FILEFORMAT_EXCEL_XLSX, 'OOXML', [STR_OOXML_EXCEL_EXTENSION, '.xlsm']
|
||||
);
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user