2015-02-24 21 views
6

używać do parsera konwersję XLS csv http://code.google.com/p/php-excel-reader/php Excel czytnika - ignorować komórek symboli specjalnych

<?php  
set_time_limit(300); 
require_once 'excel_reader2.php';  
$data = new Spreadsheet_Excel_Reader("file.xls", false, 'UTF-8');  

$f = fopen('file.csv', 'w');  
for($row = 1; $row <= $data->rowcount(); $row++)  
{  
    $out = '';  
    for($col = 1; $col <= $data->colcount(); $col++)  
    {  
     $val = $data->val($row,$col); 

     // escape " and \ characters inside the cell  
     $escaped = preg_replace(array('#”#u', '#\\\\#u', '#[”"]#u'), array('"', '\\\\\\\\', '\"'), $val);  
     if(empty($val))  
      $out .= ',';  
     else  
      $out .= '"' . $escaped . '",';  
    } 
    // remove last comma (,)  
    fwrite($f, substr($out, 0, -1));  
    fwrite($f, "\n"); 
} 
fclose($f); 

?> 

z jakiegoś powodu dziwne pominięty komórek ofert specjalnych symboli lub - jak ° ®. Jak to naprawić?

+0

spróbuj http://php.net/manual/fr/function.html-entity-decode.php – unixmiah

+0

czy masz jakiś postęp ze swoim problemem? –

Odpowiedz

3

utf8_decode i html_entity_decode roboty dla mnie:

<?php  
set_time_limit(300); 
require_once 'excel_reader2.php';  
$data = new Spreadsheet_Excel_Reader("file.xls", false, 'UTF-8');  

$f = fopen('file.csv', 'w');  
for($row = 1; $row <= $data->rowcount(); $row++)  
{  
    $out = '';  
    for($col = 1; $col <= $data->colcount(); $col++)  
    {  
     $val = $data->val($row,$col); 

     // escape " and \ characters inside the cell  
     $escaped = preg_replace(array('#”#u', '#\\\\#u', '#[”"]#u'), array('"', '\\\\\\\\', '\"'), $val);  
     $escaped = utf8_decode($escaped); 
     //$escaped = html_entity_decode($escaped); 
     if(empty($val))  
      $out .= ',';  
     else  
      $out .= '"' . $escaped . '",';  
    } 
    // remove last comma (,)  
    fwrite($f, substr($out, 0, -1));  
    fwrite($f, "\n"); 
} 
fclose($f); 

?> 

wyjściowa:

"1","2","3","4","5" 
"a","b","c","d","e" 
"6","7","°","9","10" 
"q","w","e","r","t" 
"®","12","13","14","15" 
"z","x","c","v","b" 
Powiązane problemy