2012-04-10 21 views
5

Cercare una classe PHP per generare ENORME file xlsx, senza dover allocare un'enorme memoria per l'intero file per adattarsi alla memoria.PHPExcel scrivere al volo?

Adoriamo PHPExcel ma abbiamo bisogno di un modo per scrivere al volo, rispetto al caricamento dell'intero file in memoria, quindi chiamare una funzione per scriverlo.

Visto una domanda simile, ma nessun chiaro puntatore a una soluzione.

Per chiarire -

Hai 1GB di memoria disponibile e la necessità di generare un file di Excel 3GB.

Esiste una classe/metodo esistente per eseguire questa operazione?

+1

Se non hai bisogno di formule/formattazione, puoi farlo come file CSV e fingere che sia un .xlsx. CSV è super facile da riprodurre a pezzi. –

+0

quanto sono complicati i tuoi dati? se è semplice e lineare, forse potresti scrivere come csv e importare in Excel più avanti – lunixbochs

+0

Grazie - Sì, so che possiamo usare CSV/TXT ecc. Ma abbiamo in particolare un requisito per Excel. Il file viene scaricato dai client dal nostro servizio Web e deve apparire piacevole (intestazioni semplici, logo aziendale, ecc.) –

risposta

-3

Yay!

Abbiamo risolto questo problema scrivendo la nostra classe PHP Excel, in grado di generare file xlsx di dimensioni UNLIMITED, scrivendo al volo (non caricando mai tutti i dati in memoria).

Grazie a tutti coloro che hanno contribuito con i vostri commenti e idee! Molto apprezzato.

La nostra classe non ha tutte le campane & fischietti phpexcel.codeplex offre. Supportiamo i caratteri, lo stile di base e la creazione automatica dei fogli quando il set di dati supera 1 milione di righe.

Andare a pulire la classe e metterlo su Github per tutti da utilizzare. Aggiornerò questo post con l'url non appena sarà disponibile.

+1

E, l'hai già messo su Github? :-) Stiamo affrontando gli stessi problemi, quindi ho finito per trovare questa risposta. Sarebbe molto bello se c'è già una buona biblioteca. – Geert

+1

¿La tua libreria è già stata eseguita? Sto avendo gli stessi problemi. – gustavomanolo

+0

Si prega di inviare la soluzione da qualche parte, ovunque, o di contribuire al progetto PHPExcel. – Aaron

0

Il segreto per creare file xlsx è di scriverli come tabelle HTML, è un modo super rapido per creare fogli di calcolo Excel di base.

Il trucco è scrivere una tabella HTML e salvarla con un'estensione .xlsx. Quindi può essere aperto da Excel. Semplice.

E con HTML è possibile creare quelle belle intestazioni con i loghi aziendali. Ha tutto!

+0

Dolce trucco! Andando a testare e verificare Excel e OpenOffice aprire questi file html-rinominato-xlsx senza lamentarsi. –

+0

Grazie! Sì, l'ho scoperto per caso e ho scoperto che riduce davvero le dimensioni del file! :) –

+0

Non sembra funzionare per me. Sei sicuro che funzioni correttamente con i file xlsx? Non è un file xlsx un ZIP di file xml per definizione? –