phpexcel导入excel数据使用方法实例


使用PHPExcel导入Excel数据的过程主要包括以下步骤。请注意,PHPExcel库已经不再维护,但以下示例仍然有助于理解基本的Excel导入流程。在实际应用中,建议考虑使用PHPSpreadsheet等更新且维护良好的库。

### PHPExcel导入Excel数据步骤

1. **下载并引入PHPExcel库**

- 首先,需要从PHPExcel的官方渠道(虽然PHPExcel已停止维护,但可以通过旧版资源获取)或GitHub等开源平台下载PHPExcel库。

- 将下载的库文件解压,并将相关PHP文件包含到你的项目中。通常,你需要包含`PHPExcel.php`和`PHPExcel/IOFactory.php`等核心文件。


   require_once 'PHPExcel.php';
   require_once 'PHPExcel/IOFactory.php';
   

2. **处理文件上传**

- 在HTML表单中,允许用户选择Excel文件并上传。

- 在PHP脚本中,处理文件上传,并获取文件路径。


   if (!empty($_FILES['excel_file']['name'])) {
       $tmp_file = $_FILES['excel_file']['tmp_name'];
       $file_path = 'path/to/your/directory/' . $_FILES['excel_file']['name'];
       if (move_uploaded_file($tmp_file, $file_path)) {
           // 文件上传成功,继续处理
       } else {
           // 文件上传失败,处理错误
       }
   }
   

3. **读取Excel文件**

- 使用PHPExcel的`IOFactory`类来创建读取器(Reader)。

- 加载Excel文件,并获取活动工作表(Worksheet)。


   $inputFileType = PHPExcel_IOFactory::identify($file_path);
   $objReader = PHPExcel_IOFactory::createReader($inputFileType);
   $objPHPExcel = $objReader->load($file_path);
   $sheet = $objPHPExcel->getActiveSheet();
   

4. **遍历工作表中的数据**

- 遍历工作表中的行和列,读取每个单元格的值。


   $highestRow = $sheet->getHighestRow(); // 获取总行数
   $highestColumn = $sheet->getHighestColumn(); // 获取总列数
   $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);

   for ($row = 1; $row <= $highestRow; $row++) {
       for ($col = 0; $col < $highestColumnIndex; $col++) {
           $cellValue = $sheet->getCellByColumnAndRow($col, $row)->getValue();
           // 处理$cellValue,例如保存到数据库
       }
   }
   

5. **处理数据**

- 根据业务需求处理读取到的数据,例如保存到数据库或进行其他逻辑处理。

6. **错误处理和清理**

- 确保在代码中加入适当的错误处理逻辑,如文件不存在、读取错误等。

- 完成后,清理资源,如关闭文件句柄等(虽然PHPExcel自动处理这些,但在其他上下文中可能需要手动处理)。

### 注意事项

- PHPExcel库已不再维护,对于新项目,建议使用PHPSpreadsheet库,它提供了与PHPExcel类似的功能,但更加现代化和易于维护。

- 考虑到安全性和性能,对上传的文件进行适当的验证和清理是很重要的。

- 在处理大量数据时,考虑使用批处理或分页处理来减少内存消耗和提高效率。

以上是使用PHPExcel导入Excel数据的基本步骤和注意事项。希望这能帮助你理解并实现Excel数据的导入功能。