Excel 输出符合条件的所有数据
<?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 老板又找来了 重置数组索引
/**
* 多维数组重置索引
*/
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;
};
完活了。。。。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 七云's Blog!