PHPExcel阅读器中三个bool值的目的是什么?

时间:2017-03-07 10:23:10

标签: excel yii2 phpexcel phpexcelreader

我正在使用PHPExcel阅读器从我的Yii2应用程序中的Exce文件中读取数据。 这是我用过的代码:

$objPHPExcel = new \PHPExcel();
        $fileName = Yii::getAlias('@webroot/trash/trash_vatout/') . $name;
        $inputFiles = fopen(Yii::getAlias('@webroot/trash/trash_vatout/') . $name, "r");
        try {
            $inputFileType = \PHPExcel_IOFactory::identify($fileName);
            $objReader = \PHPExcel_IOFactory::createReader($inputFileType);
            $objPHPExcel = $objReader->load($fileName);
        } catch (Exception $ex) {
            die('Error');
        }
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestDataRow();
        $highestColumn = $sheet->getHighestDataColumn();
        $colNumber = PHPExcel_Cell::columnIndexFromString($highestColumn);
        $col = $colNumber - 1;
        $arrayData = [];

   $bool1 = NULL;            //first bool value
   $bool2 = NULL;            //second bool value
   $bool3 = NULL;            //third bool value
   for ($row = 1; $row <= $highestRow; ++$row) {
     $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, $bool1, $bool2, $bool3);
     if (!is_null($rowData[0][$col])) {
        $arrayData[] = array_map(function($values) {
           $tempArrayKey = [];
           foreach ($values as $key => $value) {
               $newKey = $key + 1;
               $tempArrayKey[] = $newKey . '_' . $value;
           }
           return $tempArrayKey;
     }, $rowData);
   }
  }

我在一些来源的教程后使用它。 在行代码$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, $bool1, $bool2, $bool3);中,它已被设置为三个布尔值。在我的情况下,我将它们全部设置为 NULL

任何人都知道实际上bool值的目的是什么?

我已尝试多次阅读文件,如果我没错,第二个bool值设置为读取 Excel公式

但其他人怎么样?

感谢。

1 个答案:

答案 0 :(得分:0)

rangeToArray() method 的签名是

/**
 * Create array from a range of cells
 *
 * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1")
 * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist
 * @param boolean $calculateFormulas Should formulas be calculated?
 * @param boolean $formatData Should formatting be applied to cell values?
 * @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero
 *                               True - Return rows and columns indexed by their actual row and column IDs
 * @return array
 */

所以

  • $bool1 - 混合$nullValue 如果单元格不存在(可以是任何数据类型/值),则在数组条目中返回值
  • $bool2 - 布尔$calculateFormulas 应该计算公式吗?
  • $bool3 - 布尔$formatData 格式应该应用于单元格值吗?