public function excel(){
/*檢測用戶是否登陸*/
$user_id=Finance::islogin();
if($user_id==0){
$this->redirect('/index.php/index/User/login');
}
Loader::import('PHPExcel.Classes.PHPExcel');
Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
Loader::import('PHPExcel.Classes.PHPExcel.Reader.Excel5');
$PHPExcel = new \PHPExcel(); //實例化一個要保存的phpExcel對象
$PHPSheet = $PHPExcel->getActiveSheet();
$PHPSheet->setTitle("piece"); //給當前活動sheet設置名稱
//接收值
$daterange1 = input("daterange1");
$daterange2 = input("daterange2");
$merchant_name = input("merchant_name");
//查詢語句
$platform = Db::name("platform")
->alias('a')
->join('order_addition b', 'a.merchant_name = b.DpName')
->join('order c', 'c.order_no = b.order_no')
->join('order_item d', 'c.order_id = d.order_id')
->where("a.merchant_name",$merchant_name)
->where('c.created_at', 'between', [$daterange1,$daterange2])
->field("b.orderId,c.created_at,d.title,d.prop_name")
->select();
$i = 2;
//標題行
$PHPSheet->setCellValue("A1",'訂單編號')->setCellValue("B1",'訂單日期')->setCellValue("C1",'商品名稱')->setCellValue("D1",'數量')->setCellValue("E1",'訂單交易幣種')->setCellValue("F1",'訂單總金額')->setCellValue("G1",'收貨地址')->setCellValue("H1",'收件人名稱')->setCellValue("I1",'承認人')->setCellValue("J1",'物流編號');
foreach ($platform as $k){
// $ko = $k;
//我的是三維數組
$prop_name = json_decode($k["prop_name"],true);
$t= "";
if(is_Array($prop_name)){
foreach($prop_name as $v){
$v = join(",",$v);
if($v=="常規屬性"){
$v = '';
}
$temp[] = $v;
$t.="".$v."".",";
}
}
$PHPSheet->setCellValue("A".$i,$k['orderId'])->setCellValue("B".$i,$k['created_at'])->setCellValue("C".$i,$k['title'].$t); //表格數據
$i = $i+1;
}
// die();
$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007"); //創建生成的格式
$file_dir = ROOT_PATH . 'public' . DS . 'static' . DS . 'uploads' . DS . 'factory' . DS . 'settlement' . DS . 'settlement.xlsx'; //文件存放目錄
$PHPWriter->save($file_dir); //表示在$path路徑下面生成demo.xlsx文件
// return true;
$file_name = "settlement.xlsx"; //下載文件名
$file_dir = ROOT_PATH . 'public' . DS . 'static' . DS . 'uploads' . DS . 'factory' . DS . 'settlement' . DS; //下載文件存放目錄
//檢查文件是否存在
if(!file_exists($file_dir . $file_name)){
// echo "文件找不到";
return "文件找不到";
exit();
}else{
//打開文件
$file1 = fopen($file_dir . $file_name, "r");
//輸入文件標簽
Header("Content-type:application/vnd.ms-excel"); //表示輸出的是excel文件
Header("Accept-Ranges: bytes");
Header("Accept-Disposition: attachment;filename=" . $file_name);
ob_clean();
flush(); //清除文件中多余的路徑名以及解決亂碼的問題
echo fread($file1, filesize($file_dir . $file_name));
fclose($file1);
exit();
}
}
//前端點擊下載即可
