php生成excel 求解
程序员文章站
2022-06-04 23:50:19
...
在网上找了phpexcel 生成了个简单的文件, 但最后他是用save方法 保存下来的 ,好像是输出到php://output( 我的理解),后台权限没过(好像不能访问这个地址,我已经登录了后台) 然后下载的文件是登录的那个网页 生成到服务器端 然后重定向下载是没问题的 但这样 我不好删除这个文件 对phpexcel不熟 求解 还是说换个库~~~
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save(str_replace('.php', '.xls', __FILE__));$callEndTime = microtime(true);$callTime = $callEndTime - $callStartTime;
回复讨论(解决方案)
上面代码搞错了 具体生成文件代码如下 :
getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file");// 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 (Excel2007)header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename="01simple.xlsx"');header('Cache-Control: max-age=0');// If you're serving to IE 9, then the following may be neededheader('Cache-Control: max-age=1');// If you're serving to IE over SSL, then the following may be neededheader ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the pastheader ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modifiedheader ('Cache-Control: cache, must-revalidate'); // HTTP/1.1header ('Pragma: public'); // HTTP/1.0$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('php://output');exit;
从 61 都 71 行都是为了向浏览器输出做的准备工作
如果你只是想保存到文件只需
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('文件名');
即可
换csv吧。 现在还用什么xls
fgetcsv 读
fputcsv 写
单纯导出Excel文件
http://jingyan.baidu.com/article/915fc414f4c2e451384b205c.html
导出带图片的Excel文件:
http://jingyan.baidu.com/article/4f7d5712aea37f1a201927d7.html