php - 使用 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
解决方案
推荐阅读
- mysql - 通过传递动态数组从数据库中获取数据
- c# - 在 IIS 上将 WCF 发布为 https 出现错误
- python - 我只能在 pycharm 中使用 selenium,但不能在 gnome-terminal 中使用。它只能在 pycharm 中使用
- google-cloud-dataflow - withHintMatchesManyFiles 真的可以提高TextIO在读取大量文件时的性能吗?
- oracle - 我在 sql oracle 上运行此代码,但出现错误“sql 命令未正确结束”。我的第一个表是 emply,第二个表是部门,
- c - 我们如何通过键盘端口重新启动
- r - 在 R 中按缺失值组转置数据帧
- python - 从 DataFrame 中删除存储在变量中的系列
- python - django login get AuthenticationForm 不包含 get
- javascript - 设置了与跨站点资源关联的 cookie,但没有设置“SameSite”属性