作者:乔山办公网日期:
返回目录:excel表格制作
用PHPExcel,PHPExcel是相当强大的 MS Office Excel 文档生成类库。
你上它的官/网把程序包下/载下来,里面有 PHPExcel 的程序、还有30个实例e799bee5baa6e79fa5e98193e4b893e5b19e339程序和三个文档。
看一下其中的开发文档你就会用了。
读取(这段在开发文档里有的,在13页):
require_once '../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("test.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
额其他的还没仔细看 但是PHP中 $outputFileName = "报价.$time.xls"; 这样的写法有点奇葩 应该是"报价".$time."xls"吧~~~
在PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 后面
加一行 ob_clean();
php下载excel文件,
1、在下载的过程中不要 输出任何非文件信息,比如 echo log信息。
否则下载后的文件无法打开,提示格式错误或者文件被破坏。
2、 输出的excel格式一定要和后缀名保存一直e799bee5baa6e79fa5e98193e4b893e5b19e330,否也会提示格式错误或者文件被破坏
代码如下:
if (file_exists(CACHE_PATH .
$file_name)){
//$this->logger->error('file
realpath:'.realpath(CACHE_PATH . $file_name));
header( 'Pragma: public'
);
header( 'Expires: 0' );
header( 'Content-Encoding: none'
);
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0'
);
header( 'Cache-Control: public' );
header( 'Content-Type:
application/vnd.ms-excel');
header( 'Content-Description: File
Transfer' );
header( 'Content-Disposition: attachment; filename=' .
$file_name );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Length: ' . filesize ( CACHE_PATH . $file_name ) );
readfile ( CACHE_PATH . $file_name );
} else
{
$this->logger->error('export model :'.$id.' 错误:未生产文件');
echo '<script>alert(\'export error, file not
exists!\')</script>';
}