2013-07-18 18 views
6

Ho una griglia con un numero elevato di record. Uso i filtri per filtrare i dati come richiesto. Ma voglio esportare i dati filtrati in un foglio Excel per un ulteriore utilizzo.Come esportare i dati della griglia di extjs in Excel?

Ho esaminato alcuni articoli disponibili ma sembrano diversi e non compatibili con la versione 4.2 più recente.

Per favore aiutami a raggiungere questo in modo semplice.

Grazie mille!

+0

quello che avevi provato finora ?? – Hariharan

risposta

3

Per quanto ne so, questo non è possibile senza un'implementazione di Server in modo cross browser.

In teoria si crea una stringa di documento OpenXML leggendo i record correnti dallo store e codificandolo con base64. Quindi scrivi questo a Data Uri. Il primo che non permetteva i dati in linea di altre immagini allora è IE, quindi questo non funzionerà per tutte le versioni del browser IE a causa di limitazioni come le dimensioni e le immagini solo. Questo sarà il motivo per cui non ci sono implementazioni aggiornate.

+0

Grazie per le informazioni. Ho implementato questo come previsto nella discussione. Ma stavo testando questo in IE. Ora come hai detto, devo testarlo negli altri browser e vedere cosa succede! –

+0

Si prega di trovare il thread http://www.sencha.com/forum/showthread.php?32400-GridPanel-direttamente-to-Excel. Ho provato come menzionato nel thread. Ma c'era un errore che affermava che "reg" non è definito. –

2

implementato con successo approccio this per Ext JS 4. di dare una flessibilità di una classe astratta, seguire le istruzioni:

  1. Prendere le funzioni da here ed estrarle in una classe separata come globale.
  2. Sostituisce tutti i riferimenti di "questa" funzione alle chiamate di funzione globali.

  3. Aggiungere il parametro "griglia" a tutte le funzioni a partire da quello (downloadExcelXml()).

  4. Sostituire le restanti "questo" chiamate ai riferimenti di griglia (poiché le funzioni dovevano agire all'interno di una griglia).

  5. Ora aggiungere questo pulsante nel costruttore della griglia e chiamare downloadExcelXml() come un gestore come questo:

    exportButton = { 
        xtype: 'button', 
        text: 'xls', 
        listeners: { 
        click: function (button, event, eOpts) { 
        downloadExcelXml(
         false, 
         "TableHeader", 
         eOpts.data.grid); 
        }, 
        data: { 
        grid: this 
        } 
    };