Dopo aver caricato un oggetto PHPExcel con i miei dati, voglio inviare il contenuto direttamente in una variabile php, invece di scrivere su un file. Ho perso il metodo per farlo, perché sembra che l'unico modo per salvare è quello di salvare su disco.Come posso scrivere il mio foglio di calcolo Excel in una variabile, usando PhpExcel?
risposta
È possibile utilizzare un writer per salvare su disco o salvare su php: // output. In quest'ultimo caso, è possibile utilizzare il buffering dell'output per acquisire quell'output e quindi archiviarlo in una variabile .... non sono sicuro del perché si vorrebbe farlo.
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelOutput = ob_get_clean();
Dal PHPExcel scrive il file sul disco, in ogni caso, se si cattura stdout, ciò che accade internamente è che il file viene scritto sul disco, quindi leggere dal disco (e cancellata), stampato sullo standard output e quindi catturato nel buffer di output.
Si potrebbe anche fare:
$tmpfile = tempnam($tmp_dir, 'phpxltmp');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($tmpfile);
$excelOutput = file_get_contents($tmpfile);
unlink($tmpfile);
Questa è una sorta di buon senso su come avvicinarsi a questo, ma ci sono molti aspetti negativi di questo metodo .. La creazione/utilizzo del disco che richiede più operazioni/tempo/spazio. Se questo script viene eseguito in più istanze o sovrapposizioni, è necessario generare un file diverso per istanza. Questo può portare a problemi di corruzione/accesso. L'OP aveva detto direttamente a una variabile, non a un file quindi a una variabile. – Mayhem
La risposta già risolve questi aspetti negativi. 'tempnam' crea un file diverso per istanza, e dal momento che PHPExcel usa un file in ogni caso, è l'approccio apparentemente" da semplice a variabile "che è il meno efficiente dei due. In molti casi, sarebbe possibile utilizzare 'readfile' o la gestione dei flussi per aggirare i problemi di memoria e aumentare ulteriormente le prestazioni. Mentre la risposta accettata sembra essere più semplice, che è di per sé preziosa, sento ancora che * questa * dovrebbe essere la risposta accettata, o un'alternativa credibile. – LSerni
- 1. Come posso unire documenti Excel usando PHPExcel?
- 2. Come posso scrivere su un foglio di calcolo Excel usando Linq?
- 3. passi per creare excel foglio di calcolo XML usando C#
- 4. ruby excel reader, foglio di calcolo gemma
- 5. PHPExcel Verifica se il foglio esiste
- 6. Foglio di calcolo Excel come libreria in Swing (= JTable migliorata)
- 7. Copia un R data.frame in un foglio di calcolo Excel
- 8. Come modificare il nome del foglio da C# su un foglio di calcolo Excel
- 9. Come scrivere una raccolta VBA su un foglio Excel
- 10. Ricerca dell'ultima riga in un foglio di calcolo Excel
- 11. PHPExcel imposta il bordo e il formato per tutti i fogli nel foglio di calcolo
- 12. Bolding una cella in PHPExcel lascia selezionato
- 13. PHPExcel scrivere al volo?
- 14. Leggere un foglio di calcolo Excel nella memoria
- 15. Passo numero di riga come variabile in foglio Excel
- 16. Foglio di calcolo Excel xml - è possibile incorporare le immagini?
- 17. crea nuovo foglio di lavoro PHPExcel
- 18. Formattazione di una cella in percentuale in PHPExcel
- 19. Come posso creare un foglio di calcolo compatibile con Excel sul lato server in C#?
- 20. somma di calcolo con PHPExcel
- 21. Come caricare il modello excel e scriverci sopra in PHPExcel?
- 22. Come dividere il foglio di calcolo in più fogli di calcolo con il numero di righe impostato?
- 23. Esportazione Recordset in foglio di calcolo
- 24. Come nascondere un foglio in Excel usando OpenXML C#?
- 25. Come posso impostare una variabile sass usando una variabile d'ambiente?
- 26. Come utilizzare NPOI per leggere il foglio di calcolo di Excel che contiene celle vuote?
- 27. Importare un file excel in una tabella MySQL con PHPExcel
- 28. Come leggere i dati da Excel utilizzando PHPExcel
- 29. Foglio di calcolo XML in Excel utilizzando MVC, formato cella sempre Generale, come cambiare?
- 30. Come posso cambiare il mio foglio di stile CSS usando jQuery?
Grazie. Se sto usando questo in un framework come symfony, potrei aver bisogno di passare il contenuto da un servizio Excel ad un tipo di servizio o controller di output. Preferirei evitare il colpo di scrivere su disco. – Aaron
Ti rendi conto che potrebbe essere incredibilmente affamato di memoria, tenendo l'intero file nella memoria di PHP –
Una domanda equa. Grazie per il consiglio. – Aaron