这里的方法都是实用片段,但是在使用过程中还是很方便的,会点PHP的都能看懂并且使用.
<?php
/**
* 安装excel处理类 composer require phpoffice/phpexcel
* 导入excel获取excel的数据
* @return hink
esponseJson
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
* Created on 2018/12/27 0:05
* Created by Dh
*/
public function importExcel()
{
return $this->apiSuc(ActionExcel::importExcelGetArray(request()->file()));
}
/**
* 逻辑处理
* 读取excel文件内容输出数组
* @param $data
* @return array
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
* Created on 2018/12/27 0:00
* Created by Dh
*/
public static function importExcelGetArray($data)
{
$obj = $data['file'];
//上传文件
$info = $obj->move(ROOT_PATH . 'public' . DS . 'uploads'. DS . 'file');
$filePath = $info->getPathname();
//文件名自动判断文件类型
$fileType = PHPExcel_IOFactory::identify($filePath);
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($filePath);
$sheetIndex = $objPHPExcel->getSheetCount();
$resultArray = [];
for ($i = 0;$i < $sheetIndex;$i++) {
$sheetObj = $objPHPExcel->getSheet($i);
//最大行
$highestRow = $sheetObj->getHighestRow();
//最大列
$highestColumn = $sheetObj->getHighestColumn();
for ($row = 1; $row <= $highestRow; $row++){
/ /读取每一行的代码到一个数组中
$rowData = $sheetObj->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
$resultArray['Sheet_' . $i][$row] = $rowData[0];
}
}
return $resultArray;
}
网友评论