记录一下读取excel文件的方法,phpexcel的安装在我的另一篇博客中
/**
* 读取excel文件
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Reader_Exception
*/
public function readExcel() {
// 获取表单上传文件
$file = request()->file('file');
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move($_SERVER['DOCUMENT_ROOT'] . '/uploads');
if ($info) {
$fileurl = $_SERVER['DOCUMENT_ROOT'] . '/uploads/' . str_replace('\\', '/', $info->getSaveName());
set_time_limit(0);
$nowTime = time();
/*读取excel文件,并进行相应处理*/
$fileName = $fileurl;
if (!file_exists($fileName)) {
exit("文件" . $fileName . "不存在");
}
$extension = strtolower( pathinfo($fileName, PATHINFO_EXTENSION) );
if ($extension =='xlsx') {
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
} else {
// ($extension =='xls')
$objReader = PHPExcel_IOFactory::createReader('Excel5');
}
$objPHPExcel = $objReader->load($fileName);
//默认选中sheet0表
$sheetSelected = 0;
$objPHPExcel->setActiveSheetIndex($sheetSelected);
//获取表格行数
$rowCount = $objPHPExcel->getActiveSheet()->getHighestRow();
//获取表格列数
$columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();
/* 循环读取每个单元格的数据 */
for ($column = 'A'; $column <= $columnCount; $column++) {
$row_span_arr[] = $objPHPExcel->getActiveSheet()->getCell($column . 1)->getValue();
}//goodsList
$data = array();
// if (stripos($row_span_arr[0], 'List')) {
if (true) {
//行数循环
for ($row = 1; $row <= $rowCount; $row++) {
//列数循环 , 列数是以A列开始
if ($row > 1) {
for ($column = 'A'; $column <= $columnCount; $column++) {
$row_arr[] = $objPHPExcel->getActiveSheet()->getCell($column . $row)->getValue();
}
$data[] = $row_arr;
unset($row_arr);
}
}
return show('', 0, '上传成功');
} else {
return show('', 0, '所选择的excel不是商品导入文件,请重新操作');
}
} else {
// 上传失败获取错误信息
return show('', 1, '上传失败!');
//return json_encode(['state' => 0, 'message' => $file->getError()]);
}
}