PhpSpreadsheet导出商品二维码图片到Excel表格

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规范等等。

  1. 首先是通过composer包管理工具下载phpspreadsheet拓展到laravel框架
  2. 使用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++;
}
  1. 完成后导出表格
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值