本篇內容介紹了“tp怎么實現excel的導入和導出”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

澧縣網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、自適應網站建設等網站項目制作,到程序開發,運營維護。創新互聯自2013年創立以來到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。
一:下載phpExcel第三方類庫
下載地址:http://www.thinkphp.cn/topic/14005.html下載官方網站;
二:下載成功之后將文件放到Vendor下:ThinkPHP\Extend\Vendor\PHPExcel\PHPExcel.php。
三:配置數據庫的信息操作(我的是在home文件夾下(application/home/config/config.php)添加如下配置):
<?php return array( //'配置項'=>'配置值' 'DB_TYPE' => 'MySQL', // 數據庫類型 'DB_HOST' => 'localhost', // 服務器地址 'DB_NAME' => 'db_oa', // 數據庫名 'DB_USER' => 'root', // 用戶名 'DB_PWD' => 'root', // 密碼 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => 'tg_', // 數據庫表前綴 // 'DB_FIELDS_CACHE' => false, // 啟用字段緩存(開發時這個要寫成false) ) ?>
四:模板代碼:
<html>
<head>
</head>
<body>
<P><a href="{:U('Index/expUser')}" >導出數據并生成excel</a></P><br/>
<form action="{:U('Index/impUser')}" method="post" enctype="multipart/form-data">
<input type="file" name="import"/>
<input type="hidden" name="table" value="tablename"/>
<input type="submit" value="導入"/>
</form>
</body>
</html>
<?php
?>實現功能的控制器方法:
1>導出數據方法的實現:
function expUser(){//導出Excel
//獲取表頭名:
$xlsName = "evaluate_check";
//獲取文件里面具體的數據
$xlsCell = array('教師檢查作業表', '所屬功能','所屬權限','所屬學生','學生答案'
);
// 連接數據庫找到查詢的表
$xlsModel = M('evaluate_check');
// 通過調用select方法field查找數據表里面的字段
$xlsData = $xlsModel->Field('id,tep_id,tet_id,student_id,student_anwser')->select();
$this->exportExcel($xlsName,$xlsCell,$xlsData);
}
public function exportExcel($expTitle,$expCellName,$expTableData){
// 抓取文件名將字符編碼轉換成utf8格式
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名稱
// 命名Excel文件的文件名稱,通過時間函數隨即打亂
$fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名稱可根據自己情況設定
//通過count函數獲取到字段的行數
$cellNum = count($expCellName);
//獲取具體的值
$dataNum = count($expTableData);
// var_dump(count($expTableData));exit;
//引入具體的類庫
vendor("PHPExcel.PHPExcel");
// echo '111111dfgfhj';exit;
//實例化方法,得到所有的方法;
$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');
// var_dump($cellName);exit;
// var_dump($objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'));exit;
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并單元格
// echo '1111111';exit;
// var_dump($objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'));exit;
// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.' Export time:'.date('Y-m-d H:i:s'));
//對獲取的行號進行循環遍歷并且賦值
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i]);
}
$objPHPExcel->getActiveSheet()->setTitle($expTitle);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$expTitle);
// Miscellaneous glyphs, UTF-8
// var_dump($dataNum);exit;
//對獲取的列好進行遍歷賦值輸出
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){
$a = array_values($expTableData[$i]) ;
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),$a[$j]);
}
}
ob_end_clean();//清楚緩沖避免亂碼
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本窗口打印
//通過調用如下方法來創建Excel將值寫入
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//進行保存下載
$objWriter->save('php://output');
exit;
}3>導入數據方法的實現:
(1)選取你要導入的xls文件,進行操作
(2)代碼如下:
function impUser(){
//判斷你的文件是否為空
if (!empty($_FILES)) {
// 引入類庫
vendor("PHPExcel.PHPExcel");
//獲取存儲文件的文件名
$file_name=$_FILES['import']['tmp_name'];
//調用如下方法來讀取你表里面的信息
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
// var_dump($objReader);exit;
//讀取到的臨時文件名的信息
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');
//獲取Excel表格的列數
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumn = $sheet->getHighestColumn(); // 取得總列數
// 將值進行寫入
for($i=3;$i<=$highestRow;$i++)
{
$data['account']= $data['truename'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$sex = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
// $data['res_id'] = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
$data['class'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
$data['year'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();
$data['city']= $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();
$data['company']= $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();
$data['zhicheng']= $objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue();
$data['zhiwu']= $objPHPExcel->getActiveSheet()->getCell("J".$i)->getValue();
$data['jibie']= $objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue();
$data['honor']= $objPHPExcel->getActiveSheet()->getCell("L".$i)->getValue();
$data['tel']= $objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue();
$data['qq']= $objPHPExcel->getActiveSheet()->getCell("N".$i)->getValue();
$data['email']= $objPHPExcel->getActiveSheet()->getCell("O".$i)->getValue();
$data['remark']= $objPHPExcel->getActiveSheet()->getCell("P".$i)->getValue();
$data['sex']=$sex=='男'?1:0;
$data['res_id'] =1;
$data['last_login_time']=0;
$data['create_time']=$data['last_login_ip']=$_SERVER['REMOTE_ADDR'];
$data['login_count']=0;
$data['join']=0;
$data['avatar']='';
$data['password']=md5('123456');
//通過以下方法,將值添加到數據庫中;
M('Member')->add($data);
}
$this->success('導入成功!');
}else
{
$this->error("請選擇上傳的文件");
}
}說明:最后的數據庫信息以你具體的表信息為主,在M(‘表明’)->add($data);
$data里面的數據也以你真實的表為基礎
“tp怎么實現excel的導入和導出”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
新聞名稱:tp怎么實現excel的導入和導出
當前路徑:http://www.yijiale78.com/article40/jceoeo.html
成都網站建設公司_創新互聯,為您提供服務器托管、手機網站建設、品牌網站制作、小程序開發、外貿網站建設、動態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯