...
✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas arvutustabeli faile lugeda ja kirjutada PHP-s

21

Veebirakenduste kallal töötades satume sageli olukorda, kus peame mängima arvutustabeli failidega. Võime soovida lugeda arvutustabelite andmeid ja neid töödelda. Mõnikord on vajalik ka arvutustabelifailide loomine ja kirjutamine.

Selles artiklis uurime, kuidas arvutustabelifaile lugeda ja kirjutada PHP-s. Kood, mida selgitame, töötab kolme tüüpi arvutustabelites – CSV, XLSX ja ODS.

Alustamine

Arendajana tahaksin katsetada erinevaid pakette, mis võivad olla abiks reaalsete probleemide lahendamisel. Hiljuti puutusin kokku pakiga, mille nimi oli kast / tila. Mulle meeldis, kuidas raamatukogu ülesandeid täitis. Selle teegi abil saate töödelda arvutustabelifaile vaid mõne koodireaga.

See teek on võimeline töötlema mis tahes suurusega faile. Võib juhtuda, et tegemist on suure failiga. Protsessi ajal ei tohiks suur fail mälu tarbida ja tekitab jõudluse probleemi. Tila raamatukogu lahendab selle probleemi. Mis tahes faili töötlemiseks vajab see ainult 3 MB mälu.

Enne alustamist peaks teie server vastama allpool toodud nõuetele.

  • PHP versioon 7.2 või uuem
  • PHP laiendus on php_ziplubatud
  • PHP laiendus on php_xmlreaderlubatud

Kasutaja saab phpinfo()meetodi abil kontrollida, kas kõik ülaltoodud nõuded on teie serveris täidetud. Looge ajutine PHP-fail ja asetage sellesse järgmine allkiri.

Nüüd käivitage see PHP-fail brauseris ja näete PHP-konfiguratsioone, nagu versioon, laiendused jne. Peaksite nägema xmlreaderja ziplaiendused on lubatud, nagu on näidatud alloleval ekraanipildil.

Kuidas arvutustabeli faile lugeda ja kirjutada PHP-s

Kui olete nõuetele vastanud, installige box/spoutpakett alloleva käsu kaudu.

composer require box/spout

Arvutustabeli failide lugemine ja kirjutamine PHP-s

Spout-pakett võimaldab teil suhelda XLSX-, CSV- ja ODS-failidega. Näitena kirjutan koodi XLSX-failidele.

Looge users.xlsxjuurkataloogis XLSX-faili näidis ja lisage sellele mõned näiv kirjed. Minu puhul on fail allpool kirjeid.

Kuidas arvutustabeli faile lugeda ja kirjutada PHP-s

Järgmisena kirjutan reader.phpfaili koodi, mis loeb users.xlsxja prindib selles olevad andmed.

lugeja.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();

Nii lihtne see ongi. Edasi ja proovige seda.

Teiselt poolt saame hõlpsalt luua XLSX-faili ja sinna andmed kirjutada. Loome faili writer.phpja lisame sellesse koodi allpool.

kirjanik.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();

Ülaltoodud kood loob new-users.xlsxfaili teie juurkataloogi. Selle faili avamisel näete, et sellesse on sisestatud paar rida (kasutatakse koodis).

CSV- ja ODS-failide puhul peate looma $writerobjekti järgmiselt.

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

Loodan, et saate aru, kuidas arvutustabelifaile PHP-s lugeda ja kirjutada. Tahaksin kuulda teie mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem