Странность импорта CSV-файла: импортируется только при повторном сохранении в Excel

#php #drupal #csv #import

#php #drupal #csv #импорт

Вопрос:

Я немного поражен тем, что происходит с файлом csv (.txt), который я пытаюсь импортировать в MYOB. Используя Drupal CMS с модулями views и views bonus, я могу быстро создать ленту, которая получит необходимые поля и поместит их в текстовый файл csv (с разделителями табуляции). текстовый файл.

Вот где возникают странные проблемы. Если я пытаюсь импортировать файл непосредственно в программу MYOB, записи просто пропускаются, потому что, по-видимому, поле не соответствует данным в файле myob (поле ‘налоговый код при покупке). Однако, если я открою поле txt в Excel, затем повторно сохраню файл (без изменения какого-либо содержимого, ничего), а затем выполню импорт в Myob, все работает на 100%.

Я просмотрел исходный код, чтобы проверить заголовки Content-Type и Content-disposition, но с ними все в порядке.

заголовок(‘Content-type: text/csv; charset=utf-8’); заголовок(‘Content-disposition: вложение; filename=»[thefilename].txt»‘);

Я проверил, чтобы убедиться, что пробелы, разрывы строк и т.д. Удалены из поля.

У кого-нибудь есть идея о том, что здесь может быть не так? Что я должен проверить? Обходной путь работает, но просто вводит дополнительный «ненужный» процесс.

Ответ №1:

Пожалуйста, обратитесь к спецификации формата файла CSV-1203. В частности, обратитесь к Добавлению «Известных проблем при использовании Excel«, в котором объясняется, как Excel может повредить данные, не сообщив вам об этом.

Ответ №2:

Я бы предположил, что Drupal использует окончания строк в стиле unix (http://en.wikipedia.org/wiki/Newline ), и это открытие и сохранение в Excel изменяет их на окончания строк в стиле Windows, которые использует MYOB.