barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

вторник, 28 февраля 2012 г.

Excel не открывает csv-файлы, которые сам же только что сохранил

Проблема:

Создаю простенькую табличку, в ячейке 1:1 которой находится значение "ID". Сохраняю как csv, закрываю, пытаюсь открыть. Excel сначала говорит что формат файла отличается от указываемого в расширении (что уже странно), после чего выдает сообщение "Ошибка чтения записи #n", а затем - "Приложению Microsoft Excel не удается преобразовать некоторые ячейки. Число обнаруженных ошибок: 1" и файл открывается пустым.

Причина:

Оказывается, если файл начинается с последовательности заглавных букв "ID", то Excel полагает, что формат этого файла SYLK, и, естественно, открыть его как SYLK у него не получается. Этот баг описан на саппорте MS и, судя по всему, является уже старым и исправлять его никто не собирается.

Решение:

Перед "ID" в ячейке 1:1 поставить, скажем, пробел. Тогда файл откроется нормально.

22 комментария:

  1. Жесть. Самый страшный фикс моей жизни ID -> oID...
    Спасибо за заметочку, помогла.

    Эмоции по теме - http://cs9556.vkontakte.ru/u26843742/-14/x_9814291d.jpg

    ОтветитьУдалить
  2. спасибо! помогло:)

    ОтветитьУдалить
  3. Спасибо, чуть с ума не сошел из за ID

    ОтветитьУдалить
  4. Етить твою мать! Битый час дебажил на сервере код экспорта отчетов. Мать их, майкрософт!
    Спасибо!

    ОтветитьУдалить
  5. спасибо огромное, облегчили работу

    ОтветитьУдалить
  6. спасибо за инфу,
    ID -> id \ Id \ iD работает, да

    ОтветитьУдалить
  7. Спасибо! Слава Богу, мучился недолго, довольно быстро нагуглилась Ваша запись :).

    ОтветитьУдалить
  8. Спасибо!) Вы меня спасли просто...)

    ОтветитьУдалить
  9. огромное спасибо!!!

    ОтветитьУдалить
  10. Какой же тупой баг!! Спасибо)

    ОтветитьУдалить
  11. Спасибо чувак. Ну это просто пипец

    ОтветитьУдалить
  12. Всё проще гораздо: кодирование в UTF-8 (а не в UTF-8 без BOM)

    ОтветитьУдалить
    Ответы
    1. Excel при работе с CSV использует ANSI-кодировку, а не UTF8. Если перекодировать сохраненный файл в UTF-8, то проблема с ID уйдет, вот только если в файле была кириллица, она в Excel превратится в кракозябры.

      Удалить
  13. OMG! Гениальное решение (: И не надо никаких перекодировок итд.

    ОтветитьУдалить
  14. Спасибо большое за решение!

    ОтветитьУдалить
  15. Спасли, спасибо!

    ОтветитьУдалить
  16. Спасибо большое, минус бага!!!

    ОтветитьУдалить