PHP 导入excel到数据库(简易版)

这段代码展示了如何使用PHP的PHPExcel库将Excel文件中的数据导入到MySQL数据库中。通过读取Excel文件的不同列,将数据映射到相应的字段,并进行必要的数据转换,最后批量插入到数据库表格中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    /**
     * 导入excel到数据库
     * @param string $db 数据库表名
     * @param path string 文件名(路径)
     * @return boolean
     */
    function excelImport($db, $file) {
       //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.Writer.Excel5");
        import("Org.Util.PHPExcel.IOFactory.php");
        $PHPExcel = new \PHPExcel();
        
        $PHPReader = new \PHPExcel_Reader_Excel2007();
        if (!$PHPReader->canRead($file)) {
            $PHPReader = new \PHPExcel_Reader_Excel5();
            if (!$PHPReader->canRead($file)){
                return false;
            }
        }
        $E = $PHPReader->load($file);
        $cur = $E->getSheet(0);  // 读取excel第一个页
        $end = $cur->getHighestColumn(); // 获得最大的列数
        $line = $cur->getHighestRow(); // 获得最大总行数
        // 获取数据数组
        /* $info = array("title","transactiontype","money","datatime"); */   
        $info=array();
        for ($row = 2; $row <= $line; $row ++) {
            for ($column = 'A'; $column <= $end; $column ++) {                
                $val = $cur->getCellByColumnAndRow(ord($column) - 65, $row)->getValue();
                $info[$row][] = $val;
            }
         } 
         $list=array();
         $i=0;
         foreach ($info as $key){
             foreach ($key as $k1=>$value){
                 if($k1==0){
                     $k1="title";
                 }
                 if($k1==1){
                     $k1="transactiontype";
                 }
                 if($k1==2){
                     $k1="money";
                 }
                 if($k1==3){
                     $k1="datatime";
                 }
                 if($value=="收入"){
                     $value=1;
                 }
                 if($value=="支出"){
                     $value=2;
                 }
                     $value=str_replace("/","-",$value);
                    $list[$i][$k1]=$value;
             }
             echo "</br >";
             $i++;
         }
            $DB = M($db);
            $result = $DB->addAll($list);
        if ($result) {
            return true;
        }
        return false;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值