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);
    }
}
相关文章
|
16天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
71 5
|
10天前
|
SQL 数据可视化 数据挖掘
想让Excel表格设计更美观?试试这几款好用工具!
Excel表格设计在项目管理和数据分析中至关重要。本文推荐四款辅助工具:板栗看板、Excel自动图表助手、Think-Cell Chart 和 Power BI,分别在任务管理、图表生成、数据可视化等方面表现突出,帮助你设计出更专业、美观的表格。
27 2
|
23天前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
2月前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
1月前
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
127 0
|
1月前
|
Java Apache
Apache POI java对excel表格进行操作(读、写) 有代码!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
35 0
|
3月前
|
人工智能 BI
用ChatGPT做excel表格真香!只需动嘴提要求和复制粘贴
用ChatGPT做excel表格真香!只需动嘴提要求和复制粘贴
|
4月前
|
数据可视化 数据管理 定位技术
如何将QGIS中的属性表与Excel表格关联?
作为UE开发人员,经常会使用到QGIS进行数据管理编辑。QGIS与Excel之间数据并不完全兼容,而UE开发过程中大部分的前期数据都储存在Eecel里。为了将Excel数据写入QGIS属性表实现数据可视化,我们内部总结了一个最快捷的方法
|
3月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md