Newsgroup: it.comp.lang.delphi
Titolo: Leggere e scrivere file excel

Salve a tutti, (altro problemino :)
ho la necessità di dover leggere (ed eventualmente scrivere) un file excel
da delphi 7, non è che sapete indirizzarmi nel metodo più efficente (e
magari facile :p)?
Grazie per l'attenzione :)

ciao, hai provato con oleautomation di microsoft??
usando componente ole di excel?
Simone
"Kjow" <no...@do.qui> ha scritto nel messaggio
news:y1tF9.6160$qF1.2...@news2.tin.it...


"Kjow" <no...@do.qui> ha scritto nel messaggio
news:y1tF9.6160$qF1.2...@news2.tin.it...

Ecco del codice che lo fa : non so se è il migliore o il più facile :-)
Devi mettere nelle uses la ComObj
procedure TForm1i.BExcelClick(Sender: TObject);
var
   Excel:variant;
   Book, Sheet: Variant;
begin
   // scrive su excel
   Excel:=UnAssigned;
   Excel:=CreateOleObject('Excel.Application');
   Excel.Visible:=true;
   Excel.DisplayAlerts:=false;
   //SetForegroundWindow(Handle);
   Excel.WorkBooks.add;
   sheet:=Excel.ActiveSheet;
   // scrive celle
   Sheet.Cells.item[1,1].value:='Dati di prova';
   Sheet.Cells.item[3,1].value:=1250
  // legge celle
  var:=Sheet.Cells.item[5,2].value;
eccetera
   // per salvare il foglio
   Excel.ActiveWorkbook.SaveAs(FileName:='c:\pippo.xls');
   // chiude excel
   try
      book:=Excel.ActiveWorkBook;
      if VarIsEmpty(book)=false then book.Close;
      Excel.Quit;
   finally
      Excel:=Unassigned;
   end;
end;
Ciao da Giulio

 magari facile :p)?
Imho la via più semplice è l' automazione ole.
Sul mio sito (
http://members.fortunecity.it/cbertu/
) nella sezione utilità
varie ho pubblicato un documento che raccoglie qualche funzione
interessante! ;-)
--
- Carlo -

 Grazie per l'attenzione :)
Ragazzi... sono allibito :-o
Siete fantastici :-D
Non so come ringraziarvi :)))

 funzione interessante! ;-)
Ho scaricato il documento e ho provato ad aprire da Delphi 7 un file xls.
Se passo un Variant mi dice che l'operazione:
  Excel.Workbooks.Open[FileName];
e' invalida.
Se passo un TExcelApplication e lascio variant nella funzione mi dice che 
i tipi non sono compatibili.
Se cambio la funzione e metto un TExcelApplication come varibile in 
ingresso allora mi dice che l'istruzione:
  Excel.Workbooks.Open[FileName];
e' incompleta. In effetti mancano moltissimi parametri!
Dove sbaglio?
-- 
Ciao,
   Stefano

 Dove sbaglio?
In effetti ho lo stesso problema :(

Kjow wrote:

Pare che ho risolto.
Allora, come postato da Unisoft, occorre dichiarare una variabile di tipo 
Variant, che, con estrema fantasia, chiamero' Excel. Poi occorre creare 
l'oggetto Ole e quindi si puo', come postato da Carlo Bertuccini, usare le 
procedure pronte da lui preparate
{questa e' la funzione presa dal documento di Carlo}
function ExcelOpenFile(Excel: Variant; FileName: string): Boolean;
begin
  Result:=True;
  try
    Excel.Workbooks.Open[FileName];
  except
    MessageDlg('Unable to locate '+FileName, mtError, [mbOK], 0);
    Result:=False;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  Excel: Variant;
begin
  if OpendDialog.Execute then 
  begin
    Excel:=UnAssigned;
    Excel:=CreateOleObject('Excel.Application');
    Excel.Visible:=True;  {questo fa partire Excel}
    ExcelOpenFile(Excel, OpenDialog.FileName);
  end;
end;
Io credevo che TExcelApplication fosse cio' che cercavo ma non era cosi'.
-- 
Ciao,
   Stefano