✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak czytać i zapisywać pliki arkuszy kalkulacyjnych w PHP

46

Podczas pracy nad aplikacjami webowymi często spotykamy się z sytuacją, w której musimy pobawić się plikami arkusza kalkulacyjnego. Możemy chcieć odczytać dane z arkuszy kalkulacyjnych i je przetworzyć. Czasami wymagane jest również tworzenie i zapisywanie plików arkuszy kalkulacyjnych.

W tym artykule dowiemy się, jak czytać i pisać pliki arkuszy kalkulacyjnych w PHP. Kod, który wyjaśnimy, będzie działał na 3 typach arkuszy kalkulacyjnych – CSV, XLSX i ODS.

Pierwsze kroki

Jako programista chciałbym poeksperymentować z różnymi pakietami, które mogą być pomocne w rozwiązywaniu rzeczywistych problemów. Ostatnio natknąłem się na paczkę o nazwie box/sout. Podobał mi się sposób, w jaki biblioteka wykonywała zadania. Korzystając z tej biblioteki, możesz przetwarzać pliki arkuszy kalkulacyjnych za pomocą zaledwie kilku wierszy kodu.

Ta biblioteka jest w stanie przetwarzać pliki o dowolnym rozmiarze. Możliwe, że masz do czynienia z dużym plikiem. Podczas tego procesu duży plik nie powinien zużywać pamięci i powodować problemy z wydajnością. Biblioteka wylewek rozwiązuje ten problem. Potrzebuje tylko 3 MB pamięci do przetworzenia dowolnego pliku.

Zanim zaczniesz, Twój serwer powinien spełnić poniższe wymagania.

  • PHP w wersji 7.2 lub nowszej
  • Rozszerzenie PHP php_zipwłączone
  • Rozszerzenie PHP php_xmlreaderwłączone

Użytkownik może sprawdzić, czy wszystkie powyższe wymagania są spełnione na Twoim serwerze za pomocą tej phpinfo()metody. Utwórz tymczasowy plik PHP i umieść w nim poniższą instrukcję.

Teraz uruchom ten plik PHP w przeglądarce, a zobaczysz konfiguracje PHP, takie jak wersja, rozszerzenia itp. Powinieneś zobaczyć, xmlreadera ziprozszerzenia są włączone, jak pokazano na zrzucie ekranu poniżej.

Jak czytać i zapisywać pliki arkuszy kalkulacyjnych w PHP

Po spełnieniu wymagań zainstaluj box/spoutpakiet za pomocą poniższego polecenia.

composer require box/spout

Odczytywanie i zapisywanie plików arkuszy kalkulacyjnych w PHP

Pakiet Spout pozwala na interakcję z plikami XLSX, CSV i ODS. Jako przykład piszę kod dla plików XLSX.

Utwórz przykładowy plik XLSX users.xlsxw katalogu głównym i dodaj do niego kilka fikcyjnych wpisów. W moim przypadku plik ma poniżej wpisy.

Jak czytać i zapisywać pliki arkuszy kalkulacyjnych w PHP

Następnie napiszę w reader.phppliku kod, który odczyta users.xlsxi wydrukuje zawarte w nim dane.

czytnik.php

<?php require_once 'vendor/autoload.php';   use BoxSpoutReaderCommonCreatorReaderEntityFactory;   $filePath = getcwd().'/users.xlsx';   $reader = ReaderEntityFactory::createReaderFromFile($filePath);   $reader->open($filePath);   foreach ($reader->getSheetIterator() as $sheet) {     foreach ($sheet->getRowIterator() as $row) {         $cells = $row->getCells();         foreach ($cells as $cell) {             echo $cell->getValue();         }     } }   $reader->close();

To takie proste. Śmiało i spróbuj.

Z drugiej strony możemy łatwo stworzyć plik XLSX i zapisywać do niego dane. Stwórzmy plik writer.phpi dodajmy w nim kod poniżej.

pisarz.php

<?php require_once 'vendor/autoload.php';   use BoxSpoutWriterCommonCreatorWriterEntityFactory; use BoxSpoutCommonEntityRow;   $filePath = getcwd().'/new-users.xlsx';   $writer = WriterEntityFactory::createXLSXWriter();   $writer->openToFile($filePath);   // Here is data for XLSX file $data = [     ['Name', 'Email'],     ['Steve', '[email protected]'],     ['David', '[email protected]'], ];   foreach ($data as $d) {     $cells = [         WriterEntityFactory::createCell($d[0]),         WriterEntityFactory::createCell($d[1]),     ];       $singleRow = WriterEntityFactory::createRow($cells);     $writer->addRow($singleRow); }   $writer->close();

Powyższy kod tworzy new-users.xlsxplik w katalogu głównym. Jeśli otworzysz ten plik, zobaczysz kilka wierszy (używanych w kodzie) wstawionych do niego.

W przypadku plików CSV i ODS należy utworzyć $writerobiekt w następujący sposób.

$filePath = getcwd().'/new-users.ods'; $writer = WriterEntityFactory::createODSWriter();   $filePath = getcwd().'/new-users.csv'; $writer = WriterEntityFactory::createCSVWriter();

Mam nadzieję, że rozumiesz, jak czytać i pisać pliki arkuszy kalkulacyjnych w PHP. Chciałbym usłyszeć wasze przemyślenia i sugestie w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów