//安装phpexcel的composer包
composer require phpoffice/phpexcel<?php
namespace appindexcontroller;use thinkController;
use PHPExcel_Worksheet_Drawing;
use PHPExcel;
use PHPExcel_IOFactory;
use PHPExcel_Style_Alignment;
use thinkfacadeEnv;class Index extends Controller
{public function index(){$root = Env::get('root_path');$path = $root.'public/static/images/avatar.png';$arr = [['id' => 1,'username' => 'wyq','nickname' => '心如止水','password' => '123456','phone' => '13451167651','init_time' => 1622632002,'img' => $path],['id' => 2,'username' => 'fj','nickname' => 'xj','password' => '123456','phone' => '13451163651','init_time' => 1622632002,'img' => $path],['id' => 3,'username' => 'szy','nickname' => 'szy','password' => '123456','phone' => '13451163641','init_time' => 1622632002,'img' => $path]];//实例化$objExcel = new PHPExcel();//设置文档属性$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');//设置内容;$objActSheet = $objExcel->getActiveSheet();$objActSheet->getStyle("A:Z")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER)->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);$key = ord("A");$letter = explode(',', "A,B,C,D,E,F,G");//设置表头$arrHeader = array('用户ID', '用户名', '昵称','用户密码','手机号码' ,'注册时间','图片');$lenth = count($arrHeader);//填充表头信息 A1:用户ID、B1:用户名、C1:昵称for ($i = 0; $i < $lenth; $i++) {$objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]");};//填充表格信息foreach ($arr as $k => $v) {//从第二行开始$k += 2;//表格内容$objActSheet->setCellValue('A' . $k, $v['id']);$objActSheet->setCellValue('B' . $k, $v['username']);$objActSheet->setCellValue('C' . $k, $v['nickname']);$objActSheet->setCellValue('D' . $k, $v['password']);$objActSheet->setCellValue('E' . $k, $v['phone']);$objActSheet->setCellValue('F' . $k, date('Y-m-d H:i:s', $v['init_time']));if ($v['img']){//实例化图片操作类$objDrawing = new PHPExcel_Worksheet_Drawing();//设置图片地址$objDrawing -> setPath($v['img']);//设置图片高$objDrawing ->setHeight(30);//设置图片宽$objDrawing ->setWidth(30);//设置图片存放在表格的位置$objDrawing ->setCoordinates('G' . $k);//设置X方向偏移量$objDrawing ->setOffsetX(12);//设置Y方向偏移量$objDrawing ->setOffsetY(12);$objDrawing ->setWorksheet($objActSheet);//设置表格的高度$objActSheet->getRowDimension($k)->setRowHeight(50);}$width = array(20, 20, 15, 10, 10, 30, 10, 15);//设置表格的宽度$objActSheet->getColumnDimension('A')->setWidth(10);$objActSheet->getColumnDimension('B')->setWidth(20);$objActSheet->getColumnDimension('C')->setWidth(20);$objActSheet->getColumnDimension('D')->setWidth(30);$objActSheet->getColumnDimension('E')->setWidth(20);$objActSheet->getColumnDimension('F')->setWidth(20);$objActSheet->getColumnDimension('G')->setWidth(10);}$outfile = "人员表" . time() . ".xlsx";//清空输出缓冲区ob_end_clean();//告诉浏览器强制下载header("Content-Type: application/force-download");//二进制文件类型header("Content-Type: application/octet-stream");header("Content-Type: application/download");//设置表名header('Content-Disposition:inline;filename="' . $outfile . '"');header("Content-Transfer-Encoding: binary");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header("Pragma: no-cache");$objWriter->save('php://output');}
}
本文发布于:2024-02-02 19:16:37,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170687259845880.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |