/**
* 本地上传
* 上传excel文件并获取数据
*/
public function uploadExcel()
{
$file = request()->file('file');
if (empty($file)) {
$this->error('文件不能为空');
}
$dirName = 'user_plan_excel';
$mSize = 2;
$info = $file->validate(['size'=>1024*1024*$mSize,'ext'=>'xls,xlsx'])
->rule("uniqid")->move(ROOT_PATH . "public/uploads/$dirName");
if (empty($info)) {
$this->error('上传文件失败');
}
$fileName = $info->getFilename();
$filePath = $info->getPath().DS.$fileName;
$res = $this->read_excel($filePath);
unset($info);
unlink($filePath);//删除excel文件
if ($res['code'] != 200) {
$this->result($res['msg'], [], $res['code']);
}
$this->success('success', ['data' => $res['data']]);
}
/**
* 读取excel
* @param $re_path
* @return array
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Reader_Exception
*/
function read_excel($re_path)
{
if (!file_exists($re_path)) {
$res["code"] = 500;
$res["msg"] = "文件不存在";
return $res;
}
$obj_reader = \PHPExcel_IOFactory::createReaderForFile($re_path);
$obj_reader->setReadDataOnly(true); //使用文件流读取文件
$obj_excel = $obj_reader->load($re_path, $encode = "utf-8");
if (!$obj_excel) {
$res["code"] = 500;
$res["msg"] = "文件读取失败";
return $res;
}
//取数据
$excel_array = $obj_excel->getSheet(0)->toArray();
$retData = [];
foreach ($excel_array as $key=>$item) {
if ($key == 0){
continue;
}
$retData[$key-1] = (int)$item[0];
}
// PHPExcel对象销毁
$obj_excel->disconnectWorksheets();
unset($obj_excel);
unset($obj_reader);
$res["code"] = 200;
$res["msg"] = "文件成功";
$res["data"] = $retData;
return $res;
}
Excel上传
最新推荐文章于 2024-07-22 16:42:40 发布