我觉得自己上次写的跟狗屎一样,不清不楚,自己拿着还是捣鼓了将近10分钟才弄出来,不划算,这次整个全套的
前期准备工作
1.首先在PHPExcel官网上面下载安装包下载地址为:https://github.com/PHPOffice/PHPExcel
将下载下来的安装包解压后,如下图所示,
只需要里面的classes文件夹,将classes文件重命名为PHPExcel
2.将重命名后的classes文件夹(即PHPExcel)复制到tp5框架下的vendor文件下
开发步骤:
第一步:前端写个上传文件
直接贴代码:
Title
第二步:建立控制器,写好接口
fetch('import');
}
public function import()
{
//引入PHPExcel
header("content-type:text/html; charset=utf-8");
vendor("PHPExcel.PHPExcel");
$file = request()->file('file');
// var_dump($file);exit();
// 移动到框架应用根目录/public/uploads/ 目录下
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
$filename = ROOT_PATH . 'public' . DS . 'uploads' . DS . $info->getSaveName();
} else {
// 上传失败获取错误信息
return array("resultcode" => -4, "resultmsg" => "文件上传失败", "data" => $file->getError());
}
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if ($extension == 'xlsx') {
$PHPReader = new \PHPExcel_Reader_Excel2007();
} else if ($extension == 'xls') {
$PHPReader = new \PHPExcel_Reader_Excel5();
} else if ($extension == 'csv') {
$PHPReader = new \PHPExcel_Reader_CSV();
}
//区分上传文件格式
/* if($extension == 'xlsx') {
$PHPReader =\PHPExcel_IOFactory::createReader('Excel2007');
}else if($extension == 'xls') {
$PHPReader = \PHPExcel_IOFactory::createReader('Excel5');
}*/
if (file_exists($filename)) {//文件上传成功
$filename = iconv('utf-8', 'gbk', $filename);
if (file_exists($filename)) {//如果文件存在
// $PHPReader = new \PHPExcel_Reader_Excel5();
//载入excel文件
$PHPExcel = $PHPReader->load($filename);
$sheet = $PHPExcel->getActiveSheet(0);//获得sheet
$highestRow = $sheet->getHighestRow(); // 取得共有数据数
$data = $sheet->toArray();
for ($i = 1; $i < $highestRow; $i++) {
//这里的处理逻辑根据自己的需求来
}
} else {
return array("resultcode" => -5, "resultmsg" => "文件不存在", "data" => null);
}
}
}
}
}