Rumah >pembangunan bahagian belakang >tutorial php >利用PHPEXCEL 导出数据和图片的代码

利用PHPEXCEL 导出数据和图片的代码

不言
不言asal
2018-06-11 11:50:293388semak imbas

这篇文章主要介绍了关于利用PHPEXCEL 导出数据和图片的代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

前言

图片对excel来说是一个对象,正常是导出不到单元格里去,所以大家都很困惑到底该怎么使用PHP语言来进行导出呢!下面我就详细的讲解下怎么使用php导出图片到excel(此例是使用CI框架)

注释:这个是CI项目的哦,别的框架放到类库里就行了

上代码

//CI框架引入PHPExcel
$this->load->library('PHPExcel');//实例化PHPExcel类
$objPHPExcel = new PHPExcel();//图片处理类,这个才是图片导出的关键哦
$objDrawing = new PHPExcel_Worksheet_Drawing();//然后正常设置我们导出图片的代码

$objPHPExcel->createSheet(0);
$objPHPExcel->setActiveSheetIndex(0);
$currentSheet = $objPHPExcel->getActiveSheet();// 水平居中(位置很重要,建议在最初始位置,这里我举例,ABCDEFG,可以按照自己的需求定义!~)

$objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->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);

$objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);// 设置个表格宽度(这个一定要设置哦,不然图片会大厨单元格的)

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);//设置第一行标题

$currentSheet->setCellValue('A1', "序列号");
$currentSheet->setCellValue('B1', "设备ID");
$currentSheet->setCellValue('C1', "设备密码");
$currentSheet->setCellValue('D1', "设备编码");
$currentSheet->setCellValue('E1', "二维码");
$currentSheet->setCellValue('F1', "二维码");
$currentSheet->setCellValue('G1', "二维码");//定义变量初始化为2,从第二行开始

$idx          = 2;//开始循环数组数据!~

foreach ($devices as $device) {  //设置数据所在单元格,我这里把图片放在E里
  $currentSheet->setCellValue('A' . $idx, $device['sequence']);
  $currentSheet->setCellValue('B' . $idx, $device['device_unique']);
  $currentSheet->setCellValue('C' . $idx, $device['device_pwd']);
  $currentSheet->setCellValue('D' . $idx, $device['device_code']);  //设置单元格高度,这个是重点哦
  $currentSheet->getRowDimension($idx) -> setRowHeight(60)  //获取图片
  $this->load->model('Device_codes_model');
  $codes = $this->Device_codes_model->getOneCodes($id);  //开始设置图片啦~~
  $objDrawing->setPath($codes['code_file']);  // 设置图片宽度高度
  $objDrawing->setHeight(80);//照片高度
  $objDrawing->setWidth(80); //照片宽度  /*设置图片要插入的单元格*/
  $objDrawing->setCoordinates('E'.$idx);  // 图片偏移距离
  $objDrawing->setOffsetX(12);
  $objDrawing->setOffsetY(12);
  $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
  $idx++;
}//导出excel到表格

$sheetWrite = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

 相关推荐:

三种php递归函数的实现方法及实现数字的累加

thinkPHP5框架自定义验证器的实现

PHP上传Excel文件导入数据到MySQL数据库

Atas ialah kandungan terperinci 利用PHPEXCEL 导出数据和图片的代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn