PHP导出Excel

来源:互联网 发布:网络棋牌大赛 编辑:程序博客网 时间:2024/06/05 12:40

php中需要导出excel功能,在这里就顺便总结下

<?php
header("content-type:text/html;charset=utf-8");
/** Error reporting */
error_reporting(E_ALL);
/** PHPExcel */
include_once'PHPExcel.php';
 
/** PHPExcel_Writer_Excel2003用于创建xls文件 */
include_once'PHPExcel/Writer/Excel5.php';
 
// Create new PHPExcel object
$objPHPExcel=newPHPExcel();
 
// Set properties
$objPHPExcel->getProperties()->setCreator("aaa");
$objPHPExcel->getProperties()->setLastModifiedBy("aaa");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
 
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1','Date');
//合并单元格:
$objPHPExcel->getActiveSheet()->mergeCells('B1:F1');
$objPHPExcel->getActiveSheet()->SetCellValue('B1','CSAT Score');
$objPHPExcel->getActiveSheet()->SetCellValue('G1','Grand Total');
$objPHPExcel->getActiveSheet()->SetCellValue('H1','CSAT');
$objPHPExcel->getActiveSheet()->SetCellValue('A2','08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('C2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('D2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('E2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('F2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('G2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('H2','0%');
$objPHPExcel->getActiveSheet()->SetCellValue('A3','08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('C3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('D3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('E3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('F3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('G3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('H3','0%');
$objPHPExcel->getActiveSheet()->SetCellValue('A4','08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('C4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('D4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('E4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('F4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('G4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('H4','0%');
 
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Csat');
 
   
// Save Excel 2007 file
//$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  
 $objWriter=newPHPExcel_Writer_Excel5($objPHPExcel);
 $objWriter->save(str_replace('.php','.xls',__FILE__));
 header("Pragma: public");
 header("Expires: 0");
 header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
 header("Content-Type:application/force-download");
 header("Content-Type:application/vnd.ms-execl");
 header("Content-Type:application/octet-stream");
 header("Content-Type:application/download");
 header("Content-Disposition:attachment;filename=csat.xls");
 header("Content-Transfer-Encoding:binary");
 $objWriter->save("php://output");
?>

还有一种方法:通过header直接导出,这种就类似到空白文件中写入内容,不过将改文件定义为excel

<?php
header ( "Content-type:application/vnd.ms-excel");
header ( "Content-Disposition:filename=csat.xls");
    echo"<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type'content='text/html; charset=UTF-8' />
<title>无标题文档</title>
<style>
td{
    text-align:center;
    font-size:12px;
    font-family:Arial, Helvetica, sans-serif;
    border:#1C7A80 1px solid;
    color:#152122;
    width:100px;
}
table,tr{
    border-style:none;
}
.title{
    background:#7DDCF0;
    color:#FFFFFF;
    font-weight:bold;
}
</style>
</head>
 
<body>
<table width='800'border='1'>
  <tr>
    <tdclass='title'>Date</td>
    <tdclass='title'colspan='5'style='width:500px;text-align:center;'>CSAT Score</td>
    <tdclass='title'>Grand Total</td>
    <tdclass='title'>CSAT</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>测试内容!!</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
  <tr>
    <td>08/01/11</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0</td>
    <td>0%</td>
  </tr>
</table>
</body>
</html>
";
?>


后来因为导出数据太多,导致前两种方法不太好

就找到第三种方法

网址:http://blog.csdn.net/ysydao/article/details/8951204

0 0
原创粉丝点击