0

phpexcel で Excel ファイルを作成し、サーバーに正常に保存しました。しかし、私が本当にやりたいことは、ブラウザにこのファイルをオンザフライでダウンロードさせることです。これに対する解決策はありますか?
ここに私のコードがあります:

$objPHPExcel = new PHPExcel();

        $objPHPExcel->setActiveSheetIndex(0);


        $col = 0;
        foreach ($json[0] as $key => $value) {
            $a = $key;
            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $key);
            $col++;
        }

        $row = 2;
        foreach ($json as $itemGroup) {
            $col = 0;
            foreach ($itemGroup as $key => $value) {
                $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
                $col++;
            }
            $row++;
        }

        $objPHPExcel->getActiveSheet()->setTitle('Report');

        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
        try {
            $fileName = date("Y-m-d H:i:s");
            $objWriter->save('/uploaded_images/generatedReports/' . $fileName . '.xlsx');
            return true;
        } catch (Exception $exc) {
            return false;
        }
4

5 に答える 5

1

01simple-download-xlsx.php の例を見てください。これは、設定するヘッダーを示しており、「名前付き」ファイルではなく php://output に保存する必要があることを示しています

于 2013-02-05T15:09:52.370 に答える
0

添付ファイルヘッダーで試しましたか?

header("Content-Disposition: attachment; filename=your_file.xls");
于 2013-02-05T10:14:05.857 に答える
0

適切なヘッダーを設定し、出力ファイル名として「php://stdout」を使用できます。

例えば

$filename = date("Y-m-d H:i:s").'.xls';
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
$objWriter->save('php://stdout');
return true;
于 2013-02-05T10:26:30.383 に答える
0
Berofe returning true in try block you have to use header method for downloadable action

$filename ="excelreport.xls";
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
echo "your content \t you next tabcontent \n your next line content \t"
于 2013-02-05T10:16:47.870 に答える
0
header('Location : /uploaded_images/generatedReports/' . $fileName . '.xlsx');
于 2013-02-05T10:12:57.870 に答える