thinkPHP5.0如何实现excel导入导出?(代码示例)

thinkPHP5.0如何实现excel导入导出?(代码示例)

内容导读

收集整理的这篇技术教程文章主要介绍了thinkPHP5.0如何实现excel导入导出?(代码示例),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3849字,纯文字阅读大概需要6分钟

内容图文

本篇文章给大家带来的内容是介绍thinkPHP5.0如何实现excel导入导出?(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

excel导入导出

引第三方的phpexcel类库放到 ThinkPHPLibraryVendordemo下,自己建的文件夹demo

再将Excel.class放到ThinkPHPLibraryOrgclass下,自己建的文件夹class

控制器:

<?phpnamespace AdminController;use ThinkController;class ExcelController extends Controller {

public function excelList(){



$this->display();

}//

导入

public function import(){



if(!empty($_FILES['file_stu']['name'])){





$tmp_file = $_FILES['file_stu']['tmp_name'];

//临时文件名





$file_types = explode('.',$_FILES['file_stu']['name']); //
拆分文件名





$file_type = $file_types [count ( $file_types ) - 1];
 //
文件类型





/*判断是否为excel文件*/





if($file_type == 'xls' || $file_type == 'xlsx'|| $file_type == 'csv'){

//
符合类型







/*上传业务*/







$upload = new ThinkUpload();







$upload->maxSize
 =

 3145728 ;







$upload->exts


=

 array('xls', 'csv', 'xlsx');







$upload->rootPath
=


'./Public';







$upload->savePath
=


'/Excel/';







$upload->saveName
=


date('YmdHis');







$info
 =
 $upload->upload();







if(!$info) {

// 上传错误提示错误信息









$this->error($upload->getError());







}else{
// 上传成功









//
读取文件









$filename='./Public'.$info['file_stu']['savepath'].$info['file_stu']['savename'];









import("Org.Yufan.ExcelReader");









vendor('PHPExcel.PHPExcel');









$reader = PHPExcel_IOFactory::createReader('Excel2007'); //设置以Excel5格式(Excel97-2003工作簿)









$PHPExcel = $reader->load($filename); // 载入excel文件









$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表









$highestRow = $sheet->getHighestRow(); // 取得总行数









var_dump($highestRow);









$highestColumm = $sheet->getHighestColumn(); // 取得总列数









/** 循环读取每个单元格的数据 */









$data = array();









for ($row = 2; $row <= $highestRow; $row++){//行数是以第1行开始











if($column = 'A'){













$data['name'] = $sheet->getCell($column.$row)->getValue();











}











if($column = 'B'){













$data['account'] = $sheet->getCell($column.$row)->getValue();











}











if($column = 'C'){













$data['password'] = $sheet->getCell($column.$row)->getValue();











}











M('data')->add($data);









}











$this->success('导入数据库成功',U('Excel/show'));







}





} else{ //
不符合类型业务







$this->error('不是excel文件,请重新上传...');





}



}else{





$this->error('(⊙o⊙)~没传数据就导入');



}

}

//导出

public function export(){



import("ORG.Yufan.Excel");



$list = M('data')->select();



if($list == null){





$this->error('数据库信息为空...',__APP__.'/Admin/Excel/show');



}else{





$row=array();





$row[0]=array('平台名称','帐号','密码');





$i=1;





foreach($list as $v){







$row[$i]['name'] = $v['name'];







$row[$i]['account'] = $v['account'];







$row[$i]['password'] = $v['password'];







$i++;





}





$xls = new Excel_XML('UTF-8', false, 'datalist');





$xls->addArray($row);





$xls->generateXML(date('YmdHis'));



}

}

public function show(){



$m = M('data');



$data = $m->select();



$this->assign('data',$data);



$this->display();

}}

视图:(excelList.html)

<!DOCTYPE html><html lang="en"><head>

<meta charset="UTF-8">

<title>Excel导入导出</title></head><body><p class="page-header">

<h1>TP DEMO



<small>Excel导入导出练习</small>

</h1></p><form method="post" action="{:U('Excel/import')}" class="form-signin" enctype="multipart/form-data" >

<input name="file_stu" type="file" class="form-control">

<button class="btn btn-lg btn-primary btn-block">导入</button></form></body></html>

视图:(show.html)

<!DOCTYPE html><html lang="en"><head>

<meta charset="UTF-8">

<title>表格展示</title></head><body><p class="page-header">

<h1>TP DEMO



<small>Excel导入导出练习</small>

</h1></p><table class="table">

<tr>



<td><h4><b>平台名称</b></h4></td>



<td><h4><b>帐号</b></h4></td>



<td><h4><b>密码</b></h4></td>

</tr>

<foreach name="data" item="vo">



<tr>





<td>{$vo.name}</td>





<td>{$vo.account}</td>





<td>{$vo.password}</td>



</tr>

</foreach></table><form action="{:U('Excel/export')}" class="form-signin">

<button class="btn btn-lg btn-primary btn-block">导出数据库数据</button></form></body></html>

谢谢大家浏览到这里~~~~

以上就是thinkPHP5.0如何实现excel导入导出?(代码示例)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的thinkPHP5.0如何实现excel导入导出?(代码示例)全部内容,希望文章能够帮你解决thinkPHP5.0如何实现excel导入导出?(代码示例)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com