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;

}

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。