• PHPExcel数据导出到Excel文件


    /**
         * 数据导出到Excel文件
         *
         * @param object $data 要导出的数据内容
         * @param object $headArr 设置Excel的头名称
         * @param string $fileName 导出的文件名称
         * @param string $width 设置单元格的宽度
         *
         * @throws PHPExcel_Exception 异常控制
         * @throws PHPExcel_Reader_Exception 控制Excel加载时的异常
         * @throws PHPExcel_Writer_Exception 控制Excel写入时的异常
         * @return bool
         */
        public function outPutExcel($data, $headArr, $fileName, $width = '30')
        {
            //如果没有数据返回false
            if (empty($data) || !is_array($data)) {
                return false;
            }
            //设置今天日期以便给Excel文件命名
            $date = date("Y_m_d", time());
            $fileName .= "_{$date}.xlsx";
    
            //实例化PHPExcel对象
            $objPHPExcel = new PHPExcel();
    
            //设置表头
            $index = ord("A");
    
            $objActSheet = $objPHPExcel->getActiveSheet();
            //生成表头
            foreach ($headArr as $value) {
                $columnHeader = chr($index);
                $objPHPExcel->setActiveSheetIndex(0)->setCellValue($columnHeader . '1', $value);
                $objActSheet->getColumnDimension($columnHeader)->setWidth($width);
                $index += 1;
            }
    
            $columnData = 2;
            foreach ($data as $key => $rows) {
                $span = ord("A");
                foreach ($rows as $keyName => $value) {
                    // 列写入
                    $j = chr($span);
                    $objActSheet->setCellValue($j . $columnData, $value);
                    $span++;
                }
                $columnData++;
            }
    
            //编码转换
            $fileName = iconv("utf-8", "gbk", $fileName);
    
            //设置活动单指数到第一个表,所以Excel打开这是第一个表
            $objPHPExcel->setActiveSheetIndex(0);
    
            //将输出重定向到一个客户端web浏览器(Excel2007)
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header("Content-Disposition: attachment; filename="$fileName"");
            header('Cache-Control: max-age=0');
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
            $objWriter->save('php://output'); //文件通过浏览器下载
            return true;
        }
    

      

  • 相关阅读:
    linux上传文件到oss的方法
    centos6.5重装python
    nfs共享文件夹
    mysql报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    搭建网关服务器
    面试总结
    innerText兼容性问题
    Title Case
    Character frequency
    Least Common Multiple
  • 原文地址:https://www.cnblogs.com/yeshaoxiang/p/9210590.html
Copyright © 2020-2023  润新知