首页 > 编程语言 >php 导出excel表格

php 导出excel表格

时间:2024-01-31 13:33:43浏览次数:35  
标签:objPHPExcel 表格 excel field php data col row

<?php

namespace app\common\services;

class OfficeExportService
{
    /**
     * 导出excel csv格式
     * 建议使用,导出数据量大的时候csv格式会快很多!!!!!
     * @param string $filename 文件名
     * @param array $tileArray 表头标题列表 格式一维数组 [标题1,标题2,标题3,标题n]
     * @param array $dataArray 数据列表数组 格式二维数组 [[1,2,3,n],[1,2,3,n]]
     */
    public function export_to_excel($filename='file', $tileArray=[], $dataArray=[]){
        header('Access-Control-Allow-Origin: *');
        ini_set('memory_limit','512M');
        ini_set('max_execution_time',0);
        ob_end_clean();
        ob_start();
        header("Content-Type: text/csv");
        header("Content-Disposition:filename=".$filename);
        $fp=fopen('php://output','w');
        fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码 防止乱码(比如微信昵称(乱七八糟的))
        fputcsv($fp,$tileArray);
        $index = 0;
        foreach ($dataArray as $item) {
            if($index==1000){
                $index=0;
                ob_flush();
                flush();
            }
            $index++;
            fputcsv($fp,$item);
        }

        ob_flush();
        flush();
        ob_end_clean();
    }

    /**
     * 导出excel xls格式
     * $get_data 要导出的数据
     * $excel_name 文件名
     * $column_arr 头标题,excel第一行的文字标题
     * $auto_warp 自动换行的列
     */
    public function export_data($get_data,$excel_name,$column_arr,$auto_warp = []){
        header('Access-Control-Allow-Origin: *');
        $objPHPExcel = new \PHPExcel();
        $objPHPExcel->getProperties()->setTitle("export")->setDescription("none");

        $col = 0;

        foreach ($column_arr as $field){
            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $field);
            $col++;
        }
        // Fetching the table data
        $row = 2;
        foreach($get_data as $data){
            $col = 0;
            foreach ($data as $key => $field){
                //$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row,$field);
                $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$row,$field);
                $col++;
            }
            $row++;
        }
        //添加单元格内换行 $auto_warp数组里存允许自动换行的字母列
        if ($auto_warp) {
            for ($i = count($get_data) + 1; $i > 1; $i--) {
                foreach ($auto_warp as $value) {
                    $objPHPExcel->getActiveSheet()->getStyle($value . $i)->getAlignment()->setWrapText(true);
                }
            }
        }
        ob_end_clean();
        $objPHPExcel->setActiveSheetIndex(0);
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        //发送标题强制用户下载文件
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$excel_name.'.xls"');
        header('Cache-Control: max-age=0');
        $objWriter->save('php://output');
    }


}

 

导出excel需要安装对应的扩展:

composer require phpoffice/phpexcel

 

标签:objPHPExcel,表格,excel,field,php,data,col,row
From: https://www.cnblogs.com/ccdr/p/17999078

相关文章

  • [office] excel表格如何设置公式锁定
    Excel中的公式具体该如何操作才能实现锁定呢?对于新手来说还是有一定难度,怎么办?接下来是小编为大家带来的excel表格公式锁定的方法,欢迎大家来到学习。excel表格公式设置锁定的方法锁定公式步骤1:小编以目前在使用的表格为例,为大家演示。Ctrl+A选定全部单元格,点击右键–......
  • [office] Excel旋转图表的两种方法介绍
    Excel的图表本身是不可以旋转放置的,那么怎么可以通过其他方式来实现对图表的旋转呢?下面我向大家介绍二种方法。步骤一:把图表复制为静态图片1、按“shift”键,单击图表区,然后执行“编辑——复制图片”命令,弹出“复制图片”对话框,然后按确定。2、在一个空白的单元格处,点鼠标右键,然后粘......
  • [office] Excel的if函数应用小盘点
    今天跟大家分享下if函数的用法IF函数可以单条件、多条件、嵌套条件或是搭配其他函数一起使用。首先介绍一下IF函数的基本语法IF函数语法如下:if(条件判断,返回值1,返回值2),如条件判断结果为真,则输出返回值1,否则输出返回值2。返回值可以是固定的数值、字符,也可以是空值或计算表达式。......
  • 【工具】全自动实时更换代理,PHP火车头/高铁插件
    作为一个网站运维/编辑人员,你是否一直在使用火车头/高铁效率提升工具?你是否会遇到以下这些情况:①目标网站限制UA(User-Agent);②目标网站判断来访(Referer);③目标网站判断cookie;④目标网站限制单个IP高频次请求;以上情况都是常见的网站内容防护手法,网站运维/编辑人员在借助火......
  • SpringBoot自定义注解+反射实现 excel 导入的数据组装及字段校验
    本次给大家带来的SpringBoot中通过自定义注解+反射实现excel导入数据组装及字段校验的实现方式。这种实现方式其实是很普通、常规的方法,但很多同学在开发过程中,可能却不太容易想到他。当然我也是众多同学中的一员。1背景在前段时间的开发工作中,接手了一个很简单,很普通的开发任务。......
  • Ali Cloud Linux3 : Installing ImageMagick for PHP 7.4
    Step1:Ifnotalreadyinstalled,installthephp-develandgccpackages.$sudoyuminstallphp-develgccTocheckifthepackagesareinstalled,usethefollowingcommands.Ifeithercommandreturnsanemptyresult(orbothdo),you’llneedtoinstallth......
  • [office] excel2003文件转成pdf文件的方法
    Excel中经常需要转换成PDF文件格式,Excel具体该如何转换成PDF呢?接下来是小编为大家带来的excel2003文件转成pdf文件的方法,供大家参考。excel2003文件转成pdf文件的方法:Excel转换PDF格式步骤1:下载安装pdf虚拟打印机Excel转换PDF格式步骤2:文件】【打印】,打印机选择pd......
  • php 计算两个坐标点的直线距离
    //传进去两个坐标点的经纬度,返回直线距离functiongetDistance(float$ulon,float$ulat,float$slon,float$slat):float{//地球半径$R=6378137;//将角度转为狐度$radLat1=deg2rad($ulat);$radLat2=deg2rad($sla......
  • 今年接到一个根据excel来更新数据库的需求,用php写个小脚本
    需求大概内容是,excel中有些条目需要删除、有些需要新增,就需要基于这份excel生成删、增的SQL。要求是这样的:蓝色要删除的,黄色是要新增的,白色和灰色的不用管。我第一时间就在想:还得识别单元格颜色?excel长这样: 这种小需求用php来处理就很方便,用的框架是yii。发现读取到的只......
  • PHP的json问题
    在PHP中使用json是很简单的事情,直接使用json_encode,json_decode函数处理就好绝大部分情况下直接使用是没有任何问题的,今天就分享下json在PHP中一些有意思的操作中文不转义使用json_encode的数据中含有中文时,如果什么参数都不传,生成的json字符串中文会变成UNICODE编码,直接看js......