test_import.html内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<meta charset="UTF-8">
<title>uploadExcel</title>
<script>
</script>
</head>
<body>
<form action="http://localhost:xx/xxxx/import" method="post" enctype="multipart/form-data">
<p>First name: <input type="file" name="excelName" /></p>
<input type="submit" value="Submit" />
</form>
</body>
</html>
服务端代码为:
header('Content-Type:text/html; charset= utf-8');
$name = $_FILES['excelName']['name'];
$size = $_FILES['excelName']['size'];
// 判断文件的类型
$type = strstr($name, '.');
if ($type != ".xlsx" ) {
echo "导入文件类型不符合要求";
}
$file = $_FILES['excelName']['tmp_name'];
$data = getDataByXlsx($file);
foreach($data as $d)
{
var_dump($d);
echo "\r\n";
}
die();
public function getDataByXlsx($path)
{
/*dirname(__file__): 当前代码所在的目录,$path: ”/文件名“ */
$excelObj = new LExcelHelper();// 之前有提到PHPExcel的命名空间使用
$PHPReader = \PHPExcel_IOFactory::createReaderForFile($path);
/*加载当前目录下边的文件*/
$PHPExcel = $PHPReader->load($path);
/*获取表的第一个sheet*/
$currentSheet = $PHPExcel->getSheet(0);
/*获取表里内容的最大列数*/
$allColumn = $currentSheet->getHighestColumn();
/*获取表里内容的最大行数*/
$allRow = $currentSheet->getHighestRow();
$data = array();
for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
for($currentColumn= 'A'; $currentColumn<= $allColumn; $currentColumn++){
$address = $currentColumn.$currentRow;
$val = $currentSheet->getCell($address)->getValue();
$data[$currentRow - 1][$currentColumn] = $val;
}
}
if (empty($data)) {
return ['error' => 1, 'message' => 'data is empty'];
}
return $data;
}