php导入Excel表格接口

简介: php导入Excel表格接口

首先下载:PHPExcel.php

https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8

<?php
namespace app\api\controller;
use app\common\controller\Api;
use think\Db;
/*导入接口*/
class Import extends Api
{
    public function index(){
        /*引入PHPExcel插件*/
        require_once(VENDOR_PATH .'/phpExcel/PHPExcel-1.8/PHPExcel-1.8/Classes/PHPExcel.php');
        /**加载excel文件*/
        $file_name = request()->file('file');
        if(empty($file_name)){
            $this->error('请求失败,未识别到文件');
        }
        $info = $file_name->validate(['size'=>1567800,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');
      $exclePath = $info->getSaveName();  //获取文件名  
        $filename = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;   /**上传文件的地址*/  
        $objPHPExcel = \PHPExcel_IOFactory::load($filename,$encode='utf-8');    
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow(); /**取得总行数*/
        $highestColumn = $sheet->getHighestColumn(); /**取得总列数*/
        $arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); 
         /**一次读取一列*/  
        $res_arr = array();  
        for ($row = 2; $row <= $highestRow; $row++) {  
            $row_arr = array();
            for ($column = 0; $arr[$column] != 'H'; $column++) {  
                $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();  
                $row_arr[] = $val;  
            }  
            $res_arr[] = $row_arr;
        } 
        foreach($res_arr as $k=>$v) {
            // $data[$k]['birthday'] = date('Y-m-d',strtotime(strlen($v[3])==15 ?('19'. substr($v[3],6,6)):substr($v[3],6,8)));  /**生日*/
            // $data[$k]['birthday'] = trim($v[1]);
      $data[$k]['address'] = trim($v[1]);   /**籍贯*/
      $data[$k]['record'] = trim($v[2]);    /**学历*/
      $data[$k]['gradeid'] = trim($v[3]);   /**岗位档级*/
      $data[$k]['base_pay'] = trim($v[4]);  /**档级工资*/
      $data[$k]['name'] = trim($v[5]);      /**名称*/
      $data[$k]['tel'] = trim($v[6]);       /**手机号*/
//      if(!empty($money)){
//          $data[$k]['gradeid'] = $v[6];     /**岗位档级*/
//          $data[$k]['base_pay'] = $money;   /**岗位档级*/
//      }
        }
        /**开启事务*/
        Db::startTrans();
        $catch = [];
        $ok = 0;
        $error = 0;
        foreach ($data as $key=>$value){
            try {
                $success = db('staffs')->insert($value); /**插入数据*/
                if (!empty($success)) {
                    Db::commit();
                    $ok++;
                }else{
                    $error++;
                    $catch[] = ['name'=>$value['name'],'tel'=>$value['tel']];
                }
            } catch (\Exception $e) {
                $catch[] = ['name'=>$value['name'],'tel'=>$value['tel']];
                Db::rollback();
                $error++;
            }
        }
        $total = count($res_arr);
        $this->success("总{$total}条,成功{$ok}条,失败{$error}条。",$catch);
    }
}
相关文章
|
7天前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
7天前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
3月前
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
176 0
|
2月前
|
人工智能 BI
用ChatGPT做excel表格真香!只需动嘴提要求和复制粘贴
用ChatGPT做excel表格真香!只需动嘴提要求和复制粘贴
|
3月前
|
数据可视化 数据管理 定位技术
如何将QGIS中的属性表与Excel表格关联?
作为UE开发人员,经常会使用到QGIS进行数据管理编辑。QGIS与Excel之间数据并不完全兼容,而UE开发过程中大部分的前期数据都储存在Eecel里。为了将Excel数据写入QGIS属性表实现数据可视化,我们内部总结了一个最快捷的方法
|
2月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
2月前
|
网络协议 API PHP
PhalApi:在宝塔一键安装部署PHP开源接口框架的教程
要在宝塔面板上一键安装部署PhalApi开源接口框架,首先进入宝塔软件商店,切换到“一键部署”选项,搜索“phalapi”并点击“一键部署”。安装时需填写接口域名、数据库名及密码,提交后等待安装完成。安装成功后可在宝塔面板中查看新站点和源代码目录,并通过DNS解析设置访问接口域名,如`http://myapi.phalapi.net/`。默认开启的调试模式便于测试,可通过修改`config/sys.php`中的`debug`值为`false`关闭。最后,在源代码中开发自己的PHP接口,PhalApi会自动生成在线接口文档,方便后续调用与维护。更多详细教程可参考官方文档。
|
2月前
Map——全国省市区EXCEL表格(包含code)
Map——全国省市区EXCEL表格(包含code)
41 0
|
3月前
|
存储 关系型数据库 MySQL
Excel 导入 sql3
【7月更文挑战第18天】
37 2
|
3月前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
91 2