zoukankan      html  css  js  c++  java
  • laravel excel 导出表格

    1:创建导出文件,传入数据

    $cover = [

    ['第','一','行'],

    ['第','二','410000000000000000'.''],//防止数字过长导致格式乱码 例如身份证需在字段后加空格

    ['第','三','行'],

    ['',' ',''],//空白行,用于分页打印分割内容,如果不填则会连在一起无法分页

    ];

    表格格式先按照数组格式存储,样式在后续调整

    Excel::create(iconv('UTF-8','GBK', '申请材料'), function ($excel) use ($cover) {

        $excel->sheet('score', function ($sheet)use ($cover) {

            $sheet->rows($cover);

    //后续操作写在此处

              });

    })->export('xls');

    2:表格样式和部分功能

    设置宽度:

    $sheet->setWidth(array( 'A' => 16,'B' => 64));

    设置高度:

    $sheet->setHeight(array(
        ($i * 20 + 1) => 40,//设置每行的高度
        ($i * 20 + 2) => 40,

    ));

    设置单元格字体样式:

    $sheet->cells('A1 :A20'), function ($cells) {

    $cells->setFontSize(16);//字体大小

    $cells->setFontFamily('simsun');//字体样式

    $cells->setValignment('center');//字体垂直居中

    $cells->setAlignment('center');//字体水平居中

    $cells->setBorder('none','thin', 'none', 'thin');//设置表格边框

    });

    设置打印时页面边距

    $sheet->setPageMargin(array(

        0.8, 0, 0, 0.4));

    打印导出图片到文档

    $card_id= $cover [3][1] ;//获取到图片数据

    $img = DB::select( );//查询图片名

    $src = $img[0]->photopath;

    if (@getimagesize(storage_path() . '/photo/' . $src) == null) {
        $src = 'error.jpg';

    }//判断是否存在图片,不存在则返回错误图片名称

    if (sizeof($img) > 0) {
        /*实例化插入图片类*/
        $objDrawing = new PHPExcel_Worksheet_Drawing();
        /*设置图片路径 切记:只能是本地图片*/
        $objDrawing->setPath(storage_path(). '/photo/' . $src);
        /*设置图片高度*/
        $objDrawing->setHeight(120);
        $objDrawing->setWidth(120);
        /*设置图片要插入的单元格*/
        $objDrawing->setCoordinates('I2');
        $objDrawing->setWorksheet($sheet);

    }

    设置分页打印区域

    $print_area= '';

    $print_area= $print_area . 'A' . ($i * 23 + 1) . ':I' . ($i * 23 + 22) . ',';//循环生成需打印的内容'A1:B2,A3:B4,'

    $print_area= substr($print_area,0,strlen($print_area)-1);//以字符串形式传入打印区域

    $sheet->setPrintArea($print_area);

    合并单元格

    $sheet->mergeCells('A1:B2');

  • 相关阅读:
    剑指 Offer 18. 删除链表的节点
    剑指 Offer 15. 二进制中1的个数
    剑指 Offer 11. 旋转数组的最小数字
    剑指 Offer 56
    剑指 Offer 10- II. 青蛙跳台阶问题
    剑指 Offer 10- I. 斐波那契数列
    剑指 Offer 09. 用两个栈实现队列
    剑指 Offer 06. 从尾到头打印链表
    C++ 异常机制
    读《大数据——互联网大规模数据挖掘与分布式处理》
  • 原文地址:https://www.cnblogs.com/grimm/p/9208511.html
Copyright © 2011-2022 走看看