web-dev-qa-db-ja.com

PHPExcel保存ファイル

こんにちはすべて私はサイトを持っています、そして私はExcelファイルを作成して私のサーバーの私のフォルダーに保存したいと思います。私はこのモードで試しましたが、毎回ダウンロードするように頼まれます。多くのxlsを作成しなければならない後はレポートであり、ダウンロードする必要はなく、フォルダーに保存するだけなので、ダウンロードを要求したくありません。これは私のコードです:

require_once 'inc/PHPExcel.php';

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Alessandro Minoccheri")
                             ->setLastModifiedBy("Alessandro Minoccheri")
                             ->setTitle("Office 2007 XLSX Test Document")
                             ->setSubject("Office 2007 XLSX Test Document")
                             ->setDescription("Generazione report inverter")
                             ->setKeywords("office 2007 openxml php")
                             ->setCategory("");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B2', 'world!')
            ->setCellValue('C1', 'Hello')
            ->setCellValue('D2', 'world!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4', 'Miscellaneous glyphs')
            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

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


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

私も試しました:

$objWriter->save('namee.xls');

しかし、もう一度ダウンロードするように頼んでください。

どうすればこれを解決できますか?

これは、次のヘッダーがあるためです。

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');

これは、ブラウザがContent-Dispositionヘッダーを表示すると、[名前を付けて保存...]ボックスを開くためです。それらの行を削除します。

ただし、Excelはとにかくディスクに保存する必要があります。見えませんか?そうでない場合は、PHPがそのフォルダーに書き込むための適切なアクセス許可を持っていることを確認してください

10
hek2mgl