TP5 PHPExcel上传如何覆盖旧数据
如何覆盖重复的数据 求大神指点
public function dr()
{
if(request()->ispost()) {
header("content-type:text/html;charset=utf-8");
$filelink = request()->file('gt');
$info = $filelink->move(ROOT_PATH . '/public/' . DS . 'uploads/gt');
$file_name = ROOT_PATH . 'public' . DS . 'uploads/gt' . DS . $info->getsaveName();
//dump($file_name);die();
$fnarray=explode('.', $file_name);
$file_suffix = strtolower(array_pop($fnarray));
$allow_type = 'xlsx';
if ($file_suffix != $allow_type) {
$this->error('上传的格式不正确');
}
//判断导入表格后缀格式
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
import('phpexcel.PHPExcel', EXTEND_PATH);//extend是放置自定义或者其他类文件的。vendor目录是放置composer类库文件的。
//创建对象
$objReader = new \PHPExcel();
$objReader->exts = array('xlsx');
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = \PHPExcel_IOFactory::load("{$file_name}");
$arr = $objPHPExcel->getsheet(0)->toArray();
//dump($arr);exit;
//加载文件内容,编码utf-8
$obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8');
//$obj_PHPExcel->setInputEncoding('utf-8');
//转换为数组格式
$excel_array = $obj_PHPExcel->getsheet(0)->toArray();
//array_shift($excel_array);//删除第一行
$i = 1;
$len = count($excel_array);
for ($i = 2; $i <= $len; $i++)//这个地方根据需要,一般第一行是名称,所以从第二行开始循环,也可以从第一行开始
{
//数据库字段和excel列相对应
$data["ch"] = $objPHPExcel->getActiveSheet()->getCell("D" . $i)->getValue();
$data["qdh"] = $objPHPExcel->getActiveSheet()->getCell("E" . $i)->getValue();
$data["ydh"] = $objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();
$data["xh1"] = $objPHPExcel->getActiveSheet()->getCell("G" . $i)->getValue();
$data["xh2"] = $objPHPExcel->getActiveSheet()->getCell("H" . $i)->getValue();
$data["fz"] = $objPHPExcel->getActiveSheet()->getCell("I" . $i)->getValue();
$data["dz"] = $objPHPExcel->getActiveSheet()->getCell("J" . $i)->getValue();
$data["rxtime"] = $objPHPExcel->getActiveSheet()->getCell("K" . $i)->getValue();
$res = db('test')->insert($data);
unset($info);
}
if($res){
unlink($file_name);
$this->success('导入成功');
}else
{
$this->error('导入失败',url('index/index/index/'));
}
}
$list=db('test')->count('*');
$rs=db('test')->paginate(15);
$this->assign('rs',$rs);
$this->assign('list',$list);
return view();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论