PhpSpreadsheet导出商品二维码图片到Excel表格
2020年06月15日 下午14:29:46
原文链接:http://note.youdao.com/noteshare?id=10f96a59f6ced3167202f0eb8b2b7811&sub=FF0FAD00558142B788636ADAEC4291A2
相信许多的phper已经接触过PhpSpreadsheet了,由于PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下一个版本。并且PhpSpreadsheet是一个用纯PHP编写的库拥有丰富的API接口,并引入了命名空间,PSR规范等等。
- 首先是通过composer包管理工具下载phpspreadsheet拓展到laravel框架
- 使用phpspreadsheet导出图片的部分源码
// 实例化spreadsheet
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 设置sheet标签的名字
$spreadsheet->getActiveSheet()->setTitle('导出表格');
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(16);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(60);
// 设置第一行小标题
$k = 1;
$sheet->setCellValue('A'.$k, '商品货号');
$sheet->setCellValue('B'.$k, '商品二维码');
$list = $res->get($this->selectFields);
$list = $list->toArray();
// 循环赋值
$k = 2;
foreach ($list as $key => $value) {
$sheet->setCellValue('A'.$k, $value['itemNo']);
if ($value['codes'] != null) {
$value['img'] = 'https://cdn.meiguonet.com/huafei/12sdhoa221sdy97.png';
$img = self::curlGet($value['img']);
// 获取本地文件夹路径
$dir = AppContext::getRealpathForClasspathResource("classpath:data");
$file_info = pathinfo($value['img']);
// 过滤非文件类型
if (!empty($file_info['basename'])) {
$basename = $file_info['basename'];
// 进行检测文件是否存在
is_dir($dir) OR mkdir($dir, 0777, true);
file_put_contents($dir . $basename, $img);
// 引入操作图片类
$drawing[$k] = new Drawing();
$drawing[$k]->setName('GoodsCode');
$drawing[$k]->setDescription('GoodsCode');
$drawing[$k]->setPath($dir . $basename);
$drawing[$k]->setWidth(80);
$drawing[$k]->setHeight(80);
$drawing[$k]->setCoordinates('B'.$k);
$drawing[$k]->setOffsetX(10);
$drawing[$k]->setOffsetY(10);
$drawing[$k]->setWorksheet($spreadsheet->getActiveSheet());
}
} else {
$sheet->setCellValue('B'.$k, '');
}
// 每行高度设置
$sheet->getRowDimension($k)->setRowHeight(80);
$k++;
}
- 完成后导出表格