2017-10-10 17 views
0

私はすぐにメールにExcelファイルを添付したいと思います。オンザフライでデータをExcelに添付しようとしています

次のコードを使用してPHPExcel_IOFactoryオブジェクトを生成しています。

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 

私は、このオブジェクトをシリアル化し、自分のメーラーに送信され、メーラーで、私はそれを取り付けるには、次のコードを使用します。

Yii::$app->mailer->attachContent($excelData, ['fileName' => 'testfile.xlsx', 'contentType' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']) 

データをExcelファイルとして添付しますが、開こうとするとデータが添付されます。私は "ファイルが壊れている"と言います。

親切にお手伝いします。私はそれをメールに添付する前にExcelファイルを保存したくありません。

+0

ライターオブジェクトをシリアル化しますか?いい考えではない。そして、実際にファイルを生成するために 'save()'をどこにでも呼び出すことはありません。 –

+0

@マークファイルをアップロードする前に保存したくありません。そしてはい、あなたは正しいです、シリアライゼーションはここで良い考えではありません。 – arun

答えて

0

次のコードを使用してファイルをメールに添付します。

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
ob_start(); 
$objWriter->save('php://output'); 
$excelOutput = ob_get_clean(); 

しかし、問題は、添付ファイルとしてメールにコンテンツを添付するときにファイルを保存することです。

どうすればこのプロンプトを停止できますか?保存するように促すメッセージを表示せずにファイルを添付してください。

関連する問題