亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

ThinkPHP與PHPExcel沖突解決方法

2024-05-04 23:17:29
字體:
來源:轉載
供稿:網友
很早之前就知道有一個叫做PHPExcel的類(官方網站)可以用來操作Excel,一直沒有機會嘗試,今天試用發現無比強大,下載后的源碼包里有詳細文檔,幾乎能實現手工操作Excel能實現的一切功能。
一個簡單的讀取Excel的例子如下:

復制代碼 代碼如下:


$inputFileType = 'Excel2007';
$inputFileName = './public/files/import_user_template.xlsx';
$sheetname = 'Sheet1';
//指定Excel類型,創建一個reader
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
//設置只讀取數據,不包括公式和格式
$objReader->setReadDataOnly(true);
//只讀取指定的sheet
$objReader->setLoadSheetsOnly($sheetname);
$objPHPExcel = $objReader->load($inputFileName);
$curSheet = $objPHPExcel->getSheet(0);
//包含數據的最大列
$allColumn = $curSheet->getHighestColumn();
//包含數據的最大行
$allRow = $curSheet->getHighestRow();
for($currentRow = 1; $currentRow <= $allRow; $currentRow++){
for($currentCol = 'A'; $currentCol <= $allColumn; $currentCol++){
echo $curSheet->getCell($currentCol.$currentRow)->getValue()."/t";
}
echo "/r/n";
}


要在ThinkPHP中使用,把源碼包中的Classes目錄復制到ThinkPHP的Vendor目錄下,改名為PHPExcel,然后調用Vendor方法載入

復制代碼 代碼如下:


vendor('PHPExcel.PHPExcel');


可是這樣一來發現讀取Excel以后再調用M或者D方法實例化模型類時報找不到Model類的錯誤,經過研究發現是自動裝載機制沖突,要解決沖突,需要在M或者D方法調用之前使用spl_autoload_register函數重新注冊autoloader類

復制代碼 代碼如下:


spl_autoload_register(array('Think','autoload'));


在ThinkPHP中調用PHPExcel的問題解決方案
在ThinkPHP中調用PHPExcel時,數據可以完全讀出來,但是下一步D,M或調用模板的時候會出錯。(不知道是我一個人遇到這個問題 嗎?)
經過研究,終于找到了解決方法。和大家分享一下。呵呵!
1,首先下載PHPExcel的包,放在 ThinkPHP/Vendor/(也就是Think的第三方類庫目錄)下。
2,調用函數。

復制代碼 代碼如下:


protected function Import_Execl($file){
if(!file_exists($file)){
return array("error"=>1);
}
Vendor("PHPExcel.PHPExcel");
$PHPExcel = new PHPExcel();
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($file)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($file)){
return array("error"=>2);
}
}
$PHPExcel = $PHPReader->load($file);
$SheetCount = $PHPExcel->getSheetCount();
for($i=0;$i<$SheetCount;$i++){
$currentSheet = $PHPExcel->getSheet($i);
$allColumn = $this->ExcelChange($currentSheet->getHighestColumn());
$allRow = $currentSheet->getHighestRow();
$array[$i]["Title"] = $currentSheet->getTitle();
$array[$i]["Cols"] = $allColumn;
$array[$i]["Rows"] = $allRow;
$arr = array();
for($currentRow = 1 ;$currentRow<=$allRow;$currentRow++){
$row = array();
for($currentColumn=0;$currentColumn<$allColumn;$currentColumn++){
$row[$currentColumn] = $currentSheet->getCellByColumnAndRow($currentColumn,$currentRow)->getValue();
}
$arr[$currentRow] = $row;
}
$array[$i]["Content"] = $arr;
}
spl_autoload_register(array('Think','autoload'));//必須的,不然ThinkPHP和PHPExcel會沖突
unset($currentSheet);
unset($PHPReader);
unset($PHPExcel);
unlink($file);
return array("error"=>0,"data"=>$array);
}
protected function ExcelChange($str){//配合Execl批量導入的函數
$len = strlen($str)-1;
$num = 0;
for($i=$len;$i>=0;$i--){
$num += (ord($str[$i]) - 64)*pow(26,$len-$i);
}
return $num;
}


3,調用。

復制代碼 代碼如下:


public function import(){
if(isset($_FILES["import"]) && ($_FILES["import"]["error"] == 0)){
$result = $this->Import_Execl($_FILES["import"]["tmp_name"]);
if($this->Execl_Error[$result["error"]] == 0){
$execl_data = $result["data"][0]["Content"];
unset($execl_data[1]);
$data = D("Data");
foreach($execl_data as $k=>$v){
$d["serial_no"] = $v[0];
$d["check_no"] = $v[1];
$d["work_no"] = $v[2];
$d["class_name"] = $v[3];
$d["user_name"] = $v[4];
$d["new_class"] = $v[5];
$d["error_level"] = $v[6];
$data->data($d)->add();
}
$this->success($this->Execl_Error[$result["error"]]);
}else{
$this->error($this->Execl_Error[$result["error"]]);
}
}else{
$this->error("上傳文件失敗");
}
}


4,錯誤數據:

復制代碼 代碼如下:


protected $Execl_Error = array("數據導入成功","找不到文件","Execl文件格式不正確");

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕国产精品| 国产一区二区三区网站| 亚洲第一福利网站| 国产精品久久久久福利| 在线精品高清中文字幕| 国产中文字幕亚洲| 精品亚洲男同gayvideo网站| 亚洲护士老师的毛茸茸最新章节| 国产精品福利网| 亚洲国产精品久久久久| 久久人人爽人人| 欧美日韩国产综合视频在线观看中文| 午夜精品三级视频福利| 国产日韩欧美在线看| 国内偷自视频区视频综合| 欧美精品aaa| 日韩三级成人av网| 欧美在线亚洲在线| 国产精品久久国产精品99gif| 久久久99免费视频| 久久免费视频网| 久久777国产线看观看精品| 久久久精品在线观看| 日本国产欧美一区二区三区| 亚洲国产另类久久精品| 国产精品高潮粉嫩av| 免费91麻豆精品国产自产在线观看| 欧美色播在线播放| 欧美日韩国产影院| 国产精品网站大全| 成人亲热视频网站| 欧美精品九九久久| 狠狠综合久久av一区二区小说| 国产suv精品一区二区| 色综合久久88色综合天天看泰| 97碰碰碰免费色视频| 亚洲成人动漫在线播放| 日日狠狠久久偷偷四色综合免费| 亚洲人成77777在线观看网| 亚洲精品在线视频| 色多多国产成人永久免费网站| 亚洲精品在线观看www| 亚洲美女激情视频| 国产视频亚洲视频| 久久久999成人| 国产精品第2页| 欧美视频在线看| 国产精品中文字幕在线| 中日韩午夜理伦电影免费| 亚洲国产精品专区久久| 91久久久久久国产精品| 青草热久免费精品视频| 91精品国产成人| 中文字幕日韩在线视频| 伊人激情综合网| 欧美精品videos另类日本| www.色综合| 中文字幕精品视频| 国产一区二区三区视频| 国产精品日韩欧美| 国产欧美精品在线播放| 国产中文字幕亚洲| 中文字幕国产亚洲2019| 91网站在线免费观看| 九九热最新视频//这里只有精品| 日韩福利伦理影院免费| 2021国产精品视频| 日韩欧美国产高清91| 久久久亚洲欧洲日产国码aⅴ| 国产亚洲精品va在线观看| 成人免费午夜电影| 中文字幕日韩av综合精品| 国产婷婷色综合av蜜臀av| 欧美激情啊啊啊| 国产精品高清在线观看| 色天天综合狠狠色| 欧美日韩免费区域视频在线观看| 色999日韩欧美国产| 黑人精品xxx一区一二区| 亚洲性夜色噜噜噜7777| 欧美国产日本高清在线| 国产网站欧美日韩免费精品在线观看| 亚洲在线视频福利| 欧美国产精品va在线观看| 欧美视频第一页| 久久男人av资源网站| 综合欧美国产视频二区| 日韩在线播放av| 亚洲天堂免费在线| 成人免费看片视频| 国产精品劲爆视频| 国产99久久久欧美黑人| 92看片淫黄大片看国产片| 69精品小视频| 色噜噜亚洲精品中文字幕| 热re99久久精品国产66热| 另类少妇人与禽zozz0性伦| 色婷婷av一区二区三区久久| 亚洲国产精品一区二区三区| 久久久爽爽爽美女图片| 亚洲人成在线一二| 91亚洲一区精品| 国产精品99蜜臀久久不卡二区| 国产日本欧美在线观看| 午夜精品国产精品大乳美女| 欧美成人免费全部| 国产亚洲精品久久| 日本成人在线视频网址| 欧美第一页在线| 欧美国产日韩一区二区三区| 久久伊人免费视频| 亚洲综合成人婷婷小说| 国产精品国模在线| 久久精品电影网| 日韩精品久久久久| 91免费福利视频| 日韩av在线天堂网| 日本sm极度另类视频| 成人美女免费网站视频| 久久亚洲电影天堂| 欧美疯狂xxxx大交乱88av| 成人a在线视频| 欧美日韩美女在线观看| 久久久亚洲福利精品午夜| 97在线免费视频| 国产精品91久久| 日日狠狠久久偷偷四色综合免费| 国产精品免费小视频| 欧美老少做受xxxx高潮| 欧美有码在线观看| 精品国产自在精品国产浪潮| 日韩一级裸体免费视频| 久久人人爽人人| 亚洲欧美视频在线| 亚洲美女av在线| 欧美大片在线看免费观看| 精品免费在线视频| 欧美日韩精品中文字幕| 91久久精品日日躁夜夜躁国产| 精品国产一区二区三区在线观看| 亚洲国产三级网| 日韩性xxxx爱| 欧美日韩亚洲成人| 91丝袜美腿美女视频网站| 91老司机在线| 亚洲第一区中文99精品| www欧美日韩| 亚洲美女免费精品视频在线观看| 国产在线播放91| 日本不卡视频在线播放| 日韩国产欧美精品在线| 亚洲精品丝袜日韩| 日韩在线观看高清| 69av视频在线播放| 91精品免费视频| www高清在线视频日韩欧美| 国产综合在线视频| 欧美性视频精品| 国产精品久久77777| 97视频免费观看| 欧美极品少妇xxxxⅹ裸体艺术| 成人97在线观看视频| 国产精品一区二区久久国产| 久久亚洲私人国产精品va|