首先需要到PHPExcel官网下载插件:http://phpexcel.codeplex.com/
然后我将插件存放在 ThinkPHP\Library\Vendor\Classes 中
public function testExcel($filename, $exts){
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入vendor('Classes.PHPExcel');
//创建PHPExcel对象,注意,不能少了\
$PHPExcel=new \PHPExcel();
//如果excel文件后缀名为.xls,导入这个类
if($exts == 'xls'){
vendor('Classes.PHPExcel.Reader.Excel5');
$PHPReader=new \PHPExcel_Reader_Excel5();
}else if($exts == 'xlsx'){
vendor('Classes.PHPExcel.Reader.Excel2007');
$PHPReader=new \PHPExcel_Reader_Excel2007();
}
$data=array();
$data_sum=array();
//dump($PHPReader);exit();
//载入文件
$PHPExcel=$PHPReader->load($filename);
$currentSheet=$PHPExcel->getSheet(0);
//获取总列数
$allColumn=$currentSheet->getHighestColumn();
//获取总行数
$allRow=$currentSheet->getHighestRow();
//循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
for($currentRow=2;$currentRow<=$allRow;$currentRow++){
//从哪列开始,A表示第一列
for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
//数据坐标
$address=$currentColumn.$currentRow;//读取到的数据,保存到数组$arr中,$cell获取了每个单元格的内容,然后再根据需要对数据进行拼装
$cell =$currentSheet->getCell($address)->getValue();
}$this->save_import($data_sum);
}
public function uploadFile(){
header("Content-Type:text/html;charset=utf-8");
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('xls', 'xlsx');// 设置附件上传类
$upload->savePath = '/'; // 设置附件上传目录
//dump($_FILES);exit();
// 上传文件
$info = $upload->uploadOne($_FILES['excelData']);
//dump($info);
//exit();
$filename = 'E:/tt/Uploads'.$info['savepath'].$info['savename'];
$exts = $info['ext'];
//dump($filename);exit;
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功调用导入的方法
$this->testExcel($filename, $exts);
}
}
//时间转换类
public function GetData($val){
$n = intval(($val - 25569) * 3600 * 24); //转换成1970年以来的秒数
$gregorian=gmdate('Y-m-d H:i:s', $n);//格式化时间
return $gregorian;
}