• 導出csv和xlsx
use Box\Spout\Writer\WriterFactory; use Box\Spout\Common\Type; $result = []; for ($i = 0; $i < 100; $i++) { $arr = [ 'name' => \Mock::name(), 'age' =>\Mock::number('10-80'), 'email' =>\Mock::email(), 'address' =>\Mock::address(), 'times'=>\Mock::datetime() ]; $result[] = $arr; } $reader = WriterFactory::create(Type::XLSX); $reader->openToBrowser("測試.xlsx");//輸出到瀏覽器 //$reader->openToFile(storage_path('file/s.xlsx'));//輸出到文件 $reader->addRow([ 'name' => '姓名', 'age' => '年齡', 'email' => '郵箱', 'address' => '地址', 'times'=>'時間' ]); $reader->addRows($result); $reader->close(); 
  • 讀取excel的xlsx和csv
use Box\Spout\Reader\ReaderFactory; use Box\Spout\Common\Type; $path = storage_path('file/a.xlsx'); $type = pathinfo($path); $type = strtolower($type["extension"]); $type = ($type === 'xlsx')?Type::XLSX:Type::CSV; $reader = ReaderFactory::create($type); $reader->setShouldFormatDates(true); if($type === 'csv'){$reader->setEncoding('GB2312');} $reader->open($path); $iterator = $reader->getSheetIterator(); $iterator->rewind(); $sheet1 = $iterator->current(); $rowIter = $sheet1->getRowIterator(); $data =[]; foreach ($rowIter as $rowIndex => $row) { $data[] = $row; } $reader->close();