Transformar XLS em CSV

Delphi

04/07/2013

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

Curtidas 0

Respostas

Diego Garcia

Diego Garcia

04/07/2013

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;
GOSTEI 0
Claudio Ferreira

Claudio Ferreira

04/07/2013

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/
GOSTEI 0
Vicente Santos

Vicente Santos

04/07/2013

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,?
GOSTEI 0
POSTAR