天天看点

将内容导出为excel

$data=select userid nickname addtime contents v from user;

$table_head=array("用户id","昵称","时间","内容");

$export_data = array(0=>$table_head);

foreach($data as $row){

        $tmp = array(

$row["userid"],

$row["nickname"],

date("Y-m-d H:i:s",$row["addtime"]),

                        $row['content']

$row["v"],//v对应a、b、c、d、e

);

$export_data[] = $tmp;

}

ob_start();//需要加上,否则无法导出数据

$this->exportDataArray($export_data);

function exportDataArray($data,$filename=""){

if(empty($filename)){

$filename = date("Ymd_His").".csv";

}

//清空先前输出(缓冲区)

ob_clean();

//输出并清空

ob_end_flush();

//指示响应可被任何缓存区缓存

header("Cache-Control: public");

//设定编译器的状态或者是指示编译器完成一些特定的动作

header("Pragma: public");

//告诉浏览器输出的内容是Excel

header("Content-type:application/vnd.ms-excel");

//当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名

header("Content-Disposition:attachment;filename=$filename");

//使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据

header('Content-Type:APPLICATION/OCTET-STREAM');

//打开输出缓冲区

ob_start();

$file_str = null;

foreach ($data as $value) {

$tmp = null;

foreach ($value as $v) {

//去掉其中的html代码

$tmp .= strip_tags($v).",";

}

$tmp = trim($tmp,",");

//$tmp = iconv("utf-8",'gbk',$tmp);

$file_str .= $tmp."\n";

}

// $file_str=  iconv("utf-8",'gbk',$file_str);

//输出并清空

ob_end_clean();

//实际输出

echo $file_str;

}

继续阅读