700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php导出csv插件 PHP导出CSV EXCEL

php导出csv插件 PHP导出CSV EXCEL

时间:2019-06-23 07:01:38

相关推荐

php导出csv插件 PHP导出CSV EXCEL

/**

*导出为CSV,excel文件

*参数的设置

*/

functiondownloadExcel(){

require_once('../conn.php');

header('Content-Type:text/html;charset=UTF-8');

$keyword=$_GET['keyword'];

if($keyword=='全部'){

$sql="SELECTd.equnumber,e.DepNameasusedepname,b.fieldnameasnewname,f.DepNameasappdepname,c.fieldnameasoldname,d.Price,d.StateFROMrequestASAinnerjoinequipmentASdond.id=a.EquipmentIDinnerjoinfieldASbonb.fieldid=a.useridinnerjoinfieldASconc.fieldid=a.AppIDinnerjoindepartmentASeone.depid=a.usedepinnerjoindepartmentASfonf.depid=a.appdepWHERE1";

}else{

$sql="SELECTd.equnumber,e.DepNameasusedepname,b.fieldnameasnewname,f.DepNameasappdepname,c.fieldnameasoldname,d.Price,d.StateFROMrequestASAinnerjoinequipmentASdond.id=a.EquipmentIDinnerjoinfieldASbonb.fieldid=a.useridinnerjoinfieldASconc.fieldid=a.AppIDinnerjoindepartmentASeone.depid=a.usedepinnerjoindepartmentASfonf.depid=a.appdepWHEREd.State='$keyword'";

}

$result=mysqli_query($conn,$sql);

if(!$result){

die('CouldNOTConnect'.mysqli_error($conn));

}

else{

while($row=mysqli_fetch_array($result,MYSQL_ASSOC)){

//获取需要导出的数据

$data[]=array("equnumber"=>urlencode($row['equnumber']),"usedepname"=>$row['usedepname'],"usesitename"=>$row['newname'],"appdepname"=>urldecode($row['appdepname']),"appsitename"=>urldecode($row['oldname']),"price"=>urldecode($row['Price']),"state"=>urldecode($row['State']));

}

//设置EXCEL文件第一行的列头

$headlist=array('设备编号','现使用总部门','现使用子部门','原申请部门','原申请子部门','价格','设备状态');

//设置EXCEL文件的文件名字

$fieldname='IT部资产清单'.date("Y.m.d");

csv_export($data,$headlist,$fieldname);

}

}

/**

*导出excel(csv)

*@data导出数据

*@headlist第一行,列名

*@fileName输出Excel文件名

*/

functioncsv_export($data=array(),$headlist=array(),$fileName){

header('Content-Type:application/vnd.ms-excel');

header('Content-Disposition:attachment;filename="'.$fileName.'.csv"');

header('Cache-Control:max-age=0');

//打开PHP文件句柄,php://output表示直接输出到浏览器

$fp=fopen('php://output','a');

//输出Excel列名信息

foreach($headlistas$key=>$value){

//CSV的Excel支持GBK编码,一定要转换,否则乱码

$headlist[$key]=iconv('utf-8','gbk',$value);

}

//将数据通过fputcsv写到文件句柄

fputcsv($fp,$headlist);

//计数器

$num=0;

//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小

$limit=100000;

//逐行取出数据,不浪费内存

$count=count($data);

for($i=0;$i

$num++;

//刷新一下输出buffer,防止由于数据过多造成问题

if($limit==$num){

ob_flush();

flush();

$num=0;

}

$row=$data[$i];

foreach($rowas$key=>$value){

$row[$key]=iconv('utf-8','gbk',$value);

}

fputcsv($fp,$row);

exit();

}

}

因为自己也是小白,所以写的代码看着很幼稚,但是确实可以帮助导出。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。