好友
阅读权限10
听众
最后登录1970-1-1
|
按自己的理解,写了个DEMO,读取就是楼主提供的那个excel文件,希望符合需求,使用原生PHP7,代码如下:
需安装的包:composer install phpoffice/phpexcel
<?php
require 'vendor/autoload.php';
ini_set('display_errors', '0');
//创建excel读对象
$reader = PHPExcel_IOFactory::createReader('Excel5');
//得到excel操作对象
$excel = PHPExcel_IOFactory::load('./code.xls');
//初始化数组
$data = array();
//获取所有工作表名
$SheetNamas = $excel->getSheetNames();
//遍历工作表
for($i = 0; $i < 1; $i++){
//获取当前工作表名
$SheetName = $SheetNamas[$i];
//根据表名切换当前工作表
$excel->setActiveSheetIndexByName($SheetName);
//得到当前工作表对象
$curSheet = $excel->getActiveSheet();
//获取当前工作表最大行数
$rows = $curSheet->getHighestRow();
//获取当前工作表最大列数,返回的是最大的列名,如:B
$cols = $curSheet->getHighestColumn();
for($k = 2; $k <= $rows; $k++){
$value = $curSheet->getCell('A'.$k)->getValue();
$value = substr($value, strpos($value, '.')+1);
$value = str_replace("\t", '', $value);
if(strpos($value, '、') !== false) {
$value = substr($value, strpos($value, '、'));
$value = str_replace('、', '', $value);
}
$data[$value]['name'] = $value; // 存专业名
$value2 = $curSheet->getCell('B'.$k)->getValue();
$data[$value]['num'] = $value2; // 存剩余名额
}
}
echo json_encode($data);
运行输出:
{
"国际经济与贸易":{"name":"国际经济与贸易","num":4},
"行政管理":{"name":"行政管理","num":5},
"人力资源管理":{"name":"人力资源管理","num":4},
"会计学":{"name":"会计学","num":2},
"金融学":{"name":"金融学","num":5},
"商务英语":{"name":"商务英语","num":3},
"工商管理":{"name":"工商管理","num":4},
"学前教育":{"name":"学前教育","num":6},
"教育学":{"name":"教育学","num":5},
"汉语言文学":{"name":"汉语言文学","num":3},
"工程造价":{"name":"工程造价","num":4},
"电子商务":{"name":"电子商务","num":2},
"计算机科学与技术":{"name":"计算机科学与技术","num":5},
"广告学":{"name":"广告学","num":3},
"视觉传达设计":{"name":"视觉传达设计","num":4},
"环境设计":{"name":"环境设计","num":6},
"数字媒体艺术":{"name":"数字媒体艺术","num":5},
"机械制造及自动化":{"name":"机械制造及自动化","num":3}
}
使用:
1)列表那直接使用这个返回值即可
2)查某个某个项的值时,可用如: $data['商务英语'] 的形式,即可获得详情 |
免费评分
-
查看全部评分
|