PHPExcel保存文件

时间:2013-06-10 10:11:43

标签: php 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');

但又请我下载。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:10)

那是因为以下标题:

// 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具有写入该文件夹的适当权限