corvus
Guest
xls->csv, unicode->win
Казалось бы, избитые темы, и результат поиска по форуму (по этим словам) даёт кучу результатов. Но, покопавшиись в этой куче, пришёл к выводу, что дельных вариантов мало (а половина примеров вообще не работает).
Задача - сконвертировать файл xls в csv средствами (а не самого Excel).
За основу взят Excel file parser v 2.0 ( от ZAKKIS Tech.).
Вот что получилось:
http://meteocenter.net/demo/dist.zip
Попутно пришлось решить задачу перекодировки шняг вида
ї в нормальные символы кириллицы (для записи в базу, например) - ничего подходящего при всём обилии ссылок на форуме не нашлось. А ларчик открывается примерно так:
Казалось бы, избитые темы, и результат поиска по форуму (по этим словам) даёт кучу результатов. Но, покопавшиись в этой куче, пришёл к выводу, что дельных вариантов мало (а половина примеров вообще не работает).
Задача - сконвертировать файл xls в csv средствами (а не самого Excel).
За основу взят Excel file parser v 2.0 ( от ZAKKIS Tech.).
Вот что получилось:
http://meteocenter.net/demo/dist.zip
Попутно пришлось решить задачу перекодировки шняг вида
ї в нормальные символы кириллицы (для записи в базу, например) - ничего подходящего при всём обилии ссылок на форуме не нашлось. А ларчик открывается примерно так:
PHP:
function uni_win($in) {
$out= $in;
preg_match_all('/&#[\d]{4}/', $in, $recs);
foreach($recs as $r)
foreach($r as $rec) {
$num = substr($rec, 2, 4);
$newrec = chr($num-1040+176);
$out = str_replace($rec, $newrec, $out);
}
preg_match_all('/&#[\d]{2}/', $out, $recs);
foreach($recs as $r)
foreach($r as $rec) {
$num = substr($rec, 2, 2);
$newrec = chr($num);
$out = str_replace($rec, $newrec, $out);
}
$out = convert_cyr_string($out, 'i', 'w');
return $out;