<?php
//导出数据
public function exportData(){
$ary_lottery_list = D('DrawUser')->userLucky('5');
$fileExcel = $_SERVER['DOCUMENT_ROOT'].'/Public/Uploads/excel/'; //文件存放目录
if(!is_dir($fileExcel)) @mkdir($fileExcel,0777,1);
$excel_file = 'exportStatData'. date('Y-m-d-H-i-s', time()).'.csv';
$header = $this->setExcelHeader($ary_lottery_list);
$contents = $this->setExcelContents($ary_lottery_list);
$this->export_csv($contents, $header, $excel_file,$fileExcel);
//Excel显示列
header("Content-type:application/force-download;charset=utf-8");
header("Content-Disposition:attachment;filename=" .$excel_file);
readfile($fileExcel.$excel_file);
exit;
}
/* *
* 报表字段
*/
private function setExcelHeader($ary_data){
$heards = array(
'ID','姓名','手机号','详细地址','奖品'
);
return $heards;
}
/* *
* 处理获取的数据库数据
*/
private function setExcelContents($ary_data){
$contents = array();
foreach($ary_data as $key=>$val){
$tmp_contents = array(
$val['id'],
$val['name'],
$val['tel'],
$val['province']." ".$val['city']." ".$val['county']." ".$val['address'],
$val['p_name']
);
$contents[] = $tmp_contents;
}
return $contents;
}
function export_csv($data, $title_arr, $file_name = '',$filexcel) {
$csv_data = '';
/** 标题 */
$nums = count($title_arr);
for ($i = 0; $i < $nums - 1; ++$i) {
$csv_data .= '"' . $title_arr[$i] . '",';
}
if ($nums > 0) {
$csv_data .= '"' . $title_arr[$nums - 1] . "\"\r\n";
}
$csv_data = iconv('utf-8', 'GB2312',$csv_data);
$file_name = empty($file_name) ? date('Y-m-d-H-i-s', time()) : $file_name;
if(count($data)>300){
file_put_contents($filexcel.$file_name, $csv_data) ;
foreach ($data as $k => $row) {
$csv_data = "";
for ($i = 0; $i < $nums - 1; ++$i) {
if($i == 0){
$row[$i] = str_replace("\"", "\"\"", $row[$i]);
//$csv_data .= '`'.trim($row[$i]). '`,';
$csv_data .= trim($row[$i]). ',';
}else{
$row[$i] = str_replace("\"", "\"\"", trim($row[$i]));
$csv_data .= '"' . $row[$i] . '",';
}
}
$csv_data .= '"' . $row[$nums - 1] . "\"\r\n";
unset($data[$k]);
file_put_contents($filexcel.$file_name, iconv('utf-8', 'GB2312', $csv_data),FILE_APPEND) ;
}
}
else{
foreach ($data as $k => $row) {
$csv_line='';
for ($i = 0; $i < $nums - 1; ++$i) {
if($i == 0){
$row[$i] = str_replace("\"", "\"\"", $row[$i]);
//$csv_line .= '`'.trim($row[$i]). '`,';
$csv_line .= trim($row[$i]). ',';
}else{
$row[$i] = str_replace("\"", "\"\"", trim($row[$i]));
$csv_line .= '"' . $row[$i] . '",';
}
}
$csv_line .= '"' . $row[$nums - 1] . "\"\r\n";
$csv_line = iconv('utf-8', 'GB2312',$csv_line);
$csv_data .= $csv_line;
//unset($data[$k]);
}
file_put_contents($filexcel.$file_name, $csv_data) ;
// file_put_contents($filexcel.$file_name, $csv_data) ;
}
return true;
}
?>
php将数据库数据导出成Excel
最新推荐文章于 2021-03-19 14:06:59 发布