热搜:NVER node 开发 php

php生成excel 求解

2024-08-21 10:40:01
php生成excel 求解

在网上找了phpexcel    生成了个简单的文件, 但最后他是用save方法 保存下来的 ,好像是输出到php://output( 我的理解),后台权限没过(好像不能访问这个地址,我已经登录了后台)   然后下载的文件是登录的那个网页    生成到服务器端  然后重定向下载是没问题的    但这样 我不好删除这个文件   对phpexcel不熟    求解   还是说换个库~~~

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save(str_replace('.php', '.xls', __FILE__));$callEndTime = microtime(true);$callTime = $callEndTime - $callStartTime;


回复讨论(解决方案)

上面代码搞错了 具体生成文件代码如下 :

<?php/** * PHPExcel * * Copyright (C) 2006 - 2014 PHPExcel * * @category   PHPExcel * @package    PHPExcel * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL * @version    1.8.0, 2014-03-02 *//** Error reporting */error_reporting(E_ALL);ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE);date_default_timezone_set('Europe/London');if (PHP_SAPI == 'cli')	die('This example should only be run from a Web Browser');/** Include PHPExcel */require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';// Create new PHPExcel object$objPHPExcel = new PHPExcel();// Set document properties$objPHPExcel->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