分享经验是为了让你少走弯路————华伟君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