2013-07-18 15 views
6

Mam siatkę z dużą liczbą rekordów. Używam filtrów do filtrowania danych według potrzeb. Ale chcę eksportować filtrowane dane do arkusza Excela do dalszego wykorzystania.Jak eksportować dane siatki extjs do programu Excel?

Przeszedłem niektóre artykuły dostępne, ale wydają się różne i niezgodne z najnowszą wersją 4.2.

Proszę mi pomóc w osiągnięciu tego w prosty sposób.

Wielkie dzięki!

+0

Co próbowała dotąd ?? – Hariharan

Odpowiedz

3

O ile mi wiadomo, nie jest to możliwe bez implementacji Serverside w trybie przeglądarki.

Teoretycznie utworzyć ciąg OpenXML dokument czytając aktualne rekordy ze sklepu i zakodować go base64. Następnie zapisz to pod numerem Data Uri. Pierwszym, który nie zezwalał na wstawianie danych innych niż obrazy, jest IE, więc nie będzie to działać we wszystkich wersjach przeglądarki IE z powodu ograniczeń, takich jak rozmiar i obrazy. To będzie powód, dla którego nie ma aktualnych wdrożeń.

+0

Dzięki za informacje. Zaimplementowałem to tak, jak podano w wątku. Ale testowałem to w IE. Teraz, jak powiedziałeś, muszę to przetestować w innych przeglądarkach i zobaczyć, co się stanie! –

+0

Proszę znaleźć wątek http://www.sencha.com/forum/showthread.php?32400-GridPanel-directly-to-Excel. Próbowałem, jak wspomniano w wątku. Ale wystąpił błąd stwierdzający, że "reg" nie jest zdefiniowany. –

4
+0

To jest świetne, ale nie mogę zmienić nazwy pliku, zostanie pobrane za każdym razem jako download.xls. Nie dostanie się z miejsca, w którym wybiera nazwę pliku. –

+1

Mam to !! Jest to właściwość pobierania znacznika zakotwiczenia, w której możemy ustawić nazwę pliku –

2

powodzeniem wdrożony this podejście do Ext JS 4. nadać mu elastyczność klasy abstrakcyjnej, postępuj zgodnie z instrukcjami:

  1. Pobierz funkcje z here i wyodrębnij je w oddzielnej klasie jako globalnej.
  2. Zastąp wszystkie "tę" funkcję odwołań do globalnych wywołań funkcji.

  3. Dodaj parametr "grid" do wszystkich funkcji zaczynając od wpisu o nazwie (downloadExcelXml()).

  4. Zamień pozostałe "to" wywołania na odniesienia do siatki (ponieważ funkcje miały działać wewnątrz siatki).

  5. Teraz dodaj ten przycisk w swoim konstruktorze siatki i nazywają downloadExcelXml() jako przewodnika jak ten:

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