Transformar XLS em CSV

04/07/2013

0

Amigos, gostaria de saber se consigo de alguma forma através do Delphi, converter um arquivo XlS para o formato CSV.

SEM QUE SEJA NECESSÁRIO O OFFICE INSTALADO NA MAQUINA!

Com o Office na maquina, fiz dessa forma e funcionou perfeitamente
const
  xlCSV = $00000006;
var
  xls, xlw: Variant;
begin
  try
    xls := GetActiveOleObject('Excel.Application');
  except
    xls := CreateOleObject('Excel.Application');
  end;
  xls.DisplayAlerts := False;
  xlw := xls.WorkBooks.Open(Format('%s\Layout.xlsx',[ExtractFileDir(ParamStr(0))]));
  xlw.SaveAs(Format('%s\Layout.csv',[ExtractFileDir(ParamStr(0))]), xlCSV);
  xlw.Close;
  xlw := UnAssigned;
  xls.Quit;
  xls := UnAssigned;
end;


Sem o Office, sem chance obviamente. Porem gostaria de saber se existe outra forma de fazer isso.

[]'s
Diego Garcia

Diego Garcia

Responder

Posts

04/07/2013

Diego Garcia

por algum motivo, o código foi estranho

const
  xlCSV = $00000006;
var
  xls, xlw: Variant;
begin
  try
    xls := GetActiveOleObject('Excel.Application');
  except
    xls := CreateOleObject('Excel.Application');
  end;
  xls.DisplayAlerts := False;
  xlw := xls.WorkBooks.Open(Format('%s\Layout.xlsx',[ExtractFileDir(ParamStr(0))]));
  xlw.SaveAs(Format('%s\Layout.csv',[ExtractFileDir(ParamStr(0))]), xlCSV);
  xlw.Close;
  xlw := UnAssigned;
  xls.Quit;
  xls := UnAssigned;
end;
Responder

21/07/2015

Claudio Ferreira

Imagino pela data do post que voce já tenha resolvido, achei seu post porque também estava a procura desse tipo de solução, encontrei com um colega, faz exatamente isso :

http://jbsolucoes.net/xls2csv/
Responder

08/09/2020

Vicente Santos

Amigos, gostaria de saber se consigo de alguma forma através do Delphi, converter um arquivo XlS para o formato CSV.

SEM QUE SEJA NECESSÁRIO O OFFICE INSTALADO NA MAQUINA!

Com o Office na maquina, fiz dessa forma e funcionou perfeitamente
const
  xlCSV = $00000006;
var
  xls, xlw: Variant;
begin
  try
    xls := GetActiveOleObject('Excel.Application');
  except
    xls := CreateOleObject('Excel.Application');
  end;
  xls.DisplayAlerts := False;
  xlw := xls.WorkBooks.Open(Format('%s\\Layout.xlsx',[ExtractFileDir(ParamStr(0))]));
  xlw.SaveAs(Format('%s\\Layout.csv',[ExtractFileDir(ParamStr(0))]), xlCSV);
  xlw.Close;
  xlw := UnAssigned;
  xls.Quit;
  xls := UnAssigned;
end;


Sem o Office, sem chance obviamente. Porem gostaria de saber se existe outra forma de fazer isso.

[]'s


o meu deu certo ,mas no caso no lugar do ponto e virgula veio somente a virgula, para separar os campos, oque deve ser feito,?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar