| // +------------------------------------------------+ namespace app\common\service; class Excel extends _Init { /** * 导出提现管理 * @param [type] $list [description] * @return [type] [description] */ public static function withdrawal_excel($list) { $data = array(); foreach ($list as $key => $v) { $data[] = [ $v->userinfo->nickname, $v->money, $v->charge, $v->price, strip_tags($v->status_text), $v->create_time, ]; } $header = ['姓名', '提现金额', '手续费', '实收', '状态', '创建时间']; self::writer($header, $data, '提现记录 - ', true); } /** * 全部账户 * @param [type] $list [description] * @return [type] [description] */ public static function account_excel($list) { $n = array(); foreach ($list as $key => $v) { if ($v->user->is_country) { $level = ' 分公司'; } elseif ($v->user->is_center) { $level = '报单中心'; } else { $level = $v->user->levelinfo->title; } $n[] = [ $v->uid, $v->user->username, $v->user->info->nickname ?? '', $level, $v->user->identity->title ?? '', $v->user->account->price, $v->user->account->earnings, $v->user->account->cash, $v->user->account->balance, $v->user->spot_text, $v->user->create_time, ]; } $header = ['会员编号', '帐号', '真实名称', '会员等级', '套餐类型', '消费积分账户', '收益账户', '注册积分账户', '余额宝账户', '空点', '注册时间']; self::writer($header, $n, '全部账户 - ', true); } /** * 导出账变 * @param [type] $list [description] * @return [type] [description] */ public static function account_logs_excel($list) { $n = array(); foreach ($list as $key => $v) { $n[] = [ $v->uid, $v->user->info->nickname ?? '', $v->type_text, $v->rules->title, $v->increase, $v->remark, $v->create_time, $v->fromuser, $v->fuser->info->nickname ?? '', ]; } $header = ['会员编号', '真实名称', '账户类型', '获取规则', '获取数值', '描述', '产生时间', '产生会员', '会员名称']; self::writer($header, $n, '账变明细 - ', true); } /** * [writer description] * @param [type] $header 表头信息 * @param [type] $data 表数据 * @param boolean $type 是否输出 true 直接下载 false 保存文件 */ public static function writer($header, $data, $fileName = '', $output = false) { $cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; $cacheSettings = array('memoryCacheSize' => '16MB'); $istrue = \PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); $objPHPExcel = new \PHPExcel(); $objProps = $objPHPExcel->getProperties(); $objProps->setCreator("skyxu"); //设置表头 $key = ord("A"); foreach ($header as $v) { $colum = chr($key); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v); $objPHPExcel->getActiveSheet()->getStyle($colum . '1')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle($colum . '1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $key += 1; } $column = 2; $objActSheet = $objPHPExcel->getActiveSheet(); foreach ($data as $key => $rows) { //行写入 $span = ord("A"); foreach ($rows as $keyName => $value) { // 列写入 $j = chr($span); //'f' $objActSheet->setCellValue($j . $column, $value); $span++; } $column++; } $objPHPExcel->getActiveSheet()->setTitle($fileName); $objPHPExcel->setActiveSheetIndex(0); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $saveName = $fileName . date('YmdHis', time()) . '.xls'; if ($output) { //$fileName = iconv("utf-8", "gb2312", $fileName); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename=\"$saveName\""); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); } else { //$fileName = iconv("utf-8", "gb2312", $fileName); $objWriter->save($saveName); return $saveName . '.xls'; } } /** * 使用的内存 * @return [type] [description] */ public static function memory_usage() { $memory = (!function_exists('memory_get_usage')) ? '0' : round(memory_get_usage() / 1024 / 1024, 2) . 'MB'; return $memory; } }