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 ...
随机推荐
- 18-09-20 关于Xlwings读写基础1
一 利用xlwings 读取Excel 的读取修改数据 import xlwings as xw""" # 1. 读一个已存在的Excel文件:利用xlwings 读取E ...
- mod_fcgid FcgidMaxRequestLen 131072 问题
mod_fcgid: HTTP request length 136136 (so far) exceeds MaxRequestLen (131072) 原来是fastcgi模式下的设置问题,需 ...
- .NET并行计算和并发7-Task异步
使用任务并行库执行异步任务 下面的示例演示如何通过调用 TaskFactory.StartNew 方法来创建并使用 Task 对象. using System; using System.Thread ...
- echarts环形图自动定位radius
根据后台返回数据条数进行pie图radius定位: var a = 100; var b = 0; var c = 0; var radius = []; for (var i in data ...
- shell批处理文件,并将运算结果返回
问题背景是这样的:别人用C++写了一个算法,算法内部比较复杂,但是呢,对于编译好的文件用起来比较方便,比如在linux终端,my_program 1.png 2.txt这样就可以用,但是这样只能够输入 ...
- 1.Python
一.Python基础:1.第一句python文件后缀名:文件后缀名是.py2.两种执行方式:(1)把文件地址交给python解释器,python解释器去找到这个文件读到内存执行(2)进入解释器:解释器 ...
- 解决Visual Studio禁止使用strlen函数的问题
问题描述: 在学习C++的复制构造函数以及复制赋值运算符的重载时,需要用到使用C风格的字符串作为引入,由于我用的是VS2015(社区版),在编译时出错.编译器提醒strcpy函数是不安全的,建议改用s ...
- 图像小波变换去噪——MATLAB实现
clear; [A,map]=imread('C:\Users\wangd\Documents\MATLAB\1.jpg'); X=rgb2gray(A); %画出原始图像 subplot(,,);i ...
- 爬虫-day01-基础知识
'''爬虫的构成下载器: 抓取页面 urllib equests selenium + webdriver解析器: 解释并提取页面元素 BeautifulSoup4 PyQuery Xpath Reg ...
- ubuntu16.04下docker安装和简单使用
前提条件 操作系统 docker-ce支持的ubuntu版本: Bionic 18.04 (LTS) Xenial 16.04 (LTS) Trusty 14.04 (LTS) 卸载旧版本docker ...