1

ページから AJAX 呼び出しを行い、JavaScript データを PHP ファイルに送信して、そのデータに基づいてファイルを作成する必要があります。次に、このファイルをユーザーがダウンロードできるようにします。

AJAXリクエストを介してPHP(具体的には私の場合はPHPExcel)によって作成されたファイルを強制的にダウンロードするオプションはありますか?

以下に示すコードは、まだ JavaScript データを送信していませんが、ファイルを生成しています。

これは、PHPExcel を使用してファイルを作成する私の PHP スクリプトです。

public function renderTasksToExcel($tasksData){


    $objPHPExcel = new PHPExcel();

    // Set properties
    $objPHPExcel->getProperties()->setCreator("TRW");
    // ...

    // Add some data

    $objPHPExcel->setActiveSheetIndex(0);
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
    // ...

    // Rename sheet
    $objPHPExcel->getActiveSheet()->setTitle('Simple');


    // Save Excel 2007 file
    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    $file = '/export.' . date('Y-m-d-H-i-s').'.xlsx';
    $objWriter->save($file);

    // hotovo
   return $this->sendResponse(new FileResponse($file));
}

これは AJAX 呼び出しです。

$.ajax({
     type: "POST",
     url: {plink Tasks:tasksToExcel},
     data: ajaxData,
     success:function(data){
        $('#download').html(data);
     }
 })
4

1 に答える 1

3

私と同じ。しかし、私はすでにこの問題を解決しています。これを試してください:これをphpで使用してください:

$objWriter->save('export/FileName.xls');

これを ajax 呼び出しで使用します。

$.ajax({

 type: "POST",
 url: {plink Tasks:tasksToExcel},
 data: ajaxData,
 success:function(data){
    $('#download').html(data);
     var zz=document.createElement('a');
     var data_type = 'data:application/vnd.ms-excel';
     zz.href ='htp://localhost/bengkel/backend/export/FileName.xls';
     zz.download='FileName'+'.xls';
     zz.click();
 }

}))

シンプルなコンセプト、ajax はダウンロードできません。次に、*xls ファイルを保存し、そのファイルを JS でダウンロードします。ジュニアプログラマーで申し訳ありませんが、英語が下手です。

于 2014-01-13T14:25:34.603 に答える