|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是介紹thinkPHP5.0如何實現excel導入導出?(代碼示例)。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。excel導入導出 引第三方的phpexcel類庫放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夾demo 再將Excel.class放到ThinkPHP\Library\Org\class下,自己建的文件夾class 控制器: <?php
namespace Admin\Controller;
use Think\Controller;
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 \Think\Upload();
$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導入導出?(代碼示例)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!