PHPExcel Reader抛出异常

时间:2014-02-22 07:45:24

标签: php mysql codeigniter-2 phpexcel phpexcelreader

我正在尝试加载要使用PHPExcel阅读器对象读取的Excel文件:

$inputFileName = $_FILES['excelimportfile']['tmp_name'];
 //Read your Excel workbook
     try {
           $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
           $objReader = PHPExcel_IOFactory::createReader($inputFileType);
           $objPHPExcel = $objReader->load($inputFileName);
         }catch(Exception $e) {
            $this->session->set_flashdata(
              'error','Error loading file "'.
               pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()
            );
            redirect('admin/zipcode');
         }

但是谁会抛出这个例外?这个 $ objPHPExcel = $ objReader-> load($ inputFileName); 行应该用于生成我认为的异常。例如:

   $objPHPExcel = $objReader->load($inputFileName);
   if(!$objPHPExcel) throw new Exception($objPHPExcel->load_error(),1);

但我在任何地方都找不到这样的东西。现在该做什么???

1 个答案:

答案 0 :(得分:1)

PHPExcel库中的代码本身抛出异常而不是返回false作为错误状态,因为您的上一条评论似乎表明它应该;这表明你并不真正了解例外的运作方式或目的是什么。

PHPExcel从库中的任何位置抛出的异常都可以被代码捕获和处理,无论它们在库中的哪个位置被抛出

load()方法中有一大堆逻辑可以抛出异常(格式错误的文件就是一个例子),而且identify()中的逻辑也可以抛出异常(如果指定的文件不存在) ,或者无法读取,那么identify()方法将抛出异常)....

但很难准确理解你的要求。如果你看一下读者的代码,那些可以引发异常的类中的方法都记录在phpdoc块中,你可以在类代码中看到实际抛出异常的地方。