2016-06-23 21 views
0

getValue()関数を使用してセルの値を取得すると、セルに特殊文字が含まれている場合はfalseを返します。 -8文字ですか?私はgetValue()関数を呼び出す前にそれらを解析するために探しています。私はどんな種類の助けにも感謝します。PHPEXCEL特殊文字でもセルの値を取得する方法

$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; 
    } 

それはまだfalseを返す、私は特殊文字を解析するutf8_decode機能とstr_replaceを試みたが、何も起こりません。私はそれが読者の問題だと思うが、私はそれを管理するコードを見つけることができません。

ありがとうございました!

+0

XLSファイルにはどのような種類の文字とエンコーディングが格納されているかの例を挙げてください。 – Bjoern

+1

PHPExcelは常にUTF-8データを返す必要があります。ファイルが標準スプレッドシート形式のファイルであれば、使用する文字セットはUTF-8に自動的に変換されます。しかし、それがCSVファイル(あるいは時にはHTMLでもある)の場合、ファイルには文字セットに関する情報が含まれていないので、ファイルがUTF-8でない場合は、そのファイルが使用している文字セットを 'setInputEncoding ) 'メソッド –

+0

私は.csvから値を取得しています。また、一部のセルには、ÑやÑなどの特殊文字を持つクライアント名があります。 – Gonsabb

答えて

2

Iは、追加の問題を解決:

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

をそれは、ヘッダ文字セット情報の問題でした。

Mark Ba​​kerに助けてくれてありがとう!

関連する問題