分享經驗是爲了讓你少走彎路————華偉君php
####HTML文件核心代碼:thinkphp
<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']; }
Thinkphp中,第三方類庫的存放文件路徑是:ThinkPHP\Extend\Vendor 內置類庫路徑常量爲 VENDOR_PATH服務器
.xls文件與.xlax文件的區別: 版本問題 ,XLSX是高版本。 07版之後的擴展名都是.xlsx ,是用新的基於XML的壓縮文件格式取代了其目前專有的默認文件格式,在傳統的文件名擴展名後面添加了字母x(即.docx取代.doc、.xlsx取代.xls,等等),使其佔用空間更小,能夠向下兼容xls。函數
####在php文件中導入PHPExcel類庫,並對Excel表格進行解析的代碼:post
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(); } }
少俠,看完了,點個贊噻~ui