Fórum Salvar extensão XLS independente da versão do Office? #404007
29/06/2011
0
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.
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
Curtir tópico
+ 0
Responder
Posts
30/06/2011
Adriano Dolce
Resolvido, faltava apenas um parametro no SaveAs
Planilha.ActiveWorkbook.SaveAs(CaminhoAnexo, 56);
Simples assim
Obrigado pessoal.
Planilha.ActiveWorkbook.SaveAs(CaminhoAnexo, 56);
Simples assim
Obrigado pessoal.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)