public function generate_excel_one($data=array()){ // 导出Exl import("PHPExcel.PHPExcel"); import("PHPExcel.PHPExcel.Worksheet.Drawing"); //import("PHPExcel.PHPExcel.Writer.Excel2007"); $objPHPExcel = new \PHPExcel(); //$objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel); $objActSheet = $objPHPExcel->getActiveSheet(); // 水平居中(位置很重要,建议在最初始位置) $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objActSheet->setCellValue('A1', '序号'); $objActSheet->setCellValue('B1', '创建时间'); $objActSheet->setCellValue('C1', '分享模块'); $objActSheet->setCellValue('D1', '分享文案'); $objActSheet->setCellValue('E1', '背景图片'); $objActSheet->setCellValue('F1', '分享微信图片'); $objActSheet->setCellValue('G1', '生成海报图片'); $objActSheet->setCellValue('H1', 'APP&小程序'); $objActSheet->setCellValue('I1', '操作账号'); // 设置个表格宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(30); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12); // 垂直居中 $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $dir_mk=PUBLIC_PATH . '/download_temp/'; if (!is_dir($dir_mk)) { @mkdir($dir_mk, 0755, true); } foreach((array)$data as $k=>$v){ $k +=2; $objActSheet->setCellValue('A'.$k, $v['share_management_id']); $objActSheet->setCellValue('B'.$k, $v['create_time']); $objActSheet->setCellValue('C'.$k, $v['share_module_name']); $objActSheet->setCellValue('D'.$k, $v['share_article']); if(!empty($v['share_background_img'])) { $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing(); $temp_img_1 = $this->download($v['share_background_img'], PUBLIC_PATH . '/download_temp/');//background $local_pic_path_1 = $dir_mk . $temp_img_1; if (file_exists($local_pic_path_1)) { // 图片生成 poster $objDrawing[$k]->setPath($local_pic_path_1); // 设置宽度高度 $objDrawing[$k]->setHeight(80);//照片高度 $objDrawing[$k]->setWidth(80); //照片宽度 //设置图片要插入的单元格 $objDrawing[$k]->setCoordinates('E' . $k); // 图片偏移距离 $objDrawing[$k]->setOffsetX(0); $objDrawing[$k]->setOffsetY(0); $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet()); } } if(!empty($v['share_wechat_img'])) { $objDrawing_k[$k] = new \PHPExcel_Worksheet_Drawing(); $temp_img_2 = $this->download($v['share_wechat_img'], PUBLIC_PATH . '/download_temp/');//wechat $local_pic_path_2 = $dir_mk .$temp_img_2; if (file_exists($local_pic_path_2)) { // 图片生成 poster $objDrawing_k[$k]->setPath($local_pic_path_2); // 设置宽度高度 $objDrawing_k[$k]->setHeight(80);//照片高度 $objDrawing_k[$k]->setWidth(80); //照片宽度 //设置图片要插入的单元格 $objDrawing_k[$k]->setCoordinates('F' . $k); // 图片偏移距离 $objDrawing_k[$k]->setOffsetX(0); $objDrawing_k[$k]->setOffsetY(0); $objDrawing_k[$k]->setWorksheet($objPHPExcel->getActiveSheet()); } } if(!empty($v['share_poster_img'])) { $objDrawing_kk[$k] = new \PHPExcel_Worksheet_Drawing(); $temp_img = $this->download($v['share_poster_img'], PUBLIC_PATH . '/download_temp/');//poster $local_pic_path = $dir_mk . $temp_img; if (file_exists($local_pic_path)) { // 图片生成 poster $objDrawing_kk[$k]->setPath($local_pic_path); // 设置宽度高度 $objDrawing_kk[$k]->setHeight(80);//照片高度 $objDrawing_kk[$k]->setWidth(80); //照片宽度 //设置图片要插入的单元格 $objDrawing_kk[$k]->setCoordinates('G' . $k); // 图片偏移距离 $objDrawing_kk[$k]->setOffsetX(0); $objDrawing_kk[$k]->setOffsetY(0); $objDrawing_kk[$k]->setWorksheet($objPHPExcel->getActiveSheet()); } } // 表格内容 $objActSheet->setCellValue('H'.$k, $v['share_platform']); $objActSheet->setCellValue('I'.$k, $v['admin_account_number']); // 表格高度 $objActSheet->getRowDimension($k)->setRowHeight(80); } $fileName = '后台创建分享列表'; $date = date("Y-m-d",time()); $fileName .= "_{$date}.xls"; $fileName = iconv("utf-8", "gb2312", $fileName); //重命名表 // $objPHPExcel->getActiveSheet()->setTitle('test'); //设置活动单指数到第一个表,所以Excel打开这是第一个表 $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename=\"$fileName\""); header('Cache-Control: max-age=100'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); //文件通过浏览器下载 // END } private function download($url, $path = './public/download_temp/') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 90); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书 $file = curl_exec($ch); curl_close($ch); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'w'); fwrite($resource, $file); fclose($resource); return $filename; }
phpEXCEL导出含图片
最新推荐文章于 2024-07-16 08:10:25 发布