首页PHP文章详情

超级简单实用的PhpOffice\PhpSpreadsheet读取csv、xls、xlsx方法

By lakeui / Mar 3, 2023 阅读 0 评论 0 发表于 PHP 字数:1034 阅读时间:11秒

PhpOfficePhpSpreadsheetcsv读取

  1. <?php
  2. use PhpOffice\PhpSpreadsheet\IOFactory as PHPExcel_IOFactory;
  3. /**
  4. * 读取excel文件内容
  5. * @param string $filename 完整的文件路径
  6. * @return array 读取表格的结果数据
  7. */
  8. function readExcelFile($filename)
  9. {
  10. $fileParts = pathinfo($filename);
  11. $filetype = strtolower($fileParts['extension']);
  12. if (strtolower($filetype)=='xls') {
  13. $objReader = PHPExcel_IOFactory::createReader('Xls');
  14. } elseif (strtolower($filetype)=='xlsx') {
  15. $objReader = PHPExcel_IOFactory::createReader('Xlsx');
  16. } elseif (strtolower($filetype)=='csv') {
  17. $objReader = PHPExcel_IOFactory::createReader('Csv')
  18. ->setDelimiter(',')
  19. ->setInputEncoding('GBK') //处理csv读取中文异常问题
  20. ->setEnclosure('"');
  21. }
  22. $objReader->setReadDataOnly(true);
  23. $objPHPExcel = $objReader->load($filename);
  24. $objWorksheet = $objPHPExcel->getActiveSheet();
  25. $highestRow = $objWorksheet->getHighestRow(); // 获取总行数
  26. $highestColumn = $objWorksheet->getHighestColumn();// 获取最大列号
  27. $excelResult = [];
  28. // 从第2行开始读取
  29. $startRow = 2;
  30. for ($j = $startRow; $j <= $highestRow; $j++) {
  31. // 从A列读取数据
  32. for ($k = 'A'; $k <= $highestColumn; $k++) {
  33. // 读取单元格
  34. $excelResult[$j][$k] = (string)$objWorksheet->getCell("$k$j")->getValue();
  35. }
  36. }
  37. return $excelResult;
  38. }

手机扫码阅读,舒服~

⌘ + Return 发表
最新 最早 全部评论0 条评论