国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

使用phpexcel解析Excel數(shù)據(jù)表并存儲(chǔ)到數(shù)據(jù)庫(kù)中全過(guò)程

2019-11-11 07:13:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

第一步:Thinkphp中實(shí)例化上傳類(lèi)獲取form表單提交的文件(非ThinkPHP可以直接忽略第一步,直接看第二步)

HTML文件核心代碼

<form action="{:U('Question/add_Excel_post')}" enctype="multipart/form-data" method="post"><input type="file" name="excel_file" class="input"><button class="btn btn-PRimary" type="submit">上傳</button></form>

PHP文件接收上傳的核心代碼

$upload = new /Think/Upload();// 實(shí)例化上傳類(lèi) $upload->maxSize = 3145728 ;// 設(shè)置附件上傳大小 $upload->exts = array('xls', 'xlsx');// 設(shè)置附件上傳類(lèi)型 $upload->rootPath = './'; // 設(shè)置附件上傳根目錄 $upload->savePath = 'Uploads/ExamPaper/'; // 設(shè)置附件上傳(子)目錄 $upload->autoSub = false;//不自動(dòng)生成子文件夾 // 上傳單個(gè)文件 $info = $upload->uploadOne($_FILES['excel_file']);

$info生成上傳信息,并進(jìn)行判斷,如果上傳成功,則拼接上傳到服務(wù)器的文件路徑及名稱(chēng)

if(!$info){ $this->error($upload->getError()); }else{ $file_puth = './'.$info['savepath'].$info['savename']; }

第二步:導(dǎo)入ExcelPHP類(lèi)庫(kù),并對(duì)Excel表格進(jìn)行查詢(xún)解析

ThinkPHP種,第三方類(lèi)庫(kù)的存放文件路徑是:ThinkPHP/Extend/Vendor內(nèi)置類(lèi)庫(kù)路徑常量為VENDOR_PATH.xls文件與.xlax文件的區(qū)別: 版本問(wèn)題 ,XLSX是高版本。 07版以后的擴(kuò)展名都是.xlsx ,是用新的基于xml的壓縮文件格式取代了其目前專(zhuān)有的默認(rèn)文件格式,在傳統(tǒng)的文件名擴(kuò)展名后面添加了字母x(即.docx取代.doc、.xlsx取代.xls,等等),使其占用空間更小,可以向下兼容xls。

在PHP文件中導(dǎo)入PHPExcel類(lèi)庫(kù),并對(duì)Excel表格進(jìn)行解析:

require_once VENDOR_PATH.'PHPExcel_1/PHPExcel/IOFactory.php';require_once VENDOR_PATH.'PHPExcel_1/PHPExcel.php';//判斷文件版本,選擇對(duì)應(yīng)的解析文件if($info['ext']=='xlsx'){ require_once VENDOR_PATH.'PHPExcel_1/PHPExcel/Reader/Excel2007.php'; $objReader = /PHPExcel_IOFactory::createReader('Excel2007'); }else{ require_once VENDOR_PATH.'PHPExcel_1/PHPExcel/Reader/Excel5.php'; $objReader = /PHPExcel_IOFactory::createReader('Excel5');}//解析Excel文件$objPHPExcel = $objReader->load($file_puth);$sheet = $objPHPExcel->getSheet(0);// 讀取第一個(gè)工作表(編號(hào)從 0 開(kāi)始) $highestRow = $sheet->getHighestRow(); // 取得總行數(shù)$highestColumn = $sheet->getHighestColumn(); // 取得總列數(shù)//循環(huán)讀取excel文件,讀取一條,插入數(shù)組一條for($j=2;$j<=$highestRow;$j++) { for($k='A';$k<=$highestColumn;$k++) { //讀取單元格 $ExamPaper_arr[$j][$k]= $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); } }

第三步:將獲取到的數(shù)據(jù)存入數(shù)據(jù)庫(kù)

使用foreach函數(shù),循環(huán)對(duì)字段數(shù)組賦值,然后存入數(shù)據(jù)庫(kù)$question_model=M('question');$question_relationships_model = M('question_relationships');$answer_model = M('answer');foreach ($ExamPaper_arr as $key => $value) {$title_data['q_id'] = empty($value['A'])?0:$value['A'];$title_data['post_title'] = empty($value['B'])?0:$value['B'];$title_data['post_description'] = empty($value['D'])?0:$value['D'];$title_data['post_difficulty'] = empty($value['E'])?0:$value['E'];$title_data['post_date'] = time();$question_model->add($title_data);}
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁都县| 通海县| 容城县| 台东县| 马关县| 留坝县| 恩平市| 耒阳市| 丹巴县| 芜湖市| 屯门区| 嫩江县| 隆昌县| 吉安市| 泽库县| 运城市| 建昌县| 锦州市| 肇州县| 胶州市| 嘉义县| 乌鲁木齐县| 蓝山县| 松滋市| 凤山市| 九江县| 丰镇市| 城口县| 乌拉特中旗| 上饶县| 谷城县| 镇康县| 密云县| 焦作市| 镇康县| 邓州市| 铜陵市| 佛坪县| 余庆县| 密山市| 南投县|