Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    [Delphi] Scrivere un XLS in formato nativo

    Salve a tutti,
    volevo sapere se qualcuno di voi conoscesse un componente Delphi (opensource o proprietario) che permetta di scrivere un file xls in formato nativo, quindi senza collegarsi all'applicazione Microsoft Excel.

  2. #2
    Sì, è sufficiente utilizzare l'interfaccia Ado con cui puoi creare e leggere un file xls ed ogni formato di database. Cerca un esempio d'uso di Ado in Delphi e vedrai che è molto facile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6
    Il problema è che io sto cercando una soluzione che mi renda indipendente da Microsoft Excel.
    La mia azienda sta progettando il passaggio da Microsoft Office a OpenOffice.org (non è stata una mia decisione) e quindi mi serve uno strumento o un metodo che mi permetta di scrivere file XLS senza che Excel sia necessariamente installato sul PC

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,311
    vedi queste...

    http://sm-software.com/txlsfile.htm?...Fc-T3wodIBqU6w

    e facci sapere

    ciao

  5. #5

  6. #6
    Ecco una porzione di codice:

    if FileExists(TempPath+ '\Mezzi.xls') then begin
    while FileExists(TempPath+ '\Mezzi('+ IntToStr(I)+ ').xls') do begin
    Inc(I);
    end;
    ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ TempPath+ '\Mezzi('+ IntToStr(I)+ ').xls'+
    ';Extended Properties=Excel 8.0';
    end else begin
    ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ TempPath+ '\Mezzi.xls'+
    ';Extended Properties=Excel 8.0';
    end;
    ADOConnection.LoginPrompt := False;
    try
    ADOConnection.Execute('create table Automezzi (Descrizione Text, Targa Text, Dipendente Text, OraRitiro DateTime, OraConsegna DateTime,'+
    ' TotaleMinuti Number, TotaleOre Number, Chilometri Number, ChilometriPercorsi Number)', cmdText, [eoExecuteNoRecords]);
    for I := 0 to Length(AAAutomezziMovimenti) - 1 do begin
    ADOConnection.Execute('insert into Automezzi (Descrizione, Targa, Dipendente, OraRitiro, OraConsegna, TotaleMinuti, TotaleOre, Chilometri, ChilometriPercorsi) values ("'+
    AutomezzoDescrizione(AAAutomezziMovimenti[I].id_automezzo)+ '", "'+
    AutomezzoTarga(AAAutomezziMovimenti[I].id_automezzo)+ '", "'+
    Dipendente(AAAutomezziMovimenti[I].id_anagrafica)+ '", "'+
    DateTimeToStr(AAAutomezziMovimenti[I].TDTOraRitiro, MainForm.Base.MySettings)+ '", "'+
    DateTimeToStr(AAAutomezziMovimenti[I].TDTOraConsegna, MainForm.Base.MySettings)+ '", '+
    IntToStr(MinutesBetween(AAAutomezziMovimenti[I].TDTOraRitiro, AAAutomezziMovimenti[I].TDTOraConsegna))+ ', '+
    IntToStr(HoursBetween(AAAutomezziMovimenti[I].TDTOraRitiro, AAAutomezziMovimenti[I].TDTOraConsegna))+ ', '+
    IntToStr(AAAutomezziMovimenti[I].Chilometri)+ ', '+
    IntToStr(AAAutomezziMovimenti[I].ChilometriPercorsi)+
    ')', cmdText, [eoExecuteNoRecords]);
    end;
    ADOConnection.Close;
    MessageDlg('File salvato correttamente.', mtInformation, [mbOk], 0);
    Except on e: Exception do begin
    MessageDlg(e.Message, mtError, [mbOk], 0);
    end;
    end;

    che funziona a prescindere dal fatto che ci sia installato o meno Microsoft Office (io nel pc ho solo OpenOffice).
    Ricorda che puoi sempre usare il formato csv.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6
    Ho provato il tuo codice su un PC senza MS Office e in effetti funziona. grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.