/**
* 导入Excel功能
*/
public function import(){
if (!empty($_FILES)) {
$file = request()->file('import');
$info = $file->rule('uniqid')->move(ROOT_PATH . 'public' . DS . 'suffix'); if($info){
$file_name = './public/suffix/'.$info->getFilename();
}else{
// 上传失败获取错误信息
echo $file->getError();
} Vendor('PHPExcel.PHPExcel');
Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
// 读取Excel文件内容
$PHPReader = new \PHPExcel_Reader_Excel2007();
$PHPExcel = $PHPReader->load($file_name);
$currentSheet = $PHPExcel->getSheet(0); //读取excel文件中的第一个工作表
$allColumn = $currentSheet->getHighestColumn(); //取得最大的列号
$allRow = $currentSheet->getHighestRow(); //取得一共有多少行
$arr = array(); //声明数组
/**从第二行开始输出,因为excel表中第一行为列名*/
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){ /**从第A列开始输出*/
for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
//这部分注释不要,取出的数据不便于我们处理
// $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
// if($val!=''){
// $erp_orders_id[] = $val;
// }
//数据坐标
$address = $currentColumn . $currentRow;
//读取到的数据,保存到数组$data中
$data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
//echo iconv('utf-8','gb2312', $val)."\t";
}
}
foreach ($data as $k => $v) {
$where = ['suffix'=>$v['A']];
$num = Db('suffix')->where($where)->value('id');
if(!$num){
$arr['suffix'] = $v['A'];
$arr['companyname'] = $v['B'];
$num = Db('suffix')->insert(['suffix'=>$arr['suffix'],'companyname'=>$arr['companyname'],'creat_time'=>date('y-m-d h:i:s')]);
if($num < 0){
return $this->error('导入数据库失败');
}
}
} return $this->success('导入成功'); } }

  以上是TP5  导入

百度搜索下载PHPExcel类库,放到vendor文件夹里面

/**
* 导入Excel功能
*/
public function import(){
if (!empty($_FILES)) {
$con = array(
'exts' => array('xls','xlsx'),
'rootPath' => './'.C("UPLOADPATH"),
'maxSize' => 3145728,
'savePath' => '',
'subName' => '',
'autoSub' => false
);
$upload = new \Think\Upload($con);// 实例化上传类
// 上传文件
$info = $upload->upload();
if (!$info) {
$this->error();
}
vendor("excel.PHPExcel");
$file_name=C("UPLOADPATH").$info['file']['savename']; // 读取Excel文件内容
$PHPReader = new \PHPExcel_Reader_Excel2007();
$PHPExcel = $PHPReader->load($file_name);
$currentSheet = $PHPExcel->getSheet(0); //读取excel文件中的第一个工作表
$allColumn = $currentSheet->getHighestColumn(); //取得最大的列号
$allRow = $currentSheet->getHighestRow(); //取得一共有多少行
$arr = array(); //声明数组
$newuser = D("users");
/**从第二行开始输出,因为excel表中第一行为列名*/
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){ /**从第A列开始输出*/
for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
//这部分注释不要,取出的数据不便于我们处理
// $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
// if($val!=''){
// $erp_orders_id[] = $val;
// }
//数据坐标
$address = $currentColumn . $currentRow;
//读取到的数据,保存到数组$data中
$data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
//echo iconv('utf-8','gb2312', $val)."\t";
}
}
foreach ($data as $k => $v) {
$arr['user_nicename'] = $v['B'];//昵称
$arr['erpid'] = $v['C'];//ERP账号
$arr['company'] = $v['D'];//单位
$arr['caac'] = $v['E'];//证件号
$arr['workage'] = $v['F'];//司龄
$arr['education'] = $v['G'];//学历
$arr['degree'] = $v['H'];//学位
$arr['school'] = $v['I'];//院校
$arr['major'] = $v['J'];//专业
$arr['postname'] = $v['K'];//岗位名称
$arr['certificate'] = $v['L'];//企业资格认证
$arr['social'] = $v['M'];//社会资格认证
$arr['user_login'] = $v['N'];//账号
$arr['user_pass'] = sp_password($v['O']);//密码
$arr['mobile'] = $v['P'];//手机号 //确认是更新还是新增
$where = ['user_login'=>$arr['erpid']];
$return = $newuser->where($where)->getField('id');
// dump($return);exit;
if($return>0){
// dump(32132123);exit;
$where1 = ['id'=>$return];
$num = $newuser->where($where1)->save($arr);
}else{
$num = $newuser->add($arr);
}
if($num < 0){
return $this->error('导入数据库失败');
}
} return $this->success('导入成功'); } }

  写的不对  请一定告知我

tp5 Excel导入的更多相关文章

  1. TP5.0 excel 导入导出

    引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo 再将Excel.class放到ThinkPHP\Library\Org\clas ...

  2. tp5 (layui )excel导入

    1.composer安装PHPExcel 下载安装composer 其次 cmd切换到项目根目录 运行命令:composer require phpoffice/phpexcel 注意: 1.运行可能 ...

  3. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

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

    做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...

  6. (转)高效的将excel导入sqlserver中

    大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了.很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClie ...

  7. 安全的将excel导入sqlite3的解决方案

    最近在做一个小项目时,需要把一个excel中的数据保存到sqlite3数据库中以备后用,表中有字符也有数字,要用到特定的数据类型方便后续使用,参照网上的方法,将excel文件转换为csv文件后,在导入 ...

  8. 利用反射实现通用的excel导入导出

    如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...

  9. C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法

    C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法 使用C#导入 Excel数据到 DataTable,如果连接串中只写 Excel 8.0,则正常的字符列,数值列都没有问题,但 ...

随机推荐

  1. 在python中使用正则表达式

    一.转义符 1.在python中的转义符 (1)\\n与\n的区别 (2)r"\next" 通过r来进行转义 (3)"\\\\d"与"\\d" ...

  2. sqlserver group by后获取其他字段(多种方法)

    大家都知道用group by的话,select 后面指定的字段必须与group by后面的一致.group by 只有个别字段,如果拿出其他未分组的字段信息呢?在网上搜了下, 总结如下: 使用了gro ...

  3. Docker Compose 配置文件常用指令

    Docker Compose 配置文件常用指令 YAML文件格式及编写注意事项 YAML是一种标记语言很直观的数据序列化格式,可读性高.类似于XML数据描述语言,语法比XML简单的很多. YAML数据 ...

  4. Python 简单soket例子

      简单的soket例子 Python 2.0 客户端服务端传输 1.可发字符串,可发字节 bys类型 Python 3.0 客户端服务端传输 1.只能发bys,比特流的类型. 2.bys类型只能接收 ...

  5. Python Redis 常用操作

    delete(*names) # 根据删除redis中的任意数据类型 exists(name) # 检测redis的name是否存在 keys(pattern='*') # 根据模型获取redis的n ...

  6. 【题解】Luogu SP1435 PT07X - Vertex Cover

    原题传送门 求树的最小点覆盖,就是一个树形dp 类似于没有上司的舞会 dp的状态为\(f[i][0/1]\),表示i节点是否选择 边界是\(f[x][0]=0\),\(f[x][1]=1\) 转移方程 ...

  7. vue中使用cookies和crypto-js实现记住密码和加密

    前端加密 使用crypto-js加解密 第一步,安装 npm install crypto-js 第二步,在你需要的vue组件内import import CryptoJS from "cr ...

  8. spring mvc 的上传图片是怎么实现的?

    spring mvc 的上传图片是怎么实现的? 导入jar包,commons-io.jar 及 commons-fileupload.jar 在springmvc的配置文件中配置Mutipart解析器 ...

  9. CSS【06】:CSS显示模式

    div和Span标签 作用:一般用于配合css完成网页的基本布局 <style> .header{ width: 980px; height: 100px; background: red ...

  10. 解决Intellij IDEA中console窗口中文乱码的问题

    配置完tomcat之后,测试运行时,中文是乱码,如下图(自己忘截图了,图源网络,看水印) 网上其他的修改方法我就不说了,至少我试了一个都没用. 下面两个方法也是网上的,在此总结一下: 1.在idea. ...