2010-10-23 12 views
6

Potrzebuję eksportować dane z php do Excela i być w stanie formatować różne elementy w arkuszu kalkulacyjnym Excel.Eksport z PHP do Excela

Do tej pory najlepszą biblioteką, którą znalazłem jest PHPExcel. Wydaje się jednak bardzo ciężki i nieco powolny. Oczywiście, jest bardzo potężny.

Czy jest coś bardziej lekkiego i szybszego, co pozwala mi eksportować do programu Excel i móc stosować proste formatowanie (pogrubienie, wyrównanie, obramowanie)?

+3

Odpowiedziałem na to pytanie zaledwie tydzień temu http://stackoverflow.com/questions/3930975/alternative-for-php-excel/3931142#3931142 –

Odpowiedz

4

Właśnie skończyłem z tym wczoraj. Używając PHPExcel, nie miałem problemów z odczytaniem w "głównym" dokumencie z formatowaniem, zapisaniem 20-100 wierszy treści i zapisaniem pliku (zapisuję go "na ekranie" do natychmiastowego pobrania.) Podczas gdy niektórzy ludzie na forach skarżyli się Szybkość i narzut, wysyłam dużo danych i nie ma problemu z robieniem tego, co reklamuje.

Zauważ, że gdzieś czytam, żeby zrobić stylizację w seriach, a nie w pętlach, gdy to możliwe Na przykład, styl a1: a50 w przeciwieństwie do style->a1, style->a2 w pętli.Podobnie dwa różne scenariusze mają bardzo różne implikacje pamięciowe:

Jedynym problemem jaki znalazłem było kilka dziwactw między wyprowadzaniem i odczytywaniem plików Excel 2003. pracujesz w całości w plikach XLSX, powinien działać ex działaj zgodnie z dokumentacją.

+0

Zawsze zalecamy stosowanie stylów do zakresów zamiast pętli poprzez poszczególne komórki ... jest szybszy i zużywa mniej pamięci, a wyjściowy plik Excel jest mniejszy ze względu na wspólne style. Inną użyteczną sztuczką stylu jest applyFromArray(), definiująca zestaw cech stylu (pogrubienie, kolor, kolor tła, granice itp.) W tablicy, a następnie zastosowanie ich do komórek w jednym wywołaniu, zamiast indywidualnego ustawienia każdego elementu. –

+0

Tak, zdecydowanie wypróbuję format w komórkach, ale szczerze mówiąc, w tym arkuszu nie ma tak wiele formatowania. W tej chwili eksportuję około 1000 wierszy i 6 kolumn, z pewnym formatowaniem zakresu w 3 wierszach i 3 kolumnach. Potrzeba około 6 sekund (z których około 1 sekunda to czas zapytania) do uruchomienia na moim hoście lokalnym, co jest zwykle przyzwoitym przybliżeniem prędkości serwera. – JonoB

+0

@JonoB - Aby zapisać dane w obiekcie PHPExcel, należy raczej przyjrzeć się metodzie PHAxray_Worksheet fromArray() niż indywidualnie ustawiać wartości każdej komórki. Można go użyć z funkcją Binder wartości, aby wymusić poprawne zapisywanie wartości komórek w celu przyspieszenia procesu tworzenia skoroszytu w pamięci. –