Unable to identify a reader for this file
时间: 2024-02-23 15:01:07 浏览: 51
如果你使用 PHPExcel 读取 Excel 文件时遇到 "Unable to identify a reader for this file" 错误,可能是因为你没有安装对应的 PHPExcel Reader。
在 PHPExcel 中,不同的 Excel 文件类型需要使用不同的 Reader 来读取,例如:
- Excel5:读取 Excel 97-2003 文件(.xls)
- Excel2007:读取 Excel 2007+ 文件(.xlsx)
- CSV:读取 CSV 文件
如果你需要读取 Excel 97-2003 文件,需要使用 Excel5 Reader,代码如下:
```
require_once 'PHPExcel/Classes/PHPExcel.php';
require_once 'PHPExcel/Classes/PHPExcel/Reader/Excel5.php';
// 创建一个新的 Excel5 Reader 对象
$objReader = new PHPExcel_Reader_Excel5();
// 加载 Excel 文件
$objPHPExcel = $objReader->load("example.xls");
// 获取第一个工作表
$worksheet = $objPHPExcel->getActiveSheet();
// 获取总行数和总列数
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
// 循环读取每行数据
for ($row = 1; $row <= $highestRow; $row++){
// 循环读取每列数据
for ($col = 'A'; $col <= $highestColumn; $col++) {
$value = $worksheet->getCell($col . $row)->getValue();
echo $value . "\t";
}
echo "\n";
}
```
如果你需要读取 Excel 2007+ 文件,需要使用 Excel2007 Reader,代码如下:
```
require_once 'PHPExcel/Classes/PHPExcel.php';
require_once 'PHPExcel/Classes/PHPExcel/Reader/Excel2007.php';
// 创建一个新的 Excel2007 Reader 对象
$objReader = new PHPExcel_Reader_Excel2007();
// 加载 Excel 文件
$objPHPExcel = $objReader->load("example.xlsx");
// 获取第一个工作表
$worksheet = $objPHPExcel->getActiveSheet();
// 获取总行数和总列数
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
// 循环读取每行数据
for ($row = 1; $row <= $highestRow; $row++){
// 循环读取每列数据
for ($col = 'A'; $col <= $highestColumn; $col++) {
$value = $worksheet->getCell($col . $row)->getValue();
echo $value . "\t";
}
echo "\n";
}
```
如果你需要读取 CSV 文件,需要使用 CSV Reader,代码如下:
```
require_once 'PHPExcel/Classes/PHPExcel.php';
require_once 'PHPExcel/Classes/PHPExcel/Reader/CSV.php';
// 创建一个新的 CSV Reader 对象
$objReader = new PHPExcel_Reader_CSV();
// 加载 CSV 文件
$objPHPExcel = $objReader->load("example.csv");
// 获取第一个工作表
$worksheet = $objPHPExcel->getActiveSheet();
// 获取总行数和总列数
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
// 循环读取每行数据
for ($row = 1; $row <= $highestRow; $row++){
// 循环读取每列数据
for ($col = 'A'; $col <= $highestColumn; $col++) {
$value = $worksheet->getCell($col . $row)->getValue();
echo $value . "\t";
}
echo "\n";
}
```
以上代码中,需要根据需要使用不同的 Reader,然后使用对应的 load 方法加载文件即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)