1、安装扩展:参考文档
2、php中使用:
set_time_limit(0);
ini_set('memory_limit','128M');
$data = [];
$users = DB::table('crm_all_user')->select('id','unionid','mobile','nickname','avatarurl','city','province','country_code','add_time','source_code','user_ip')->get()->toArray();
for($i = 0;$i <= 50;$i++){
foreach ($users as $k=>$v){
array_push($data,$v);
}
}
$sheetNum = ceil(count($data) / 50000);
$config = [
'path' => ROOT_PATH // xlsx文件保存路径
];
$excel = new \Vtiful\Kernel\Excel($config);
$sheet = 1;
for ($i = 1;$i<=$sheetNum;$i++){
if($i > 1){
$excel->addSheet("sheet{$i}");
}
$filePath = $excel->fileName('test01.xlsx', "sheet{$i}")
->header(['id','unionid','mobile','nickname','avatarurl','city','province','country_code','add_time','source_code','user_ip']);
$n = 1;
while ($n<= 50000){
$v = array_shift($data);
if(empty($v)) break;
$excel->data([
[
$v->id,
$v->unionid,
$v->mobile,
$v->nickname,
$v->avatarurl,
$v->city,
$v->province,
$v->country_code,
$v->add_time,
$v->source_code,
$v->user_ip,
]
]);
$n++;
}
$sheet++;
}
$filePath = $excel->output();
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Disposition: attachment;filename="' . $filePath . '"');
header('Content-Length: ' . filesize($filePath));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Cache-Control: max-age=0');
header('Pragma: public');
ob_clean();
flush();
if (copy($filePath, 'php://output') === false) {
// Throw exception
}
@unlink($filePath);
3、更多操作请参考文档
|