吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 904|回复: 8
收起左侧

[经验求助] php查询源码求进一步修改

[复制链接]
钱途迷茫 发表于 2024-4-3 22:12
60吾爱币
之前帮忙改的一个源码,要求有了一些变动,请看下这个效果能实现吗
需要下拉直接显示专业,查询剩余名额,目前想要实现这种效果,只有一个专业创建一个excel文件,比较繁琐,可否把所有专业汇总在一个excel里,来实现同样的效果
家当所剩不多了,希望看得上,再帮帮忙
@qadan

最佳答案

查看完整内容

你看下,按照你给出的表格,下拉选择专业后,只输出了名额和专业名https://f.ws59.cn/f/dsk9h2yl47l 复制链接到浏览器打开

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qadan 发表于 2024-4-3 22:12
钱途迷茫 发表于 2024-4-4 10:32
https://wwp.lanzout.com/iyLhH1ttvtni

你看下,按照你给出的表格,下拉选择专业后,只输出了名额和专业名https://f.ws59.cn/f/dsk9h2yl47l 复制链接到浏览器打开
 楼主| 钱途迷茫 发表于 2024-4-3 22:13
qadan 发表于 2024-4-3 23:08
1,下拉选择专业,点击查询,跳转到图2,这样吗?
2,你把excel整理好打包上传出来
qadan 发表于 2024-4-4 00:11
可以了,把专业复制到一个xls里面;https://f.ws59.cn/f/dsbf5n832c1 复制链接到浏览器打开
 楼主| 钱途迷茫 发表于 2024-4-4 10:02
qadan 发表于 2024-4-4 00:11
可以了,把专业复制到一个xls里面;https://f.ws59.cn/f/dsbf5n832c1 复制链接到浏览器打开

还需要麻烦一下,不需要报读层次那一列,只需要专业和剩余名额两列内容就行了,我这边一删除层次就匹配不到数据了
 楼主| 钱途迷茫 发表于 2024-4-4 10:32
qadan 发表于 2024-4-4 00:11
可以了,把专业复制到一个xls里面;https://f.ws59.cn/f/dsbf5n832c1 复制链接到浏览器打开

https://wwp.lanzout.com/iyLhH1ttvtni
xdeals 发表于 2024-4-4 12:48
按自己的理解,写了个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['商务英语'] 的形式,即可获得详情

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
xsfh1978 + 2 + 1 谢谢@Thanks!

查看全部评分

xdeals 发表于 2024-4-4 12:57
补充下,关于表头的读取,上述代码,可以如下修改:
  for($k = 2; $k <= $rows; $k++){

将上述代码改为:
  $headNum = 1; //表头的行数
  for($k = 1 + $headNum ; $k <= $rows; $k++){
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 00:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表