php简易excel下载

<?php

namespace Home\Controller;
use Think\Controller;
class TestController extends Controller{
	public function test(){
		$data = [
			[1,11,111,1111],
			[2,22,222,2222],
			[3,33,333,3333]
		];
		
		$excelHead = "这个是Excel表格标题"; 
		$title = "我的Excel表";   #文件命名
		$headtitle= "<tr><th  colspan='3' >{$excelHead}</th></tr>"; 
		$titlename = "<tr> 
		               <th style='width:70px;'>表格1</th> 
		               <th style='width:70px;'>表格2</th> 
		               <th style='width:70px;'>表格3</th> 
		               <th style='width:70px;'>表格4</th> 
		            </tr>"; 
		$filename = $title.".xls"; 
		$this->exportData($data,$titlename,$headtitle,$filename); 

	}

	private function exportData($data,$titlename,$title,$filename){
		$str = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\r\nxmlns=\"http://www.w3.org/TR/REC-html40\">\r\n<head>\r\n<meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>"; 
		$str .= $title; 
		$str .="<table border=1><head>".$titlename."</head>"; 
		foreach ($data  as $key=> $rt ){ 
			$str .= "<tr>"; 
			foreach ( $rt as $k => $v ) { 
				$str .= "<td>{$v}</td>"; 
			}
			$str .= "</tr>\n"; 
		} 
		$str .= "</table></body></html>"; 
		header( "Content-Type: application/vnd.ms-excel; name='excel'" );   #类型
		header( "Content-type: application/octet-stream" );     #告诉浏览器响应的对象的类型(字节流、浏览器默认使用下载方式处理)
		header( "Content-Disposition: attachment; filename=".$filename );   #不打开此文件,刺激浏览器弹出下载窗口、下载文件默认命名
		header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ); 
		header( "Pragma: no-cache" );   #保证不被缓存或者说保证获取的是最新的数据
		header( "Expires: 0" ); 
		exit( $str ); 
	}
}

原址为https://www.cnblogs.com/phpstudy2015-6/p/7260208.html

更优方法https://blog.csdn.net/yaofare/article/details/78983181  无信任提示

另一种导出即为excel,但无法设置表头

$xmlStr = iconv('UTF-8', 'GBK', '序号,姓名,联系电话,车位,车牌号,卡类型,开始日期,到期日期,错时开始时间段,错时结束时间段,卡状态,车库,金额,地址,身份证号') . "\r\n";

 

 

        foreach ($data as $r => $dataRow) {         

            $xmlStr .= ($r + 1) . ",";

            $xmlStr .= iconv('UTF-8', 'GBK', $dataRow ['Name']) . ",";

            $xmlStr .= "\t" . $dataRow ['Phone'] . ",";

            $xmlStr .= "\t" . $dataRow ['ParkCount'] . ",";

            $xmlStr .= iconv('UTF-8', 'GBK', $dataRow ['CarNo']) . ",";

            $xmlStr .= iconv('UTF-8', 'GBK', $typecard) . ",";

            $xmlStr .= chr(1) . substr($dataRow ['BeginTime'], 0, 10) . ",";

            $xmlStr .= chr(1) . substr($dataRow ['EndTime'], 0, 10) . ",";

            $xmlStr .= chr(1) . $dataRow ['PartBegin'] . ",";

            $xmlStr .= chr(1) . $dataRow ['PartEnd'] . ",";

            $xmlStr .= iconv('UTF-8', 'GBK', $zhuangtai) . ",";

            if ($dataRow['InsideParkNo'] == 0) {

                $parknodesc = '无';

            } else {

                $parknodesc = $dataRow['InsideParkDesc'];

            }

            $xmlStr .= iconv('UTF-8', 'GBK', $parknodesc) . ",";

            $xmlStr .= $dataRow ['PayMoney'] . ",";

            $xmlStr .= iconv('UTF-8', 'GBK', $dataRow ['Address']) . ",";

            $xmlStr .= iconv('UTF-8', 'GBK', $dataRow ['IdentityCard']) . ",";

            $xmlStr .= "\r\n";

        }

 

        $outputFileName = "固定车辆管理" . date('Y-m-d', time()) . ".csv";

        header("Content-Type: application/download");

        header('Content-Disposition:inline;filename="' . $outputFileName . '"');

        header("Content-Transfer-Encoding: binary");

        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

        header("Pragma: no-cache");

        echo $xmlStr;

        exit();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值