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

首頁 > 編程 > PHP > 正文

使用phpexcel解析Excel數據表并存儲到數據庫中全過程

2019-11-11 07:50:16
字體:
來源:轉載
供稿:網友

第一步:Thinkphp中實例化上傳類獲取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();// 實例化上傳類 $upload->maxSize = 3145728 ;// 設置附件上傳大小 $upload->exts = array('xls', 'xlsx');// 設置附件上傳類型 $upload->rootPath = './'; // 設置附件上傳根目錄 $upload->savePath = 'Uploads/ExamPaper/'; // 設置附件上傳(子)目錄 $upload->autoSub = false;//不自動生成子文件夾 // 上傳單個文件 $info = $upload->uploadOne($_FILES['excel_file']);

$info生成上傳信息,并進行判斷,如果上傳成功,則拼接上傳到服務器的文件路徑及名稱

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

第二步:導入ExcelPHP類庫,并對Excel表格進行查詢解析

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

在PHP文件中導入PHPExcel類庫,并對Excel表格進行解析:

require_once VENDOR_PATH.'PHPExcel_1/PHPExcel/IOFactory.php';require_once VENDOR_PATH.'PHPExcel_1/PHPExcel.php';//判斷文件版本,選擇對應的解析文件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);// 讀取第一個工作表(編號從 0 開始) $highestRow = $sheet->getHighestRow(); // 取得總行數$highestColumn = $sheet->getHighestColumn(); // 取得總列數//循環讀取excel文件,讀取一條,插入數組一條for($j=2;$j<=$highestRow;$j++) { for($k='A';$k<=$highestColumn;$k++) { //讀取單元格 $ExamPaper_arr[$j][$k]= $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); } }

第三步:將獲取到的數據存入數據庫

使用foreach函數,循環對字段數組賦值,然后存入數據庫$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);}
上一篇:php 全局變量總結

下一篇:PHP __call()方法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平阳县| 南昌县| 库车县| 邛崃市| 英德市| 福海县| 凉城县| 鱼台县| 元氏县| 汾西县| 萝北县| 宝清县| 岳普湖县| 喀喇沁旗| 墨玉县| 柳林县| 合作市| 罗山县| 南投县| 雷州市| 紫云| 芜湖县| 梅河口市| 祁东县| 教育| 东兴市| 通许县| 衡水市| 郴州市| 双牌县| 阳泉市| 图木舒克市| 阳东县| 桓台县| 闸北区| 潞西市| 彩票| 木里| 新竹市| 苍梧县| 湘阴县|