read_excel.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. require './vendor/autoload.php';
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  5. $excelData = array();
  6. $file = "./assets/excels/計畫編號.xlsx";
  7. $extension = pathinfo($file, PATHINFO_EXTENSION);
  8. if ('csv' == $extension) {
  9. $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
  10. } else if ('xls' == $extension) {
  11. $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
  12. } else{
  13. $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
  14. }
  15. $reader->setReadDataOnly(true);
  16. $reader->setReadEmptyCells(false);
  17. $spreadsheet = $reader->load($file);
  18. $sheetCount = $spreadsheet->getSheetCount();
  19. $all = $spreadsheet->getSheetNames();
  20. for ($s = 0; $s < $sheetCount; $s++) {
  21. $data = array();
  22. $sheet = $spreadsheet->getSheet($s);
  23. $sheetName = $spreadsheet->getSheetNames()[$s];
  24. $cellCollection = $sheet->getCellCollection();
  25. $column = $cellCollection->getHighestRowAndColumn();
  26. for ($i = 1; $i <= $column['row']; $i++) { //行
  27. $row = array();
  28. for ($j = 'A'; $j <= $column['column']; $j++) { //列
  29. $key = $j . $i;
  30. $value = $sheet->getCell($key)->getValue();
  31. array_push($row, $value);
  32. }
  33. array_push($data, $row);
  34. }
  35. $excelData[$sheetName] = $data;
  36. }