• php实现excel表格的转置


    不知道取这个标题合不合适,大概的需求是这样,辅导员给了我们一个这样的excel表格,

    在这个excel表格中,每行是一个学生的一门科目的记录,最终想做成,这样的效果,一个学生的所有科目占一行

    (已经做出来的是这个效果)

    于是,我想着使用php实现了这个功能

    ----------------------------------------------------------------------------------------------

    整体思路大概这样,先将excel表格导入mysql数据库,然后通过select选择出所有的数据,遍历,按要求筛选,

    构造期望的数据结构(数组),再插入到一个新的表。

     1 <?php
     2 namespace StudentController;  
     3 use ThinkController;
     4 use ThinkModel;
     5 
     6 class ZongceController extends Controller {
     7     public function index($name){    
     8         $info = M('aaaad')->where(array('D' => $name))->select();
     9         $Mark = D('aaaac');
    10 
    11         $number = $info[0]['C'];
    12         $class = $info[0]['I'];
    13         $arr = array(
    14             'A' => $name,
    15             'B' => $number,
    16             'C' => $class,
    17         );
    18         $sum = 0;
    19         $xuefen = 0;
    20 
    21         $lessen = $Mark->where(array('A' => '姓名'))->find();
    22         foreach ($info as $key => $value) {
    23             if(!empty($value['R']) || !empty($value['N']))
    24                 if($value['R'] === '专业选修课' || $value['R'] === '专业核心课')
    25                 {
    26                     $key = array_keys($lessen, $value['L']);
    27                     $arr[$key[0]] = $value['N'];
    28                     if (strlen($key[0]) === 1) {
    29                         $arr[chr(ord($key[0])+1)] = $value['M'];
    30                     } else {
    31                         $key1 = "A".chr(ord(substr($key[0], strlen($key[0])-1, 1))+1);
    32                         $arr[$key1] = $value['M'];
    33                     }
    34                     $sum += $value['N'] * $value['M']; //分数
    35                     $xuefen += $value['M']; //学分
    36                 }
    37         }
    38         $arr['zongfen'] = $sum;
    39         $arr['xuefen'] = $xuefen;
    40         $arr['jiaquan'] = $sum / $xuefen;
    41         p($arr);
    42         $Mark->add($arr);
    43     }
    44 
    45     public function api()
    46     {
    47         $info = M('aaaad');
    48         $name = $info->distinct(true)->field('D')->select();
    49         foreach ($name as $key => $value) {
    50             $this->index($value['D']);
    51         }
    52     }
    54 }
  • 相关阅读:
    IntelliJ IDEA 2017 反向代理工具新方法激活
    如何去掉idea里mybatis的.xml文件 sql 语句背景色
    eclipse、idea切换大小写的快捷键
    pageHelper没有分页效果的问题
    springboot使用thymeleaf 解析异常
    SpringBoot发送简单文本邮件
    IDEA中使用git详细步骤
    解决 git branch -a 无法全部显示远程的分支,只显示master分支
    git常用命令
    异常处理
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/6502325.html
Copyright © 2020-2023  润新知