Salvar extensão XLS independente da versão do Office?

Delphi

29/06/2011

Pessoal, preciso gravar uma planilha em excel mais no formato XLS e não XLSX como faz estas versões do 2007 acima.

Fiz assim (Estou usando Delphi 5)
procedure TF_Calculo.SalvaPlanilha(Planilha: Variant);
var
  sVersaoExcel: String;
begin
  //Salva a planilha
  //Se a versão do excel form 2007 ou superior salva em XLSX
  sVersaoExcel := Format('Excel Version %s: ', [Planilha.Version]);
  if sVersaoExcel >= 'Excel Version 12.0' then
    CaminhoAnexo := 'C:\Temp\Inadimplentes.xlsx'
  //Se a versão do excel for inferior ao 2007 então salva no formato XLS
  else
   CaminhoAnexo := 'C:\Temp\Inadimplentes.xls';
 
  if FileExists(CaminhoAnexo) then
    DeleteFile(CaminhoAnexo);
 
  // o SaveAs permite que vc salve automáticamente o relatório gerado
  Planilha.ActiveWorkbook.SaveAs(CaminhoAnexo);
  //Para garantir -> Se ocorrer um erro e não criou o arquivo
  //para anexar então não envia o email
  if not(FileExists(CaminhoAnexo)) then
  begin
    ShowMessage('');
    Exit;
  end;
end;

Mais como tem muito que não tem a versão 2007 acima, não estão conseguindo abrir na extensão XLXS,
e o computador que uso não posso saber qual versão esta o excel.





Adriano Dolce

Adriano Dolce

Curtidas 0

Respostas

Adriano Dolce

Adriano Dolce

29/06/2011

Resolvido, faltava apenas um parametro no SaveAs

Planilha.ActiveWorkbook.SaveAs(CaminhoAnexo, 56);

Simples assim

Obrigado pessoal.
GOSTEI 0
POSTAR