用的是thinkcmf5.3 ,本地环境phpstudy
首先安装phpexcel,我用的是composer直接安装
composer require phpoffice/phpexcel
因为头一次用,所以比较诡异
然后引入
use PHPExcel_IOFactory;
use PHPExcel;
public function excel_post()
{
header("content-type:text/html; charset=utf-8");
$PHPExcel = new \PHPExcel();
$objPHPExcel = new \PHPExcel();
if($this->request->isPost()){
$file_url = input('file_url');
$file_name = input('file_name');//文件名
$file_url = './upload/'.$file_url;//文件url
$extension = cmf_get_file_extension($file_name);//文件扩展名
if(empty($file_url)){
$this->error('请先上传excel!');
}
if($extension == 'xlsx'){
$objReader =PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($file_url, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else if($extension == 'xls'){
$objReader =PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_url, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else{
$this->error('请上传Excel格式的文件!','');
}
$excel_array=$objPHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$data = [];
foreach($excel_array as $k=>$v) {
$data[$k]['name'] = $v[0];
$data[$k]['phone'] = $v[1];
$data[$k]['status'] = 0;
$data[$k]['approval_status'] = 0;
$data[$k]['edit_time'] = time();
}
if(Db::name('referee')->insertAll($data)){
//写入日志
$last_info=serialize($data);
$rizhi_data=array(
'action'=>'批量添加的仲裁员',//动作
'user_id'=>cmf_get_current_admin_id(),//用户信息
'time'=>time(),//操作时间
'details'=>$last_info,//详情
'type'=>'1',// 0 案件信息 1 仲裁员管理
);
Db::name('journal')->insert($rizhi_data);
$this->success('导入数据成功!', url('referee/index/index'));
} else {
$this->error('导入数据失败!', url('referee/index/index'));
}
}
}
这里是前台的
<form action="{:url('referee/index/excel_post')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
<div class="row">
<div class="col-md-2 col-md-offset-4">
<input id="file-1" type="hidden" name="file_url" >
<input id="file-1-name" type="text" name="file_name" title="" class="form-control">
</div>
<div class="col-md-2">
<a href="javascript:uploadOne('图片上传','#file-1','file');" class="btn btn-success">上传excel</a>
</div>
</div>
<div class="form-group margin-top-20">
<div class="col-md-offset-4 col-md-2"><!-- js-ajax-submit -->
<button type="submit" class="btn btn-primary ">确定</button>
<a class="btn btn-default" href="{:url('ReportUser/index')}">{:lang('BACK')}</a>
</div>
</div>
</form>