TP6读取excel内容
TP6读取excel内容
TP6要使用第三方库,使用composer安装扩展这个是最快捷的方式了,记录下安装phpexcel扩展及使用方式;
NO1:命令窗口指到项目跟目录,执行 composer require phpoffice/phpexcel,之后会自动安装相应的扩展包;
NO2:安装完成后,在项目中使用,编写后端上传接口
use PHPExcel;
use PHPExcel_IOFactory;
public function supExcelImport(){
$char_arr = ['A','B','C','D','E','F','G','H','I','J']; //文档内单元格编号
$use_ret = array();
$suffixName = explode('.', $_FILES['file']['name'])[1]; //后缀名
$filePath = 'upexcel/'.$_FILES["file"]["name"]; //文件存储路径
if($suffixName == "xls" || $suffixName == "xlsx"){
if (is_uploaded_file($_FILES["file"]["tmp_name"])) {
if (!move_uploaded_file($_FILES["file"]["tmp_name"], $filePath)) {
$ret = "移动失败";
}else{
$filename = '/www/wwwroot/xxxx/public/'.$filePath; //excel文件绝对路径
$objPHPExcelReader = \PHPExcel_IOFactory::load($filename);
$sheet = $objPHPExcelReader->getSheet(0); // 读取第一个工作表(编号从 0 开始)
$highestRow = $sheet->getHighestRow(); // 取得总行数
$max_char = end($char_arr);
// 一次读取一列
for ($row = 2; $row <= $highestRow; $row++) {
$row_arr = array();
for ($column = 0; $char_arr[$column] != $max_char; $column++) {
$val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
$ustr = strval($val);
$row_arr[] = $ustr;
}
$use_ret[] = $row_arr;
}
unlink($filePath); //清理上传文件
}
}
}
if(is_array($use_ret)){
foreach($use_ret as $value){
//循环内处理读取到的数据
}
$ret = '导入完成';
}else{
$ret = '导入失败';
}
echo $ret;
}
NO3:上面接口即可完成文件内容读取,但是我这里执行时遇到个扩展包错误提示的问题,应该是php版本较高导致的,在某个文件内有个for循环,使用了switch语法,在default下执行语句continue,提示不支持,遇到的话记得自行修改下就可以