<?php
namespace app\data\controller;use cmf\controller\AdminBaseController;
use think\Db;
use think\Loader;header("Content-type: text/html; charset=utf-8");
//订单数据导入导出类
class ExcelController extends AdminBaseController
{//导出excelpublic function export_excel(){Loader::import('Classes.PHPExcel');Loader::import('Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');$PHPExcel = new \PHPExcel();$PHPSheet = $PHPExcel->getActiveSheet();$letter = array('A','B','C','D');//表头数组$tableheader = array('MAC地址','手机品牌','采集地址','采集时间');//填充表头信息for($i = 0;$i < count($tableheader);$i++) {$PHPSheet->setCellValue("$letter[$i]1","$tableheader[$i]");}$where = array();//获取当前账号id()$id = $this->user_id;$datas = $this->request->param();$res = $this->validate($datas,"Index.search");if($res){$st_time = strtotime(input('st_time'));//下单开始时间$end_time = strtotime(input('end_time'));//下单结束时间$device_name = input('device_name');//设备名称$wifi_name = input('wifi_name'); //wifi名称$brand_name = input("brand_name");//手机品牌名称$unknow   = $datas['unknow'] ?? '1';     //品牌是否为未知数据//            dump($device_info);$this->assign(array('st_time' => input('st_time'),'end_time' => input('end_time'),'device_name' => $device_name,'wifi_name' => $wifi_name,'brand_name' => $brand_name,'unknow'  => $unknow,));//时间查询// //-------------------------------------if($st_time && !$end_time){//在xx时间后$where['createtime'] = array('egt',$st_time);}elseif($end_time && !$st_time){//在xx时间前$where['createtime'] = array('elt',$end_time);}elseif($end_time && $st_time){//在xx-yy时间段if($st_time>$end_time){$this->error("开始时间不能大于结束时间",url("data/index/index"));}else{$ends_time=strtotime('+1 day',$end_time);$where['createtime'] = array('between',array($st_time,$ends_time));}}// //-------------------------------//设备名称if(!empty($device_name)){$where['u_id'] = array('=',$device_name);}//wifi名称if(!empty($wifi_name)){$where['wifi_name'] = array('like',"%$wifi_name%");}//手机品牌名称if(!empty($brand_name)){$where['phone_brand'] = array('like',"%$brand_name%");}//unknow数据表if($unknow != 1){$unkn = '_unknow';}else{$unkn = '';}}else{$this->error($res);}
//        //判断权限;if($id != '1'){//不是管理员  只能获取自己的数据$where['user_id'] = array('=',$id);}//查询数据集//------------------------------------//分表规则 : user_id的尾数与表名数字一致$table = 'mac_data.cmf_mac_data_'.substr($this->user_id,-1).$unkn;$data = Db::table($table)->where($where)->where('delete_time','null')->order('createtime desc')->field('mac_info,phone_brand,addr,FROM_UNIXTIME(createtime,"%Y-%m-%d %H:%i:%S")as time')->select();//填充表格信息$count=count($data)+1;for ($i = 2;$i <= $count;$i++) {//i=行数    j=排数$j = 0;foreach ($data[$i - 2] as $key=>$value) {//$i=2 是因为数据从第二排开始$PHPSheet->setCellValue("$letter[$j]$i","$value");$j++;}}$PHPSheet->setTitle("data"); //给当前活动sheet设置名称$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");header('Content-Disposition: attachment;filename="导出数据.xlsx"');header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');$PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件}//导入界面public function addexcel(){return $this->fetch('index/addexcel');}//导入excelpublic function inserExcel(){Loader::import('Classes.PHPExcel');Loader::import('Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');Loader::import('Classes.PHPExcel.Reader.Excel7');//获取表单上传文件$file = request()->file('file');if(empty($file)){$this->error('未检测到上传文件!');}$info = $file->validate(['size'=>2097152,'ext'=>'csv'])->move(ROOT_PATH . 'public' . DS . 'upload/excel');if(!$info){$this->error($file->getError());}//施展终极空间忍术·移动文件$exclePath = '/excel/'.$info->getSaveName();  //获取文件名$file_name = ROOT_PATH . 'public' . DS . 'upload' . DS . $exclePath;   //上传文件的地址$objReader =\PHPExcel_IOFactory::createReader('CSV')->setInputEncoding('GBK');$obj_PHPExcel =$objReader->load($file_name);  //加载文件内容,编码utf-8$excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式array_shift($excel_array);  //删除第一个数组(标题);$city = [];$num = 0;$table = 'mac_data.cmf_mac_phones';//处理内容$insert_data = array();foreach($excel_array as $k=>$v) {if($v[2] == null){continue; //过滤空数据}$are = explode(' ',$v[5]);$city = $are[1] ?? $are[0];$province = $are[0];$phone = explode(' ',$v[2]);if(count($phone)>1){foreach($phone as $val){$insert_data[] = array('name' => $v[1],'mobile' => $val,'area' => $v[4],'coord' => $v[8],'city' => $city,'search' => $v[6],'province' =>$province,);$num++;}}else{$insert_data[] = array('name' => $v[1],'mobile' => $v[2],'area' => $v[4],'coord' => $v[8],'city' => $city,'search' => $v[6],'province' =>$province,);$num++;}}//dump($insert_data);die;$zxc = Db::table($table)->fetchSql(true)->insertAll($insert_data,true);if(!$zxc){$this->error('导入失败');}trace($zxc);$this->success('共成功导入'.$num ."条数据!");}//导入模板public function demo(){$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "Mickey Mouse\n";fwrite($myfile, $txt);$txt = "Minnie Mouse\n";fwrite($myfile, $txt);fclose($myfile);die;Loader::import('Classes.PHPExcel');Loader::import('Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');$PHPExcel = new \PHPExcel();$PHPSheet = $PHPExcel->getActiveSheet();$letter = array('A','B','C','D');//表头数组$tableheader = array('订单编号','物流公司','物流单号','支持物流(顺丰速运,百世快递,中通快递,申通快递,圆通速递,韵达速递,邮政快递包裹,MS,天天快递,京东物流,优速快递,德邦快递,快捷快递,宅急送,TNT快递)');//填充表头信息for($i = 0;$i < count($tableheader);$i++) {$PHPSheet->setCellValue("$letter[$i]1","$tableheader[$i]");}$PHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);$PHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);$data = array('10000000000XXXX','圆通速递','XXXXXXXXXXX');$j = 0;foreach ($data as $value) {$PHPSheet->setCellValue("$letter[$j]2","$value");$j++;}$PHPSheet->setTitle("批量发货模板"); //给当前活动sheet设置名称$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");header('Content-Disposition: attachment;filename="demo.xlsx"');header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');$PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件}}

用phpexcel导入导出文件相关推荐

  1. ThinkPHP第二十三天(Category表结构、PHPExcel导入数据函数)

    1.category分类表表结构id,name,pid,sort,结合category.class.php类使用. 2.PHPExcel导入数据函数示例 function excel_to_mysql ...

  2. php 导入表格数据,PHPExcel 导入Excel数据的方法

    这篇文章主要介绍了关于PHPExcel 导入Excel数据的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 一:使用composer下载 phpoffice/phpexcel 或者 ...

  3. sas数据集怎么导出_SAS学习--导入导出文件、拼表、数据集筛选

    SAS学习--导入导出文件.拼表.数据集筛选 Tyrant •  2019年12月07日 •  sas •  765 • &nbsp0 本文最后修改于 389 天前,部分内容可能已经过时! 前 ...

  4. php excel导入数据库显示乱码,php修改excel表格数据库数据格式-使用phpexcel导入excel表格数据到MYSQL,乱码怎么解决...

    PHP 用PHPExcel往数据库导入大量数据 估计0是null,所以不显示了,可以换个思路,让他显示为字符串 $number = 0; echo ''.$number 原生PHP代码实现excel导 ...

  5. php导入excel文件时间,PHPExcel导入Excel文件并对其日期单元格处理的代码示例

    本篇文章给大家带来的内容是关于PHPExcel导入Excel文件并对其日期单元格处理的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. PHPExcel导入Excel文件,对E ...

  6. php excel导入数组,利用PHPExcel导入xlsx/xls,将xlsx、xls转换为数组

    项目的原因有时候我们需要把xls的文件数据导入到数据库,今天青岛星网先跟大家分享:利用PHPExcel导入xlsx/xls,将xlsx.xls转换为数组的思路方法. 利用PHPExcel导入xlsx/ ...

  7. PHPExcel表格的导出,PHP_XLSXWriter导出和PHPExcel导入

    前言:网站自带的一个PHPExcel导入功能,现在需要加一个导出. 问题:导出数据太多,占脚本运行内存,容易内存不足 解决: 1/使用轻量级PHP_XLSXWriter导出 2/自己编写的导出代码 3 ...

  8. 【PHP】【组件使用】【phpexcel】【phpexcel导入导出】

    [PHP][组件使用][phpexcel][phpexcel导入导出] 一.前提 PHP 7.3 tp3.2 tp5版本及以上的可能需要修改 二.phpexcel包引入 composer requir ...

  9. PHPExcel导入Excel时长数字变成科学计数法调整

    PHPExcel导入Excel时长数字变成科学计数法调整 1.使用PHPExcel导入Excel表格时,长数字会变成科学计数法,表格中的数值类型为数字类型 比如450107630382345 导入打印 ...

  10. 谷歌浏览器Chrome导入导出文件卡死,崩溃

    谷歌浏览器升级到最新版后,导入导出文件,比如书签等页面直接卡死,经百度后,升级搜狗输入法即可,应该是搜狗输入法和谷歌浏览器不兼容导致,或者换个输入法:

最新文章

  1. 解决sharepoint 2010浏览器在线浏览Word出错
  2. Python过滤掉numpy.array中非nan数据
  3. 移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”
  4. unity脚本运行顺序具体的解释
  5. Python之数据分析(numpy线性模型、线性预测、线性拟合)
  6. 升级linux 4.9内核,Linux 内核 4.8 将不再更新 建议迁往 4.9 稳定版
  7. 互联网公司面试必问的mysql题目
  8. const关键字在c语言的作用,C语言const关键字作用
  9. 压缩JS方法:uglifyjs
  10. UVA 10803 - Thunder Mountain
  11. 又遇到jqGrid在chrome下宽度不正常有滚动条
  12. Diablo2oo2s Universal Patcher(文件补丁工具) 2.18.3 绿色汉化版
  13. TUIO学习笔记2-TUIO C++ Reference Implementation and Demo Application参考实现和Demo程序(图片版,防查重)
  14. 各利不同网站的盈利模式
  15. 宝宝性别测试软件,胎儿性别测试方法
  16. apache iotdb_清华数为工业互联网时序数据库Apache IoTDB亮相2019工业互联网峰会
  17. Java 编程问题:二、对象、不变性和`switch`表达式
  18. 精力管理-健康生活 高效工作
  19. Typora markdown语法基础教程
  20. 弹性容器----六大属性(5、项目在交叉轴上的对齐方式)

热门文章

  1. 初一计算机在线应用,初中计算器_求:计算器(初中数学七年级)在线使用_淘题吧...
  2. SAP Business One(SAP B1):供应商和客户如何分类
  3. cpu超线程优缺点_超线程对游戏性能会影响?
  4. matlabsvd提取特征值_MATLAB中的SVD函数
  5. 如何确定自己的科研课题?
  6. word图片与文字居中对齐
  7. 服务器无线桥接后怎么上网,tplink无线路由器桥接成功不能上网该怎么办?
  8. 常用邮箱服务器(SMTP,POP3)地址
  9. 百万富翁 混淆电路
  10. html如何显示ppt首页,aspx怎样显示ppt转换的html页面