tp5做的excel导入(用的PHPexcel类),有缺陷2007与2003只能二选一

public function excelInsert()
    {
        if($this->request->isPost())
        {
            $filestr = $this->request->param();

        Loader::import(‘PHPExcel‘,EXTEND_PATH);
        //Loader::import(‘PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory‘);
        Loader::import(‘PHPExcel.PHPExcel.IOFactory‘,EXTEND_PATH);
        Loader::import(‘PHPExcel.PHPExcel.Reader.Excel5‘,EXTEND_PATH);

       $file = request()->file(‘file‘);
            $info = $file->validate([‘size‘=>156780,‘ext‘=>‘xlsx,xls,csv‘])->move(ROOT_PATH . ‘public‘ . DS . ‘excel‘);
            if ($info)
            {
                //echo $info->getFilename();
                $exclePath = $info->getSaveName();  //获取文件名
                $file_name = ROOT_PATH . ‘public‘ . DS . ‘excel‘ . DS . $exclePath;
                $objReader =\PHPExcel_IOFactory::createReader(‘Excel2007‘);
                $obj_PHPExcel =$objReader->load($file_name, $encode = ‘utf-8‘);  //加载文件内容,编码utf-8
                $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式
                array_shift($excel_array);
                $data = [];
                foreach($excel_array as $k=>$v)
                {
                    $data[$k][‘price‘] = isset($v[16])==true ? $v[16] : ‘‘;
                    $data[$k][‘group‘] = isset($v[17])==true ? $v[17] : ‘‘;
                    $data[$k][‘flag‘] = isset($v[18])==true ? $v[18] : ‘‘;
                    $data[$k][‘status‘] = 1;

                }
                $rtn = Db::table(‘表‘)->insertAll($data); //批量插入数据
                if($rtn)
                {
                    $this->success(‘导入完成‘);
                }
            }
            else
            {
                echo $file->getError();
            }
        }
    }

类放在extend里

原文地址:https://www.cnblogs.com/zhangxiangdong/p/8794905.html

时间: 2024-11-09 13:54:29

tp5做的excel导入(用的PHPexcel类),有缺陷2007与2003只能二选一的相关文章

解析大型.NET ERP系统 设计通用Microsoft Excel导入功能

做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到数据库表中.然而一直是在做重复工作,写过不计其数的Excel导入程序,每次只是满足于问题解决,后来终于找到一个方法,实现通用的Excel数据导入. 设计通用的Excel导入功能,第一个实现要求是不能依赖Excel,客户的电脑或服务器很有可能没有安装Excel,所以微软的Office Interop一

C# 之 Excel 导入一列中既有汉字又有数字:数字可以正常导入,汉字导入为空

今天在做一个Excel导入功能,一切开发就绪,数据可以成功导入.导入后检查数据库发现有一列既有汉字又有数字,数字正常导入,汉字为空.但是前面同样既有汉字又有数字的列可以导入成功. 查看excel 源文件,如下图: 仔细观察两列略有不同,前两列的数字单元格左上角有个绿色三角形,选中单元格,左边有一个信息显示“ 次单元格中的数字为文本形式,或者前面有撇号. ”,也就是 “ 以文本形式存储的数字 ”. 然后尝试选中内容列,右键设置单元格格式为“ 文本 ”,修改后如下图: 再次导入仍然失败,单元格左上角

不依赖Excel是否安装的Excel导入导出类

本文利用第三方开源库NPOI实现Excel97-2003,Excel2007+的数据导入导出操作. 不依赖Office是否安装.NPOI开源项目地址:http://npoi.codeplex.com/. 库文件下载:http://npoi.codeplex.com/releases/view/115353 using System; using System.Collections; using System.Collections.Generic; using System.Data; usi

php利用PHPExcel类导出导入Excel用法

PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介绍了). 导出Excel用法 //设置环境变量(新增PHPExcel) 1 set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . 2 3 get_include_p

基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能

思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后,进行请求后端,读取数据,后端接口对应将附件数据读取出来,前端进行显示(ajax请求): 4.前端展示数据,用户对数据检测无误,点击保存(ajax请求后端保存代码的接口),当然也可以有选择性的选择某些数据记录进行保存,楼主这里做的是全部保存(后端处理接口,自动过滤重复数据): 5.拿到对应的所需有用数

TP5.0 excel 导入导出

引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo 再将Excel.class放到ThinkPHP\Library\Org\class下,自己建的文件夹class 控制器: <?php namespace Admin\Controller; use Think\Controller; class ExcelController extends Controller { public function excelList(){ $

基于PHPExcel库的EXCEL导入导出

PHPExcel类是php一个excel表格处理插件,最近由于工作需要用到了这个插件,完成了一个excel导入导入的功能.现在将主要逻辑整理一下和大家分享,有需要的可以参考一下. 下面的事例只是完成了一个excel的上传下载的基本功能,还有一些设置表格样式.合并单元格等操作没有体现在这里,大家可以参考PHPExcel的手册,事例后面是我摘出来的PHPExcel的常见的一些操作,供大家参考: 将PHPExcel提供的API根据需要封装成一个供上传和下载使用的类,其实就是两个函数,一个用于上传一个用

php开发中Excel导入功能的具体实现方法

对于在做php开发项目中,一般的项目设计到最多用到的是Excel的导出功能,而对于其导入功能一般是很少见的,而且对于php开发中Excel的导入功能也要比导出功能开发起来更困难一些,那么今天就来分享一下php开发中Excel导入功能的具体实现步骤: 1.首先将下载下来的PHP Excel插件代码放入项目/Thinkphp/Extend/Vendor/下; 2.在模板添加导入功能; html代码实现如下:<form action="{:U('Turntable/imports')}"

Excel导入导出的业务进化场景及组件化的设计方案(转)

1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候,再分享分享. 话说最近外面IT行情飞涨还咋的,人都飞哪去了呢,听说各地的军情都进入紧急状态了. 回归下正题,今天就抽点时间,写写技术文,和大伙分享一下近年在框架设计上的取的一些技术成果. 2:项目背景 在针对运营商(移动.联通.电信.铁塔)的信息类的系统中,由于相关的从业人员习惯于Excel的办公