Excel 输出符合条件的所有数据

2023-11-17 18:26:26 浏览数 (1)

代码语言:javascript复制
<?php
/*
 * @Author: Qicloud
 * @Title:ExcelApi
 * @Project:输出符合条件的所有数据
 * @Date: 2021-03-02 01:55:42
 * @QQ: 66547997
 * @LastEditTime: 2021-03-02 22:12:21
 * @我们终归落俗,但浪漫不死
 */
set_time_limit(0);
error_reporting(0);
//引入PHPExcel类
require_once dirname(__FILE__) . '/PHPExcel/PHPExcel.php';
require_once dirname(__FILE__) . '/PHPExcel/PHPExcel/IOFactory.php';

/**
 * 获取符合字段和字段值的数组集合
 * @param array $data 待过滤数组
 * @param string $field 要查找的字段
 * @param $value 要查找的字段值
 * @return array 返回所有符合要求的数组集合
 */
function arrayFilterFieldValue(array $data, string $field, $value)
{
    $data = array_filter($data, function ($row) use ($field, $value) {
        if (isset($row[$field])) {
            return $row[$field] == $value;
        }
    });
    return $data;
}
/**
 * @param Json信息输出
 * @array $arr 需要转换的数组
 */
function json($arr = array(), $code = JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
{
    header("Content-Type:text/json");
    header("Access-Control-Allow-Origin: *");
    exit(json_encode($arr, $code));
}
/**
 *  获取GET POST表单数据
 */
function GetData($key = "")
{
    if (empty($key)) {
        return $_REQUEST;
    }
    if (isset($_REQUEST[$key])) {
        return $_REQUEST[$key];
    } else {
        return null;
    }
}

$path = "./ID.xlsx"; //指定excel文件
$fileType = PHPExcel_IOFactory::identify($path); //$fileType指定的文件
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($path);
$currentSheet = $objPHPExcel->getSheet(0);

$allColumn = $currentSheet->getHighestColumn(); //获取表格列数
$allRow = $currentSheet->getHighestRow(); //取得总行数

for ($currentRow = 1; $currentRow <= $allRow; $currentRow  ) {
    //从哪列开始,A表示第一列
    for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn  ) {
        //数据坐标
        $address = $currentColumn . $currentRow;
        //读取到的数据,保存到数组$data中
        $data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
    }
}

$info = GetData('data');
if (!empty($data)) {
    $data = arrayFilterFieldValue($data, 'D', $info);//输出D列符合条件的数据
    json($data);
} else {
    json(['code' => 404, 'msg' => '未查询到该学生信息']);
}

代码记录,希望有大佬路过给予指正

2020/03/03 01:50 老板又找来了 重置数组索引

代码语言:javascript复制
/**
 *  多维数组重置索引
 */
function reform_keys($array){
    if(!is_array($array)){
        return $array;
    }
    $keys = implode('', array_keys($array));
    if(is_numeric($keys)){
        $array = array_values($array);
    }
    $array = array_map('reform_keys', $array);   
    return $array;
};

完活了。。。。

0 人点赞