【发布时间】: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