mysql+e+文件+xls_TP5+PHPexcel导入xls,xlsx文件读取数据

首先:在extend里面引入PHPexcel文件,直接根目录导入进去

3a0ab3ffa2616158fbcde4f5c00f4e81.png

html创建上传按钮

上传excel

上传文件

立即提交

重置

layui.use(['form','upload'],function(){

var form=layui.form;

var upload=layui.upload;

upload.render({ //允许上传的文件后缀

elem: '#myfile'

,url: "{:url('sale/do_upload')}"

,accept: 'file' //普通文件

,exts: 'xls|excel|xlsx' //只允许上传压缩文件

,done: function(res){

if(res.code==1){

layer.msg('上传成功,已解析数据',{icon:6});

}else{

layer.msg('解析失败',{icon:5});

}

}

});

form.on('submit(formsub)',function(data){

layer.msg('导入数据具体详情未协商确认,待确认后处理');

return false;

})

})

在上传后的sale/do_upload中去进行解析上传的excel

public function do_upload(){

//引入文件

\think\Loader::import('PHPExcel.PHPExcel');

$objPHPExcel = new \PHPExcel();

//获取表单上传文件

$file = request()->file('file');

$info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public' . DS . 'uploads');

//数据为空返回错误

if(empty($info)){

$output['status'] = false;

$output['info'] = '导入数据失败~';

$this->ajaxReturn($output);

}

//获取文件名

$exclePath = $info->getSaveName();

//上传文件的地址

$filename = ROOT_PATH . 'public' . DS . 'uploads'.DS . $exclePath;

$extension = strtolower( pathinfo($filename, PATHINFO_EXTENSION) );

\think\Loader::import('PHPExcel.IOFactory.PHPExcel_IOFactory');

if ($extension =='xlsx') {

$objReader = new \PHPExcel_Reader_Excel2007();

$objExcel = $objReader ->load($filename);

} else if ($extension =='xls') {

$objReader = new \PHPExcel_Reader_Excel5();

$objExcel = $objReader->load($filename);

}

$excel_array=$objExcel->getsheet(0)->toArray(); //转换为数组格式

array_shift($excel_array); //删除第一个数组(标题);

array_shift($excel_array); //删除th

$data=[];

foreach ($excel_array as $k=>$v){

$data[$k]["danhao"]=$v[0];//单号

$data[$k]["type_name"]=$v[1];//类型名称

$data[$k]["name"]=$v[2];

$data[$k]["number"]=$v[3];

$data[$k]["price"]=$v[4];

$data[$k]["danwei"]=$v[0];

$data[$k]["create_user"]=$v[5];

$data[$k]["create_time"]=$v[6];

$data[$k]["remark"]=$v[7];

}

$msg=[

'code'=>1,

'msg'=>'已获取信息',

];

$msg['data']['src']=$filename;

$msg['data']['data']=$data;

return json_encode($msg);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值