只需要這兩個放到Org下的Util裏面,把PHPExcel.php改成PHPExcel.class.php,然後在前段寫一個可以傳表名到後端的標籤 a也行 input也行;
//導出
public function table_export(){
$t_name = I('get.C_cate');
$obj = M("t_數據庫總結構2");
$tName = $obj->where(" C_分類 = "."'".$t_name."'") ->select();
$tobj = M('t_'.$tName[0]["c_表名稱"]);
$data = $tobj->select();//查出要導出的單表數據
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.Writer.Excel5");
import("Org.Util.PHPExcel.IOFactory.php");
$filename = '租賃費'; //導出的文件名
$headarr = array("編號","日期","租賃費"); //文件內標題
$this->getExcel($filename,$headarr,$data);
}
public function getExcel( $filename,$headarr,$data){
//對數據進行檢驗
if(empty($data) || !is_array($data)){
die("數據必須是數組");
}
$date = date("Y-m-d",time());
$filename .= "_{$date}.xls";
//創建PHPExcel對象
$excelobj = new \PHPExcel();
$proobj = $excelobj ->getProperties();
//設置excel表頭
$key = ord("A");
foreach($headarr as $k=>$v){
$colum = chr($key);
$excelobj -> setActiveSheetIndex(0) ->setCellValue($colum.'1',$v);
$key += 1;
}
$column = 2;
$actsheetobj = $excelobj ->getActiveSheet();
foreach($data as $key=>$rows){
$span = ord("A");
foreach($rows as $keyname=>$value){
$j = chr($span);
$actsheetobj->setCellValue($j.$column,$value);
$span++;
}
$column++;
}
$filename = iconv("utf-8","gb2312",$filename);
$excelobj -> setActiveSheetIndex(0);
ob_get_clean();
ob_start();
header('Content-Type: application/ynd.ms-excel');
header("Content-Disposition: attachment;filename=\"$filename\"");
header('Cache-Control: max-age=0');
$writerobj = \PHPExcel_IOFactory::createWriter($excelobj,'Excel5');
$writerobj->save('php://output');
exit;
}