PHPEXCEL 如何在有特殊字符的情况下获取单元格值

PHPEXCEL how to get cell value even with special characters

当我使用函数 getValue() 获取单元格值时,如果单元格包含特殊字符,它 returns false,是否有任何解决方案来获取内容,即使包含非 UTF-8 字符?我希望在调用 getValue() 函数之前解析它们。我将不胜感激任何帮助。

$objPHPExcel = $objReader->load($filename);
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $i=0;
        $record = array();

        foreach ($objWorksheet->getRowIterator() as $row) 
        {
            $cellIterator = $row->getCellIterator();
            $cellIterator->setIterateOnlyExistingCells(false);
            foreach ($cellIterator as $cell)
            {
                $val = $cell->getValue();
                // $val returns false or empty string ('') when the cell has special characters like ñ or another one
                $record[$i][] = $val;
            }
            $i++;
            if($i==$vueltas )
                return $record;
        }
        return $record;
    }

我尝试使用 utf8_decode 函数和 str_replace 来解析特殊字符,但没有任何反应,它仍然返回 false。我认为这是一个 reader 问题,但我找不到管理它的代码。

感谢您的帮助!

我通过添加解决了问题:

$objReader = PHPExcel_IOFactory::createReader('CSV');
$objReader->setInputEncoding('ISO-8859-1');

这是 header 字符集信息的问题。

感谢 Mark Ba​​ker 的帮助!