phpexcel导入导出
先下载类文件,将类文件放到lib下,然后到入口文件定义一个新的的路径,以便引入文件。

<?php
namespace app\index\controller;
use think\Controller;
require EXTEND_PATH."/PHPExcel/Classes/PHPExcel.php";
use think\Db;
use PHPExcel;
use PHPExcel_Writer_Excel2007;
use PHPExcel_Reader_Excel2007;
use PHPExcel_Cell;
class Excel extends Controller
{
public function index()
{
$list=Db::table("excel")->field('id,name,password')->select();
$this->assign("list",$list);
return view("index");
}
//导出
public function export(){
$list=Db::table("excel")->field('id,name,password')->select();
//创建一个phpexcel对象
$objPHPExcel = new PHPExcel();
//构造一个对象
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//设置一个sheet
$objPHPExcel->setActiveSheetIndex();
//设置sheet名称
$objPHPExcel->getActiveSheet()->setTitle("users");
//设置title
$zm = array('A','B','C');
$title=array('编号','名称','密码');
$num=;
foreach($title as $key=>$val){
$objPHPExcel->getActiveSheet()->setCellValue($zm[$key].$num, $val);
}
//设置数据
foreach($list as $k=>$v){
$num++;
$k=;
foreach($v as $kk=>$vv){
$objPHPExcel->getActiveSheet()->setCellValue($zm[$k].$num,$vv);
$k+=;
}
}
//输出到浏览器
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename="export.xls"');
//保存文件
$objWriter->save('php://output');
}
//导入
public function import(){
header('content-type:text/html;charset=utf-8');
$file=$_FILES['user']['tmp_name'];
//获取读取excel对象
$PHPReader = new PHPExcel_Reader_Excel2007();
$boole7=$PHPReader->canRead($file);
if(!$boole7){
$boole5=$PHPReader = new PHPExcel_Reader_Excel5($file);
if(!$boole5){
$this->error('文件不可读');
}
}
//加载文件
$PHPExcel = $PHPReader->load($file);
//获取第一个工作表
$currentSheet = $PHPExcel->getSheet();
//获取当前工作表有多少列
$allColumn = PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn());
//获取当前工作表有多少行
$allRow = $currentSheet->getHighestRow();
$title=array('id','name','password');
$zm=array('A','B','C','D');
$insertData=array();
for($i=;$i<=$allRow;$i++){
for($j=;$j<=$allColumn;$j++){
$value = $currentSheet->getCell($zm[$j-].$i)->getValue();
$insertData[$i][$title[$j-]]=htmlspecialchars($value);
}
}
$insertData=array_values($insertData);
$res=Db::name('user')->insertAll($insertData);
if($res<=){
$this->error('数据导入失败');
}else{
$this->success('数据导入成功','show');
}
}
//展示导入数据
public function show(){
$list=Db::table("user")->select();
return view("show",['list'=>$list]);
}
}
phpexcel导入导出的更多相关文章
- 使用PHPExcel导入导出excel格式文件
使用PHPExcel导入导出excel格式文件 作者:zccst 因为导出使用较多,以下是导出实现过程. 第一步,将PHPExcel的源码拷贝到项目的lib下 文件包含:PHPExcel.ph ...
- 黄聪:超实用的PHPExcel[导入][导出]实现方法总结
首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel,下载后只需要Classes目录下的文件即可. 1.PHPExcel导出方法实现过程 /* ...
- PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/classname
php利用PHPExcel类导出导入Excel用法 来源: 时间:2013-09-05 19:26:56 阅读数: 分享到: 16 [导读] PHPExcel类是php一个excel表格处理插 ...
- thinkphp5 使用PHPExcel 导入导出
首先下载PHPExcel类.网上很多,自行下载. 然后把文件放到vendor文件里面. 一般引用vendor里面的类或者插件用vendor(); 里面加载的就是vendor文件,然后想要加载哪个文件, ...
- phpexcel 导入导出
导出excel /** * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 * 打开对应行的注释. * 如果使用 Excel5 ,输出的内容应该是GBK编码. */ //r ...
- 【PHP】使用phpoffice/phpexcel导入导出数据
本例以thinkphp5.1为例 包地址: https://packagist.org/packages/phpoffice/phpexcel 使用: composer require phpoffi ...
- phpexcel使用说明5----ThinkPHP+PHPExcel[导入][导出]实现方法
转自:http://www.thinkphp.cn/code/403.html实现步骤: 注意:phpexcel必须是1.78版本的,不能用1.8以上的 一:去官网http://phpexcel.co ...
- phpcms 用phpexcel导入导出excel
html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...
- phpexcel 导入导出excel表格
phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...
随机推荐
- traceroute命令初探
一.学习目标 了解traceroute基本概念 了解traceroute工作原理及详细过程 熟悉traceroute常用命令 一些注意点 二.traceroute基本概念 traceroute (Wi ...
- MySQL:视图
视图 一.视图的概述 1. 含义:是从数据库中一个或多个表中导出的虚拟表2. 作用:①简单化 ②安全性 ③逻辑数据独立性3. 注意:一个表可以由多个视图: 二.视图的创建 1. 总的语法形式 CREA ...
- 2017年3月30日15:00:19 fq以后的以后 动态代理
代理与继承,组合不同的是,继承是继承父类特性,组合是拼装组合类的特性,代理是使用代理类的指定方法并可以做自定义. 静态类是应用单个类,当代理的类数量较多时可用动态代理,动态代理在概念上很好理解 htt ...
- .NET并行计算和并发3.2-多线程调用Invoke
以下这个例子是用一个后台线程执行计算逻辑,这样不影响前台界面操作,也就是说 可以在前台UI界面执行其他操作. 重点是新线程中,调用了一个委托方法,这个方法是需要填充数据到前台控件,因为 前台控件是在原 ...
- 剑指Offer 57. 二叉树的下一个结点 (二叉树)
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 题目地址 https://www.nowcoder.c ...
- 神州数码OSPF路由协议
实验要求:熟练掌握OSPF配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip addres ...
- 本地Debug Asp.net MVC 无法加载css与js
运行一个从网上download的一个MVC项目,运行的时候无法显示样式,js也报错. 检查路径也没有问题,后来在配置中把其中的一段配置去掉 <staticContent> <!-- ...
- Python - 统计一篇文章中单词的频率
def frenquence_statistic(file_name): frequence = {} for line in open(file_name,'r').readlines(): wor ...
- 集合总结二(LinkedList的实现原理)
一.概述 先来看看源码中的这一段注释,我们先尝试从中提取一些信息: Doubly-linked list implementation of the List and Deque interfaces ...
- 光速搭lvs + keepalived + nginx
环境: VIP 192.168.2.224 LVS 192.168.2.217 centos7 nginx1 192.168.2.231 cen ...