/** * 消费记录的导出 * @param string $type */ public function xfjl_excel() { $startTime = $_POST['startDate']; //选择时间段(开始时间) $endTime = $_POST['endDate'];//结束时间 // var_dump($startTime); // var_dump($endTime); // $S = strtotime($startTime); // $D = strtotime($endTime); // var_dump($S); // var_dump($D); // exit; $header = ['订单号','写手老师姓名','收入/美金','应付费用/美金','实付费用/美金','利润/美金','日期']; $info = Db::query("select o.uid,o.order_sn,o.order_price,o.ctime,w.writer_price,w.paid_price,a.action_user from yiji_order o,yiji_writer_order w,yiji_writer_order_action a where o.order_sn = w.order_sn and o.uid = a.order_id and o.ctime >= $S and o.ctime <= $D group by o.ctime desc"); // echo "<pre>"; // var_dump($info); // exit; if(empty($info)){ $this -> error('没有数据记录或参数有问题'); }else{ $data = array(); foreach ($info as $key => $v) { $profit = $v['order_price'] - $v['writer_price']; $data[]= array( 'order_sn' => $v['order_sn'], 'admin_username' => $v['action_user'], 'order_price' => $v['order_price'], 'writer_price' => $v['writer_price'], 'paid_price' => $v['paid_price'], 'profit' => $profit, 'ctime' => date('Y-m-d H:i:s', $v['ctime']), ); } //设置导出的文件名 $fileName = "消费记录-" . date('Y-m-d H:i:s'); //调用导出私有方法 self::exportExcel($fileName, $header, $data); } } /** * 导出私有方法 * @param $fileName //导出保存文件名 * @param $columnName //数据标题 * @param $linkClearingArray //数据提 */ static function exportExcel($fileName, $columnName, $linkClearingArray) { //设置时间 set_time_limit(0); //设置头部 header('Content-Type: application/vnd.ms-excel;charset=utf-8'); header("Content-Disposition:filename=" . $fileName . ".csv"); // 打开PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); // 将中文标题转换编码,否则乱码 foreach ($columnName as $i => $v) { $columnName[$i] = $v; } // 将标题名称通过fputcsv写到文件句柄 fputcsv($fp, $columnName); //将将要导出的数据赋值在数组 $exportData = $linkClearingArray; //计算导出数量 $linkClearingNumber = count($linkClearingArray); //循环读取数据并导出数据 for ($t = 0; $t < $linkClearingNumber; $t++) { $row = $exportData[$t]; foreach ($row as $i => $v) { $row[$i] = $v; } fputcsv($fp, $row); } // 将已经写到csv中的数据存储变量销毁,释放内存占用 unset($exportData); //关闭避免占用内存 ob_flush(); flush(); exit (); } |
|