PHP Spreadsheet 读取INPUT上传的excel文件
时间: 2024-09-25 09:11:31 浏览: 67
PHP Spreadsheet是一个强大的PHP库,用于处理Microsoft Excel(.xls, .xlsx, .xlsm等)和Google Sheets (.csv) 文件。如果你想要在PHP中读取用户通过HTML表单上传的Excel文件,可以按照以下步骤操作:
1. 引入phpspreadsheet库:
```php
require_once 'path/to/PHPExcel/IOFactory.php';
```
这里假设你已经下载并包含了phpspreadsheet的源码或者通过Composer安装了它。
2. 获取上传的文件:
```php
$upload_dir = "uploads/";
$fileName = basename($_FILES['file']['name']);
$fileType = $_FILES['file']['type'];
$fileTempName = $_FILES['file']['tmp_name'];
// 检查文件是否为Excel文件
if (stristr($fileType, 'application/vnd.ms-excel') || stristr($fileType, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')) {
$filePath = $upload_dir . $fileName;
move_uploaded_file($fileTempName, $filePath);
} else {
echo "只支持Excel文件(.xls, .xlsx)";
return;
}
```
3. 使用IOFactory读取文件内容:
```php
try {
$inputFileType = IOFactory::identify($filePath);
$objPHPExcel = IOFactory::load($filePath, $inputFileType);
} catch (Exception $e) {
die('Error loading file "'.pathinfo($filePath,PATHINFO_BASENAME).'": '. $e->getMessage());
}
```
4. 选择工作表并读取数据:
```php
$worksheet = $objPHPExcel->getActiveSheet();
$data = [];
foreach ($worksheet->getRowIterator() as $row) {
$rowData = [];
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(FALSE); // 包含空单元格
foreach ($cellIterator as $cell) {
$rowData[] = $cell->getValue();
}
$data[] = $rowData;
}
// 现在$data数组里就是你所需的工作表数据
```
阅读全文