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的批量导入功能相关推荐

  1. Excel导入多个HTML,网页表格批量导入到excel表格数据-如何将多个网页上的数据批量导入EXCEL...

    怎么将网页中的表格数据导入Excel 看看这个程序 htt==ps://it365.gitlab.io/zh-cn/table-to-excel/?d59568 上面的链点问题,你先复制了,粘浏览器地 ...

  2. jsp后台批量导入excel表格数据到mysql中_PHP批量导入excell表格到mysql数据库

    PHP批量导入excell表格到mysql数据库,本人通过亲自测试,在这里分享给大家 1,下载 php  excell类库 网上搜索可以下载,这里不写地址 2,建html文件 请选择你要上传的EXCE ...

  3. 批量导入手机通讯录_手机QQ批量导入电话号码

    这个小技巧在三年前我已经写过一回了,但现在QQ也更新了几个版本,原来的方法操作起来总有些功能受限,所以重新写过. 操作大致分三步 第一步:在电脑上做一个电子表格,按自己的需要保留必需的项目,我这里只填 ...

  4. python处理完数据导入数据库_python操作数据库之批量导入

    python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...

  5. [通讯录工具][安卓+苹果]如何将Excel电话通讯录导入华为或苹果手机?如何批量导入号码到安卓手机,下面是具体操作

    今天写一篇帖子讲如何把大批量的号码导入华为手机 也就是安卓手机, 苹果手机也同样适用,在 日常工作和生活中常常有大批量的电话存在Excel表格里, 如何快速的将号码导入到华为手机或者安卓手机, 有的人 ...

  6. SAP中使用LSMW批量导入总账科目

    遗留数据迁移平台,可以导入主数据:科目.资产主数据.物料主数据.供应商.客户主数据.成本中心.内部订单数据.... FSP0 FSS0 分层导入:适合集团和分公司分别维护科目主数据,集团和公司自行维护 ...

  7. CAD软件中怎么批量导入导出坐标数据?

    在CAD软件中,每一个点,都有独一无二的坐标值.而成千上万的点,组成了更为具象化的CAD图形.尽管大部分的设计师了解如何使用CAD软件来绘制图形并保存为图纸,但对于如何将众多的个性化.精确化的CAD坐 ...

  8. neo4j︱neo4j批量导入neo4j-import (五)

    neo4j数据批量导入 1 neo4j基本参数 1.1 启动与关闭: 1.2 neo4j-admin的参数:控制内存 1.2.1 memrec 是查看参考内存设置 1.2.2 指定缓存–pagecac ...

  9. U9 ERP 系统BOM物料清单批量导入导出并新增修改功能

    根据公司需求特开发此功能(此功能适应于任何用友U9ERP系统导入导出功能) 1.根据母料查出所有母料中子料下面的子料 2.可导入.导出 3.可批量导入新增 4.可批量修改 登录界面 功能界面 如有需要 ...

最新文章

  1. ​CSRankings年度更新,清华北大包揽AI领域前两名​ | AI日报
  2. 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
  3. Visual studio(VS)如何修改显示字体类型和字体大小?
  4. go语言渐入佳境[9]-doubleloop
  5. 利用pyhton爬虫(案例4)--你想要的图片都在这
  6. Socket解决粘包问题2
  7. material 项目_Web开发必备的 10 个开源项目,不用自己亲自造轮子!
  8. OpenKG 祝大家元宵节快乐!
  9. IDEA 终于支持中文版和 JDK 直接下载了(太方便了)附新版介绍视频
  10. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法
  11. docker容器启动与停止命令
  12. DWF是个什么格式,要怎么进行相应的格式转换?
  13. Python歌词解析
  14. PMBOK 项目管理 九大知识领域和五大流程
  15. 金蝶K3即时库存查询,所有物料供应商都是同一个问题处理
  16. 继神州行10元包月后:北京动感地带资费降至6元/月
  17. 电脑没有声音怎么办?
  18. 智能语音标注工具小记
  19. Python爬取所有股票数据并进行数据分析
  20. Codeforces #363 div2 prob699

热门文章

  1. IBM即将倒闭,微软离倒闭还有18个月
  2. 【预训练GAN】Projected GANs Converge Faster
  3. 一图看懂LGPL,MPT,GPL,BSD,MIT,Apache协议(最新版)
  4. 为什么年轻人喜欢北上广? 因为这里点燃改变世界的梦想!
  5. 八皇后问题汇总(C++版)
  6. linux复制文件夹及赋予权限
  7. netty客户端连接后无限发送数据,连接不上时无限重试,断线重连
  8. 原生微信小程序开发-黑马优购(一)
  9. 移动CM101s_MV100_EMMC_M8233_强刷后全分区线刷固件包
  10. java过滤器全局解析token