【问题标题】:PHPEXCEL how to get cell value even with special charactersPHPEXCEL如何获取单元格值,即使有特殊字符
【发布时间】:2016-10-26 04:12:01
【问题描述】:

当我使用函数 getValue() 获取单元格值时,如果单元格包含特殊字符,它会返回 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。我认为这是一个读者问题,但我找不到管理它的代码。

感谢您的帮助!

【问题讨论】:

  • 请举例说明您的 XLS 文件中存储了什么样的字符和编码。
  • PHPExcel 应该总是返回 UTF-8 数据;如果文件是标准电子表格格式文件,那么它使用的任何字符集都应自动转换为 UTF-8。但是,如果它是 CSV 文件(有时也是 HTML),则该文件不包含有关字符集的信息,因此如果文件不是 UTF-8,则必须明确告诉读者文件使用的是什么字符集,使用 setInputEncoding()方法
  • 我从 .csv 中获取值,并且某些单元格的客户端名称带有特殊字符,例如 ñ 或 Ñ。

标签: php excel utf-8 special-characters phpexcel


【解决方案1】:

我解决了添加问题:

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

是header charset信息的问题。

感谢马克贝克的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多