1.使用composer下载PHPExcel,首先安装过composer之后,用dos命令行,引入到项目所在目录下,然后输入composer require phpexcel/phpexcel ,然后点回车键
你会发现项目的目录中在vendor的目录下多了一个文件夹(phpexcel),这个文件夹中的东西就是要使用的php中的Excel表格操作
2.上传表单:
先看看表单
php代码:
public function upload() {
//获取表单上传文件
$file = request()->file('file');
if (empty($file)) {
return '请上传文件';
}
$info = $file->validate(['ext' => 'xlsx'])->move(ROOT_PATH . 'public/uploads');//上传验证后缀名,以及上传之后移动的地址
// $info = $file->validate(['size'=>1567888,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public/uploads');
if ($info) {
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'public' . DS . 'uploads' . DS . $exclePath; //上传文件的地址
$objReader = \PHPExcel_IOFactory::createReader('excel2007'); //建立reader对象
$objPHPExcel = $objReader->load($file_name);
$sheet = $objPHPExcel->getSheet();
$highestRow = $sheet->getHighestDataRow(); // 取得总行数
$highestColumn_num = \PHPExcel_Cell::columnIndexFromString($sheet->getHighestDataColumn()); //列数
//$columns = PHPExcel_Cell::getColumn($highestColumn_num);
$columns = array('A', 'B', 'C');
$arr_result = array();
$dealer_element = array();
for ($j = 1; $j <= $highestRow; $j++) {
for ($k = 0; $k < count($columns); $k++) {
//读取单元格
$value = $objPHPExcel->getActiveSheet()->getCell($columns[$k] . $j)->getValue();//这个就是获取每个单元格的值
$value = trim($value);
if (empty($value)) {
$value = NULL;
}
$dealer_element[$k] = $value;
//这里可以根据要求,做一些数据的验证
}
$arr_result[$j] = $dealer_element;
}
return $arr_result;
}
}
返回数据:
{
"1": [
"name",
"class",
"age"
],
"2": [
"张三",
"1",
"5"
],
"3": [
"李四",
"1",
"5"
]
}