Files
tuiguangzhushou/application/common/service/Excel.php
2020-08-06 15:26:41 +08:00

162 lines
5.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +------------------------------------------------+
// |http://www.cjango.com |
// +------------------------------------------------+
// | 修复BUG不是一朝一夕的事情等我喝醉了再说吧 |
// +------------------------------------------------+
// | Author: 小陈叔叔 <Jason.Chen> |
// +------------------------------------------------+
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;
}
}