tp5 (layui )excel导入
1.composer安装PHPExcel
下载安装composer
其次 cmd切换到项目根目录 运行命令:composer require phpoffice/phpexcel
注意:
1.运行可能会报错OpenSSL之类的 去php.ini中开启extension=php_openssl.dll扩展,去掉分号
2.还有可能出现 找不到匹配的包的错误,这是因为我本地用的phpstudy的nts版本,这个版本比较特殊同时支持apache和nginx,只是本地虚拟环境开发测试用的PHP版本,所以匹配不到,应该切换正常版本在运行命令安装
2.前端代码
<div class="layui-form-item" >
<label class="layui-form-label">导入专线</label>
<div class="layui-input-inline">
<div class="layui-upload">
<button type="button" name="myfile" class="layui-btn" id="myfile"><i class="layui-icon"></i>上传文件</button>
</div>
</div>
</div>
<script type="text/javascript">
layui.use(['form','upload'],function(){ var form=layui.form;
var upload=layui.upload; upload.render({ //允许上传的文件后缀
elem: '#myfile'
,url: "{:url('Logisticscompany/inserline')}"
,accept: 'file' //普通文件
,exts: 'xls|excel|xlsx' //只允许上传压缩文件
,done: function(res){
if(res.code==1){
layer.msg('上传成功,已解析数据',{icon:6});
location.href="{:url('Logisticscompany/lists')}";
}else{
layer.msg('解析失败',{icon:5});
}
}
}); form.on('submit(formsub)',function(data){
layer.msg('导入数据具体详情未协商确认,待确认后处理');
return false;
}) }) </script>
3.controller
/**
* excel导入网点
*/
public function insert(){
if(request() -> isPost())
{
vendor("PHPExcel.PHPExcel"); //方法一
$objPHPExcel =new \PHPExcel();
//获取表单上传文件
$file = request()->file('file');
$info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public'); //上传验证后缀名,以及上传之后移动的地址 E:\wamp\www\bick\public
if($info)
{
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'public' . DS . $exclePath;//上传文件的地址 $file_types = explode ( ".", $_FILES ['file'] ['name'] );
$file_type = $file_types [count ( $file_types ) - 1];
if($file_type=='xls'){
$objReader =\PHPExcel_IOFactory::createReader("Excel5");
}
else if($file_type=='xlsx'){
$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 = [];
$i=0;
foreach($excel_array as $k=>$v) {
$data[$k]['viewName'] = $v[0];
$data[$k]['cityId'] = $v[1];
$data[$k]['stationAddress'] = $v[2];
$data[$k]['linkMan'] = $v[3];
$data[$k]['linkPhone'] = $v[4];
$data[$k]['longitude'] = $v[5];
$data[$k]['latitude'] = $v[6];
$data[$k]['userId'] = $v[7];
$data[$k]['remark'] = $v[8];
$i++;
}
$re= Db::name("htt_freightstation")->insertAll($data);
if($re){
$msg=[
'code'=>1,
'msg'=>'已获取信息',
];
return json_encode($msg);
}
else{
$msg=[
'code'=>0,
'msg'=>'获取信息失败',
];
return json_encode($msg);
} }else
{
echo $file->getError();
}
}
return $this->fetch('lists');
}
tp5 (layui )excel导入的更多相关文章
- TP5.0 excel 导入导出
引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo 再将Excel.class放到ThinkPHP\Library\Org\clas ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- 解析大型.NET ERP系统 设计通用Microsoft Excel导入功能
做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...
- (转)高效的将excel导入sqlserver中
大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了.很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClie ...
- 安全的将excel导入sqlite3的解决方案
最近在做一个小项目时,需要把一个excel中的数据保存到sqlite3数据库中以备后用,表中有字符也有数字,要用到特定的数据类型方便后续使用,参照网上的方法,将excel文件转换为csv文件后,在导入 ...
- 利用反射实现通用的excel导入导出
如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...
- C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法
C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法 使用C#导入 Excel数据到 DataTable,如果连接串中只写 Excel 8.0,则正常的字符列,数值列都没有问题,但 ...
- Excel导入导出的业务进化场景及组件化的设计方案(上)
1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候 ...
随机推荐
- 开机出错提示 cpu fan speed error detected
问题:开机跳 cpu fan speed error detected 分析:提示是cpu fan speed 有问题进入 BIOS 设置了好几次仍不行 解决方法: 进入BIOS,BOOT选项卡,将 ...
- GitHub入门与实践 读书笔记二:Git的导入
1.诞生背景 Linux的创始人Linus Torvalds 在2005年开发了Git的原型程序,后随着众多开发者的共同努力,现在他已经被大量的程序员采用. 2.什么是版本管理 版本管理:管理软件在开 ...
- php优秀框架codeigniter学习系列——CI_Output类的学习
这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确 ...
- sql循环查询树形结构
pid:父类别id ' connect by prior pid = id --查询父祖类别 union ' connect by prior id = pid;--查询子孙类别 这样查询出选中id ...
- 3070 Fibonacci
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21048 Accepted: 14416 Descr ...
- 真机*Appium
一.真机连接电脑123 1.一般android手机的的USB调试模式在设置里的开发者选项中,找到开发者选项,打开USB调试 2.cmd命令→[adb devices]→回车,得到真机设备 可能存在问题 ...
- 24. dfs数的路径查找
输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径. 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. (注意: 在返回值的list中,数组长度大的数组 ...
- 阿里云centos7使用yum安装mysql的正确姿势
yum快速安装mysql 新增yum源 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 查看可用的 ...
- C++调用ffmpeg.exe提取视频帧
有时候,我们获得一段视频,需要将其中的每一帧都提取出来,来进行一些相关的处理,这时候我们就可以需要用到ffmpeg.exe来进行视频帧的提取. ffmpeg简介:FFmpeg是一套可以用来记录.转换数 ...
- Docker跨主机link
user case:一个app container向一个oracle container跨主机传输数据. 思路一:将oracle对外暴露端口,将hostA的IP添加入app上/ect/hosts上.这 ...