Просмотр полной версии : Excel и .cvs: кириллица заменяется на цепочки вопросительных знаков.
automatix
06.10.2006, 05:26
Доброго времени суток!
Вопрос не по PHP, но я решил запостить его здесь, так как вероятно, что кто-то уже спотыкался об этот камень, решая задачи, подобные той, что сейчас пытаюсь решить я.
Итак. Есть экселевский документ, который надо перевести в объект/массив/SQL. Для этого сохраняю его в формате .cvs, чтобы впоследствии прочесть с помощью fgetcvs. При сохранении эксель выдает мне следующее сообщение: см. атач.
Нечто подобное происходит при сохранении .txt-документа с русскими буквами. Но тогда нужно только нажать "Отмена" и сохранить файл в Юникоде. Тут этот номер не проходит -- сохранить можно только нажав "Да". В противном случае все символы кириллицы превращаются в вопросительные знаки.
Идеи?
Спасибо.
Нечто подобное происходит всегда, поскольку csv файлы не могут содержать листов, макросов и - о ужас - не могут содержать информацию о шрифтах.
Подсказка 1. эксель умеет сохранять файлы в различной кодировке.
Подсказка 2. xls файлы прекрасно могут быть обработаны несколько большим количеством методов. К примеру, покопать в сторону DOM (для работы с экселем через его собственный интерфейс) или XML (как наиболее универсальный метод обмена данными между приложениями).
Подсказка 3. Обратить на форум где-нибудь на tetki.net, тоже не по теме будет, но вдруг кто поможет ?
automatix
06.10.2006, 14:35
На две трети информативно. Благодарю. ))
automatix
06.10.2006, 15:12
Подсказка 1. эксель умеет сохранять файлы в различной кодировке.
Не могу найти...
Подсказка 2. xls файлы прекрасно могут быть обработаны несколько большим количеством методов. К примеру, покопать в сторону DOM (для работы с экселем через его собственный интерфейс)...
Покопал. Но не понял, причем здесь это и как с помощью ДОМ-функций читать таблицы экселя.
1. Ну, тут я только если промолчу. Бери эксель поновее, опен-офис, наконец.
2. Сохранить как XML (HTML) и читать.
automatix
06.10.2006, 16:10
Вот может, кому пригодится:
PHP Excel Parser Pro (http://www.excelparser.com/) -- очень хороший софт, покрайней мере в демке...
Стоит правда 80 баксов...
Spreadsheet_Excel_Reader (http://pear.php.net/pepr/pepr-proposal-show.php?id=304) (доунлоад через "Package documentation") -- преобразует таблицу в объект/двухмерный массив. Очень простая штука, почти ничего, кроме работы с простой таблицей без объединенных ячеек и прочего, насколько я понял, не умеет. Зато дешево (точнее бесплатно) и сердито. ))
automatix
06.10.2006, 16:13
1. Ну, тут я только если промолчу. Бери эксель поновее, опен-офис, наконец.
2. Сохранить как XML (HTML) и читать.
2. Ага, понял. Спасибо.
1. У меня офис 2000. Неужели он не поддерживает возможность сохранять в различных кодировках.
1. Не представляю себе, опен-офисом пользуюсь давно. он перед сохранением csv спрашивает кодировку. Эксель тоже должен уметь.
4. Еще можно покопать в сторону OLE, но это если php собран под винду и не уверен, что вообще умеет такими глупостями заниматься.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.