TP5.0.22 使用PHPExcel插件导入和导出表格(网上找的,亲测可用)

1.下载并安装PHPExcel插件

从github下载PHPExcel插件,把Classes文件夹重命名为PHPExcel 并拷到TP5的vendor文件夹下。

2.使用PHPExcel导出表格
1)使用TP5的vendor()引入PHPExcel插件
        vendor('PHPExcel.PHPExcel');
        Vendor('phpexcel.PHPExcel.Worksheet.Drawing');
        Vendor('phpexcel.PHPExcel.Writer.Excel2007');
2)实例化并获取当前活动sheet页
$objExcel = new \PHPExcel();
        $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
        $objActSheet = $objExcel->getActiveSheet();
3)填充数据并输出表格
        $data = [
            0=>[
                'gap'=>'gap',
                'store_id'=>'store_id',
                'store_name'=>'store_name',
                'branch'=>'branch',
                'snum'=>'snum',
                'pay_ables'=>'pay_ables',
                'toatal'=>0,
                'storetrade_status'=>'storetrade_status'
            ],
            1=>[
                'gap'=>'gap111',
                'store_id'=>'store_id111',
                'store_name'=>'store_name11',
                'branch'=>'branch11',
                'snum'=>'snum11',
                'pay_ables'=>'pay_ables11',
                'toatal'=>111,
                'storetrade_status'=>'storetrade_status11'
            ]
        ];
        //填充表格信息
        foreach($data as $k=>$v){
            $k +=2;
            $objActSheet->setCellValue('A'.$k,$v['gap']);
            $objActSheet->setCellValue('B'.$k, $v['store_id']);
            // // 图片生成
            // $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
            // $objDrawing[$k]->setPath('public/static/admin/images/profile_small.jpg');
            // // 设置宽度高度
            // $objDrawing[$k]->setHeight(40);//照片高度
            // $objDrawing[$k]->setWidth(40); //照片宽度
            // /*设置图片要插入的单元格*/
            // $objDrawing[$k]->setCoordinates('C'.$k);
            // // 图片偏移距离
            // $objDrawing[$k]->setOffsetX(30);
            // $objDrawing[$k]->setOffsetY(12);
            // $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());
            // 表格内容
            $objActSheet->setCellValue('C'.$k, $v['store_name']);
            $objActSheet->setCellValue('D'.$k, $v['branch']);
            $objActSheet->setCellValue('E'.$k, $v['snum']);
            $objActSheet->setCellValue('F'.$k, $v['pay_ables']);
            $objActSheet->setCellValue('G'.$k, $v['toatal']);
            $objActSheet->setCellValue('H'.$k, $v['storetrade_status']);
            // 表格高度
            $objActSheet->getRowDimension($k)->setRowHeight(20);
        }
                $width = array(20,20,15,10,10,30,10,15);
        //设置表格的宽度
        $objActSheet->getColumnDimension('A')->setWidth($width[0]);
        $objActSheet->getColumnDimension('B')->setWidth($width[3]);
        $objActSheet->getColumnDimension('C')->setWidth($width[5]);
        $objActSheet->getColumnDimension('D')->setWidth($width[3]);
        $objActSheet->getColumnDimension('E')->setWidth($width[3]);
        $objActSheet->getColumnDimension('F')->setWidth($width[3]);
        $objActSheet->getColumnDimension('G')->setWidth($width[3]);
        $objActSheet->getColumnDimension('H')->setWidth($width[5]);


        $outfile = "商家交易结算".date("Y-m-d").".xls";
        ob_end_clean();
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="'.$outfile.'"');
        header("Content-Transfer-Encoding: binary");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $objWriter->save('php://output');
3.打开表格并读取数据
1)使用TP5的vendor()引入PHPExcel插件
        vendor('PHPExcel.PHPExcel');
        Vendor('phpexcel.PHPExcel.Worksheet.Drawing');
        Vendor('phpexcel.PHPExcel.Writer.Excel2007');
2)读取数据
        // 要打开的文件路径
        $filename = '2018.xls';
        $objReader = \PHPExcel_IOFactory::createReaderForFile($filename);
        $objPHPExcel = $objReader->load($filename);
        // 修改要读取的表格的sheet页
        // $objPHPExcel->setActiveSheetIndex(1);
        // 读取相应的单元格的数据
        $date = $objPHPExcel->getActiveSheet()->getCell('A1')->getValue();
        $date = date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
        dump($date);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值