首页 > 解决方案 > 使用 PHP 电子表格从数据库下载到 Excel 文件时出错

问题描述

我正在尝试创建一个可以下载十万数据并使用 PHPSpreadSheet 将其导出到 excel 文件的页面,但我得到了 HTTP ERROR 500

include('../config.php');

require_once '../../epson/resources/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0);
$activeSheet = $spreadsheet->getActiveSheet();
$filename = generateFileName($filename);

 $sql = "SELECT * FROM table";

  $activeSheet->setCellValue('A1', 'pcbid');
  $activeSheet->setCellValue('B1', 'pcbtype');
  $activeSheet->setCellValue('C1', 'grouprev');
  $activeSheet->setCellValue('D1', 'symbol');

  $mdthistorydownloadresult = $conn->query($sql);
  if($mdthistorydownloadresult->num_rows > 0) {
      $i = 2;
      while($row = $mdthistorydownloadresult->fetch_assoc()) {
        $activeSheet->setCellValue('A'. $i, $row['pcbid']);
        $activeSheet->setCellValue('B'. $i, $row['pcbtype']);
        $activeSheet->setCellValue('C'. $i, $row['grouprev']);
        $activeSheet->setCellValue('D'. $i, $row['symbol']);
          $i++;
      }
  }
  $Excel_writer = new Xlsx($spreadsheet);

  header('Content-Type: application/vnd.ms-excel');
  header('Content-Disposition: attachment;filename='. $filename .'.xlsx');
  $Excel_writer->save('php://output');

exit;

总行数 = 136750

当我将查询限制为 1000 时,它非常有效。

SELECT * FROM table LIMIT 1000

标签: phpspreadsheetphpspreadsheet

解决方案


推荐阅读