PHP-Excel-Reader - Problem mit UTF-8
Ich benutze PHP-Excel-Reader 2.21 zum Konvertieren von XLS-Dateien in CSV. Ich habe ein einfaches Skript dafür geschrieben, aber ich habe einige Probleme mit Unicode-Zeichen. Es werden keine Werte aus einigen Zellen zurückgegeben.
Zum Beispiel hat es keine Probleme mit dem Zelleninhaltceník položek
aber habe Probleme mitnákup
, VÝROBCE
, PÁS
, HRUBÝ
,NÁKLADNÍ
und einige andere. In diesen Zellen wird ein leerer Wert ""
).
Hier ist das Code-Snippet, das ich für die Konvertierung verwende:
<?php
set_time_limit(120);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader("cenik.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);
?>
Beachten Sie, dass der Zellen- und Zeilenindex bei 1 beginnt. Vorschläge?