AI智能
改变未来

Thinkphp5 实现Excel导出

第一步下载PHPExcel类 命名为PHPExcel 放到vendor下

public function excel(){header(\'Content-Type:text/html; charset=utf-8\');//转换一下格式  避免乱码$xlsData = db(\'orders\')->select();//dump($xlsData);die;Vendor(\'PHPExcel.PHPExcel\');//调用类库,路径是基于vendor文件夹的Vendor(\'PHPExcel.PHPExcel.Worksheet.Drawing\');Vendor(\'PHPExcel.PHPExcel.Writer.Excel2007\');$objExcel = new \\PHPExcel();//set document Property$objWriter = \\PHPExcel_IOFactory::createWriter($objExcel, \'Excel2007\');$objActSheet = $objExcel->getActiveSheet();$key = ord(\"A\");$letter =explode(\',\',\"A,B,C,D,E,F,G,H,I,J\");//填充表头信息$arrHeader = array(\'订单号\',\'商品名称\',\'数量\',\'姓名\',\'电话\',\'支付状态\',\'应收款\',\'下单时间\');$lenth =  count($arrHeader);for($i = 0;$i < $lenth;$i++) {$objActSheet->setCellValue(\"$letter[$i]1\",\"$arrHeader[$i]\");};//填充表格信息//0,未支付,1待确认,2已支付,3已完成foreach($xlsData as $k=>$v){$k +=2;$objActSheet->setCellValue(\'A\'.$k,$v[\'ordersn\']);$objActSheet->setCellValue(\'B\'.$k, $v[\'gtitle\']);$objActSheet->setCellValue(\'C\'.$k, $v[\'totalnum\']);$objActSheet->setCellValue(\'D\'.$k, $v[\'realname\']);$objActSheet->setCellValue(\'E\'.$k, $v[\'mobile\']);if($v[\'ostatus\'] == 0){$paystyle = \'未支付\';}elseif($v[\'ostatus\'] == 1){$paystyle = \'待确认\';}elseif($v[\'ostatus\'] == 2){$paystyle = \'已支付\';}elseif($v[\'ostatus\'] == 3){$paystyle = \'已完成\';}$objActSheet->setCellValue(\'F\'.$k, $paystyle);$objActSheet->setCellValue(\'G\'.$k, $v[\'price\']);$objActSheet->setCellValue(\'H\'.$k, date(\'Y-m-d H:i:s\',$v[\'ocreatetime\']));// 表格高度$objActSheet->getRowDimension($k)->setRowHeight(20);}$width = array(10,15,20,25,30);//设置表格的宽度$objActSheet->getColumnDimension(\'A\')->setWidth($width[1]);$objActSheet->getColumnDimension(\'B\')->setWidth($width[2]);$objActSheet->getColumnDimension(\'C\')->setWidth($width[3]);$objActSheet->getColumnDimension(\'D\')->setWidth($width[4]);$objActSheet->getColumnDimension(\'E\')->setWidth($width[1]);$objActSheet->getColumnDimension(\'F\')->setWidth($width[1]);$objActSheet->getColumnDimension(\'G\')->setWidth($width[1]);$objActSheet->getColumnDimension(\'H\')->setWidth($width[1]);$objActSheet->getColumnDimension(\'I\')->setWidth($width[1]);//下载的文件夹名$outfile = \"信息列表.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\');}

执行方法导出成功 =.= 溜

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Thinkphp5 实现Excel导出