0

我正在尝试扫描数百个文件夹,每个文件夹都包含一个 excel 文件。

这是简化的工作流程

  • 循环扫描文件夹
  • 获取第一个文件夹名称并通过一些正则表达式运行它(从名称中获取一些信息)
  • 打开文件夹并打开里面的excel文件
  • 扫描 excel 文件以获取信息(使用 PHPExcel)
  • 将所有内容保存到数据库

好的,所以这一切都很好,除非我遇到损坏的 excel 文件。

那么问题是 PHPEXCEL 库无法读取它并且它通过返回一个“通知:未定义的偏移量:”这打破了我的foreach循环。

所以这就是我正在寻找的: 一种以某种方式跳过或错误和通知的方法,并继续下一个文件夹和文件

有办法吗?谢谢你的帮助。

好的,这是 foreach 循环:

foreach ($inputFileName as $key => $fileName) {
$objReader = PHPExcel_IOFactory::load($fileName);

$activeSheet = $objReader->getActiveSheet()->toArray(null,false,true,false);

echo "<pre>";
    echo $key;
echo "</pre>";
}
4

2 回答 2

1

只是一个猜测:

foreach ($inputFileName as $key => $fileName) {
    $objReader = PHPExcel_IOFactory::load($fileName);

    if ($objReader) {
        $activeSheet = $objReader->getActiveSheet()->toArray(null,false,true,false);

        echo "<pre>";
            echo $key;
        echo "</pre>";
    }
}

false函数在失败时返回是很常见的。

于 2013-10-10T08:40:56.303 回答
0

也许您可以在脚本开头使用函数 error_reporting 来跳过通知:

error_reporting(E_ERROR | E_WARNING | E_PARSE);

完成治疗后将其恢复为原始值:

error_reporting(-1); //Report all errors

你可以在这里找到更多信息:http: //php.net/manual/fr/function.error-reporting.php

于 2013-10-10T08:29:44.887 回答