Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: File Excel: OPEN

  1. #1
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155

    File Excel: OPEN

    Ho copiato da qualche parte questo codice che scrive da PHP un file EXCEL:
    Codice PHP:
    <pre>
    <?php
      
    print "Hi";
    #Instantiate the spreadsheet component.
    #   $ex = new COM("Excel.sheet") or Die ("Did not connect");
    $exapp = new COM("Excel.application") or Die ("Did not connect");

    #Get the application name and version
    print "Application name:{$exapp->Application->value}
    ;
    print 
    "Loaded version: {$exapp->Application->version}
    "
    ;

    $wkb=$exapp->Workbooks->add();
    #$wkb = $ex->Application->ActiveWorkbook or Die ("Did not open workbook");
    print "we opened workbook
    "
    ;

    $exapp->Application->Visible 1#Make Excel visible.
    print "we made excell visible
    "
    ;

    $sheets $wkb->Worksheets(1); #Select the sheet
    print "selected a sheet
    "
    ;
    $sheets->activate#Activate it
    print "activated sheet
    "
    ;

    #This is a new sheet
    $sheets2 $wkb->Worksheets->add(); #Add a sheet
    print "added a new sheet
    "
    ;
    $sheets2->activate#Activate it
    print "activated sheet
    "
    ;

    $sheets2->name="Report Second page";

    $sheets->name="Report First page";
    print 
    "We set a name to the sheet: $sheets->name
    "
    ;

    # fills a columns
    $maxi=20;
    for (
    $i=1;$i<$maxi;$i++) {
       
    $cell $sheets->Cells($i,5) ; #Select the cell (Row Column number)
       
    $cell->activate#Activate the cell
       
    $cell->value $i*$i#Change it to 15000
    }

    $ch $sheets->chartobjects->add(5040400100); # make a chartobject

    $chartje $ch->chart# place a chart in the chart object
    $chartje->activate#activate chartobject
    $chartje->ChartType=63;
    $selected $sheets->range("E1:E$maxi"); # set the data the chart uses
    $chartje->setsourcedata($selected); # set the data the chart uses
    print "set the data the chart uses
    "
    ;

    $file_name="C:\Temp\final14.xls";
    if (
    file_exists($file_name)) {unlink($file_name);}
    #$ex->Application->ActiveWorkbook->SaveAs($file_name); # saves sheet as final.xls
    $wkb->SaveAs($file_name); # saves sheet as final.xls
    print "saved
    "
    ;

    #$ex->Application->ActiveWorkbook->Close("False");
    $exapp->Quit();
    unset(
    $exapp);
    ?>

    </pre>
    Benissimo: funziona alla grande.

    Ora pero' domando:

    utilizzando la stessa sintassi dell'esempio, come faccio anche a leggere un file Excel, oltre che scriverlo?

    E' possibile aprire un file Excel e riempire le sue celle con i dati e poi salvarlo?

    Grazie

    Wdb

  2. #2
    questo me lo salvo...mi interessa un bel po'!hai qualche link dove poter prendere maggiori info?

  3. #3
    Ciao,
    di Excel so davvero poco ma quando si usa COM la cosa migliore è studiare la documentazione Microsoft per vedere come si fa una certa cosa in Vb e poi utilizzare gli stessi oggetti e metodi con la sintassi Php.
    per favore NIENTE PVT TECNICI da sconosciuti

  4. #4
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    il link (per FIRULIFIRULA):
    http://www.php.net/manual/it/ref.com.php

    Grazie Fabio Heller faro' come dici.

    Wdb

  5. #5
    Ciao.

    Hai infine trovato una soluzione al tuo problema?
    Se la hai trovata posti il codice?
    Credo di non essere l'unica ad essere interessata, sul forum ci sono almeno 5 discussioni su questo stesso argomento.

    Grazie!

    PS: Un'ultima cosa..... Ho trovato in www.PHP.net che parlano di COM come oggetto unicamente per sistemi windows. Ma io che ho tutti i server LINUX, come posso fare? Esiste COM come classe apparte, come file da includere o da istallare?? Grazie!
    Paperina :-)

  6. #6
    Ciao,
    COM serve per interagire con le API windows, se devi lavorare con file "tipo excel" in Linux

    1) Per cose semplici generi una normale tabella HTML e con gli appositi header dici al browser che si tratta di un file di excel

    header('Content-type: application/vnd.ms-excel') ;

    2) Per cose più complicate
    http://pear.php.net/manual/en/packag...cel-writer.php
    per favore NIENTE PVT TECNICI da sconosciuti

  7. #7
    Intanto grazie della risposta!

    Bhè, non so se quello che devo fare io è complicato.

    Ho un foglio Excel vuoto, che prima deve essere riempito con dei dati che devono venire fuori dal Data Base e Dopo devono essere importati dallo stesso foglio excel (che avevo riempito prima) dinuovo al data base.

    Del link che mi hai dato non ho capito molto avresti qualche informaione più approfondita?

    Grazie!
    Paperina :-)

  8. #8
    Originariamente inviato da Paperina(l4p)
    Intanto grazie della risposta!

    Bhè, non so se quello che devo fare io è complicato.
    Quale database, Mysql?
    mmh...dipende, forse sì

    Prima di provare a darti qualche consiglio su come fare con Excel ti chiedo, non è che potresti risolvere rinunciando ad Excel e preparando semplicemente un'interfaccia WEB per la modifica dei dati nel DB? Excel lo potresti usare soltanto per la reportistica finale (solo lettura non modifiche).
    Te lo chiedo perchè recentemente la mia azienda, dopo anni di utilizzo di excel, ha preferito questa soluzione
    per favore NIENTE PVT TECNICI da sconosciuti

  9. #9
    Si, il data base è MySql.

    L'interfaccia web per la modifica dei dati esiste gia, solo che chi deve inserire i dati, non ha la possibilità di connettersi ad internet, ed altri non hanno i permessi di accedere al server (sicurezza) quindi una alternativa era quella di utilizzare i fogli Excel (che bene o male sanno usare tutti) e gestire lo scambio dati via E-Mail per l'importazione diretta o, per chi non ha internet, via fax, ma con i modelli stampati da Excel, anche via fax, l'interpretazione dei dati risulta più veloce perchè si conosce gia il modello.
    Paperina :-)

  10. #10
    allora penso tu abbia tre alternative....non so quale sia la migliore

    Se il server dove gira PHP è Windows:
    - puoi usare l'interfaccia php/COM oppure le funzioni ODBC per creare, riempire ed interrogare il file di Excel..e così torniamo all'argomento da cui è nato questo thread
    http://it.php.net/com

    vedi anche i commenti

    Per capire cosa fare devi studiarti la documentazione Microsoft sull'uso di Excel con ASP o VBA (connection string etc.etc.) richiamare attraverso PHP/COM gli oggetti Microsoft e frae le stesse cose che faresti con ASP o VBA.

    Se il server dove gira PHP è Linux:
    1 - il file di excel che creerai in realtà è un file HTML che contiene una tabella HTML ma salvi questo file con estensione .xls, così potrà essere aperto da Excel o da Calc.
    Quando dovrai riportare i dati dal foglio di calcolo al database esporti il file in formato CSV (comma separated values) e il risultato lo importi con mysqlimport

    2- Usi la libreria PEAR che ti ho linkato più su per creare un file "foglio di calcolo" nel formato universale e dopo le modifiche usi queta libreria
    http://sourceforge.net/projects/phpexcelreader/
    http://sourceforge.net/docman/displa...group_id=99160

    per leggere il foglio di calcolo e importarlo in Mysql
    per favore NIENTE PVT TECNICI da sconosciuti

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.