PHP создает файл Excel и возвращает его через функцию - PullRequest
0 голосов
/ 28 мая 2018

Я работаю над yii2.Я создаю файл Excel через php spreadsheet.Сейчас я загружаю его в браузере.Теперь я хочу вернуть файл без загрузки.

Код :

// Created 2 worksheet in one excel file successfully 

$filename = 'Meter Breakdown List '.date('d-m-y').'.xlsx'; //save our workbook as this file name
    // Redirect output to a client’s web browser (Xlsx)
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="'.$filename.'"');
    header('Cache-Control: max-age=0');
    // If you're serving to IE 9, then the following may be needed
    header('Cache-Control: max-age=1');

    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');

    $writer->save('php://output');

После этого я хочу, чтобы он возвращал файл наподобие return $filename;

Возвращенный файл затем передается вфункция с именем sendEmail($filename)

В этой функции я уже настроил процесс отправки электронной почты через вложение.

Как отправить файл без загрузки?

Примечание:

Я также рассмотрел вопрос: PHP создает электронную таблицу Excel и затем отправляет ее по электронной почте в виде вложения .

1 Ответ

0 голосов
/ 28 мая 2018

Образец код для сохранения файла

<?php

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');

После сохранения файла вы можете отправить файл на почту

sendEmail('hello world.xlsx');

После того, как все сделано, вы можете удалитьсохраненный файл

unlink('hello world.xlsx');
...