php excel 导入大量,ThinkPHP实现excel的批量导入功能
2.解压PHPExcel
解压文件
thinkphp中在路径为:ThinkPHP->Library->Vendor中新建文件夹PHPExcel,之后再把红框选中的两个文件,新建的PHPExcel文件夹中。
工程文件夹目录
3.前端代码
导出数据并生成excel
4.后台代码
// 本类由系统自动生成,仅供测试用途
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
/**
*
* Enter 导出excel共同方法 ...
* @param unknown_type $expTitle
* @param unknown_type $expCellName
* @param unknown_type $expTableData
*/
function index(){
//显示前端页面
$this->display();
}
public function exportExcel($expTitle,$expCellName,$expTableData){
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
$fileName = $_SESSION['account'].date('YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
$cellNum = count($expCellName);
$dataNum = count($expTableData);
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new \PHPExcel();
$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.' Export time:'.date('Y-m-d H:i:s'));
for($i=0;$i
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i
for($j=0;$j
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
}
}
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
/**
* 导出Excel
* 其实在使用导出excel时,只需要根据需求修改此函数即可
*/
function expUser(){//导出Excel
$xlsName = "User";
//excel表中的第一行各列的属性名,即取的数据
$xlsCell = array(
array('id','账号序列'),
array('name','名字'),
array('birth','出生年'),
array('create_time','创建时间'),
array('status','状态'),
);
//数据库中数据表
$xlsModel = M('New');
//取出的所有数据
$xlsData = $xlsModel->Field('id,name,birth,create_time,status')->select();
$this->exportExcel($xlsName,$xlsCell,$xlsData);
}
/**
*
* 显示导入页面 ...
*/
/**实现导入excel
**/
function impUser(){
if (!empty($_FILES)) {
//import("@.ORG.UploadFile");
$config=array(
'exts'=>array('xlsx','xls'),
'rootPath'=>"./Public/",
'savePath'=>'Uploads/',
//'autoSub' => true,
'subName' => array('date','Ymd'),
);
$upload = new \Think\Upload($config);
if (!$info=$upload->upload()) {
$this->error($upload->getError());
}
vendor("PHPExcel.PHPExcel");
$file_name=$upload->rootPath.$info['import']['savepath'].$info['import']['savename'];
//var_dump($file_name);exit;
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
//循环遍历excel每一行数据,插入到数据表中
for($i=3;$i<=$highestRow;$i++)
{
$data['id'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
$data['name'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data['birth']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data['create_time']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
$data['status']= $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
M('New')->add($data);
}
$this->success('导入成功!');
}else
{
$this->error("请选择上传的文件");
}
}
}
5.在使用过程中函数exportExcel()不需要修改,只需要修改导出与导入函数对应对数据库的操作即可。
总结
好好学习,天天向上,今天也是。
php excel 导入大量,ThinkPHP实现excel的批量导入功能相关推荐
- Excel导入多个HTML,网页表格批量导入到excel表格数据-如何将多个网页上的数据批量导入EXCEL...
怎么将网页中的表格数据导入Excel 看看这个程序 htt==ps://it365.gitlab.io/zh-cn/table-to-excel/?d59568 上面的链点问题,你先复制了,粘浏览器地 ...
- jsp后台批量导入excel表格数据到mysql中_PHP批量导入excell表格到mysql数据库
PHP批量导入excell表格到mysql数据库,本人通过亲自测试,在这里分享给大家 1,下载 php excell类库 网上搜索可以下载,这里不写地址 2,建html文件 请选择你要上传的EXCE ...
- 批量导入手机通讯录_手机QQ批量导入电话号码
这个小技巧在三年前我已经写过一回了,但现在QQ也更新了几个版本,原来的方法操作起来总有些功能受限,所以重新写过. 操作大致分三步 第一步:在电脑上做一个电子表格,按自己的需要保留必需的项目,我这里只填 ...
- python处理完数据导入数据库_python操作数据库之批量导入
python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...
- [通讯录工具][安卓+苹果]如何将Excel电话通讯录导入华为或苹果手机?如何批量导入号码到安卓手机,下面是具体操作
今天写一篇帖子讲如何把大批量的号码导入华为手机 也就是安卓手机, 苹果手机也同样适用,在 日常工作和生活中常常有大批量的电话存在Excel表格里, 如何快速的将号码导入到华为手机或者安卓手机, 有的人 ...
- SAP中使用LSMW批量导入总账科目
遗留数据迁移平台,可以导入主数据:科目.资产主数据.物料主数据.供应商.客户主数据.成本中心.内部订单数据.... FSP0 FSS0 分层导入:适合集团和分公司分别维护科目主数据,集团和公司自行维护 ...
- CAD软件中怎么批量导入导出坐标数据?
在CAD软件中,每一个点,都有独一无二的坐标值.而成千上万的点,组成了更为具象化的CAD图形.尽管大部分的设计师了解如何使用CAD软件来绘制图形并保存为图纸,但对于如何将众多的个性化.精确化的CAD坐 ...
- neo4j︱neo4j批量导入neo4j-import (五)
neo4j数据批量导入 1 neo4j基本参数 1.1 启动与关闭: 1.2 neo4j-admin的参数:控制内存 1.2.1 memrec 是查看参考内存设置 1.2.2 指定缓存–pagecac ...
- U9 ERP 系统BOM物料清单批量导入导出并新增修改功能
根据公司需求特开发此功能(此功能适应于任何用友U9ERP系统导入导出功能) 1.根据母料查出所有母料中子料下面的子料 2.可导入.导出 3.可批量导入新增 4.可批量修改 登录界面 功能界面 如有需要 ...
最新文章
- ​CSRankings年度更新,清华北大包揽AI领域前两名​ | AI日报
- 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
- Visual studio(VS)如何修改显示字体类型和字体大小?
- go语言渐入佳境[9]-doubleloop
- 利用pyhton爬虫(案例4)--你想要的图片都在这
- Socket解决粘包问题2
- material 项目_Web开发必备的 10 个开源项目,不用自己亲自造轮子!
- OpenKG 祝大家元宵节快乐!
- IDEA 终于支持中文版和 JDK 直接下载了(太方便了)附新版介绍视频
- python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法
- docker容器启动与停止命令
- DWF是个什么格式,要怎么进行相应的格式转换?
- Python歌词解析
- PMBOK 项目管理 九大知识领域和五大流程
- 金蝶K3即时库存查询,所有物料供应商都是同一个问题处理
- 继神州行10元包月后:北京动感地带资费降至6元/月
- 电脑没有声音怎么办?
- 智能语音标注工具小记
- Python爬取所有股票数据并进行数据分析
- Codeforces #363 div2 prob699
热门文章
- IBM即将倒闭,微软离倒闭还有18个月
- 【预训练GAN】Projected GANs Converge Faster
- 一图看懂LGPL,MPT,GPL,BSD,MIT,Apache协议(最新版)
- 为什么年轻人喜欢北上广? 因为这里点燃改变世界的梦想!
- 八皇后问题汇总(C++版)
- linux复制文件夹及赋予权限
- netty客户端连接后无限发送数据,连接不上时无限重试,断线重连
- 原生微信小程序开发-黑马优购(一)
- 移动CM101s_MV100_EMMC_M8233_强刷后全分区线刷固件包
- java过滤器全局解析token