Excel Mac - некоторые текстовые файлы не могут быть открыты / импортированы («серые»)

3

Немного странный. Я использую Excel для обработки некоторых данных в нескольких .txt файлах.

Когда я пытаюсь импортировать их с помощью Data> Get External Data> Import Text File:

Excel Импорт текстового файла

Подобно тому, как я это делал много раз в прошлом, я получаю диалоговое окно «Выбор файла», но когда я просматриваю папку, «выбирается» только пара файлов; остальные «серые»:

** Некоторые ** исходные файлы затенены

Там нет различий между файлами, которые я вижу, чтобы оправдать разницу. Единственная «логика» заключается в том, что «исходный» файл (назовем его 20150728 - SOURCE.TXT) приходит по электронной почте с компьютера с Windows, а два других заблокированных файла ( 20150728 - Source Fragment 3.TXTи 20150728 - Source Fragment 3 copy.TXT) являются копией источника, где я удалил несколько строк, и Вторая копия полученного файла, в то время как незаблокированные начинались как Источник, где я удалил строки, а затем сделал «Сохранить как» в TextWrangler ...

Я могу обойти эту проблему, просто скопировав содержимое «серых» файлов в новый документ в TextWrangler и сохранив его, но я хотел бы понять причину такого поведения.

Выполнение fileв рассматриваемых файлах показывает, что они похожи, если не совпадают:

Mac:samples jjarava$ file 201507*txt
20150728 - Source Fragment 3.TXT:      ASCII text
20150728 - Source Framgent 1.TXT:      ASCII text
20150728 - Source Fragment 1.TXT:      ASCII text
20150728 - Source.TXT:                 ASCII text, with CRLF line terminators
20150728 - Source Fragment 3 copy.TXT: ASCII text

Я немного "застрял" в том, что проблема может быть. У меня такое чувство, что это одна из тех «неясных причуд Mac», которые очень сложно объяснить.

РЕДАКТИРОВАТЬ : Согласно комментариям ниже от @ user3439894 и других, я изучил расширенные атрибуты файлов, чтобы увидеть, дает ли это какую-либо подсказку.

Вывод ls -l@для файлов дает нам:

-rw-r--r--@ 1 jjarava  staff   7652 Aug  3 13:58 20150728 - Source Fragment 3 (BAD).TXT
    com.apple.FinderInfo       32 
    com.apple.TextEncoding     15 
    com.dropbox.attributes     83 
-rw-r--r--@ 1 jjarava  staff   6570 Aug  3 13:58 20150728 - Source Fragment 1 (Good).TXT
    com.apple.FinderInfo       32 
    com.apple.TextEncoding     15 
    com.dropbox.attributes     83 
-rw-r--r--@ 1 jjarava  staff   6616 Aug  3 13:58 20150728 - Source Fragment 2 (Good).TXT
    com.apple.FinderInfo       32 
    com.apple.TextEncoding     15 
    com.dropbox.attributes     83 
-rw-r--r--@ 1 jjarava  staff  21138 Aug  3 13:58 20150728 - Source (BAD).TXT
    com.apple.FinderInfo       32 
    com.dropbox.attributes     83 

Опять же , я вижу , что один из плохих файлов (источник), по- видимому отсутствует com.apple.TextEncodingатрибут - но файл другие «не работает» действительно есть атрибут ... Только в случае , если значения различны для хороших и плохих файлов, давайте проверять:

Mac:samples jjarava$ xattr -p com.apple.TextEncoding 201507*txt
20150728 - Source Fragment 3 (BAD).TXT: UTF-8;134217984
Source Fragment 1 (Good).TXT: UTF-8;134217984
Source Fragment 2 (Good).TXT: UTF-8;134217984
xattr: 20150728 - Source (BAD).TXT: No such xattr: com.apple.TextEncoding

Так что это тоже не похоже на хитрость ...

JJarava
источник
Это может быть проблема ... 20150728 - Source.TXT: ASCII text, with CRLF line terminators. Попробуйте заменить терминаторы строки CRLF просто LF. В терминале попробуйте:tr -d '\r' < input.file > output.file
user3439894
Привет, @ user3439894 ... Если бы это был единственный "не работает", я бы согласился с вами. Но на самом деле, обрезая данные, Source чтобы убедиться, Source 3что в TextWrangler окончание строк было «Unix». Как вы можете видеть другие нерабочие файлыLF
JJarava
Каково содержимое файлов, которые выделены серым цветом?
user3439894
Все файлы одинаковые - текстовые строки ASCII с данными, которые я хочу проанализировать в Excel. На самом деле я разделил «Исходный» файл на 3, так как содержимое связано, но это просто разделенные пробелами текстовые строки
JJarava
2
С расширением .txt я предположил, что это был текст в формате ASCII, плюс вывод fileуже показал, что, каким бы макетом он не был интересен, как он разделен? А что ls -l@выводится для серых файлов?
user3439894

Ответы:

3

Я думаю, что у меня есть ответ.

Погугливая, я нашел ссылки на "серые" проблемы и упоминания creatorатрибута файла .

Таким образом, быстрый Google для " знака создателя файла OSX " указал мне SetFileи его родному брату GetFileInfo.

Быстрый бег GetFileInfoна файлы, которые я получаю:

Mac:samples jjarava$ for i in 201507*.TXT; do getfileinfo "$i"; echo .; done
file: "/path/to/samples/20150728 - Source Fragment 3 (BAD).TXT"
type: "????"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.
file: "/path/to/samples/20150728 - Source Framgent 1 (Good).TXT"
type: "TEXT"
creator: "\0\0\0\0"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.
file: "/path/to/samples/20150728 - Source Framgent 2 (Good).TXT"
type: "TEXT"
creator: "\0\0\0\0"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.
file: "/path/to/samples/20150728 - Source (BAD).TXT"
type: "????"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.
file: "/path/to/samples/20150728 - Source Fragment 3 copy (BAD).TXT"
type: "????"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.

Все "рабочие" файлы имеют type: "TEXT", и все "не рабочие", кажется, не имеют "тип", определенный ...

На самом деле, запустите следующее, чтобы изменить файл type:

Mac:samples jjarava$ setfile -t TEXT "20150728 - Source Fragment 3 copy (BAD).TXT"
Mac:samples jjarava$ getfileinfo "20150728 - Source Fragment 3 copy (BAD).TXT"
file: "/path/to/samples/20150728 - Source Fragment 3 copy (BAD).TXT"
type: "TEXT"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18

И этот файл теперь можно выбрать в диалоговом окне «Открыть» в Excel!

Вопрос в том, откуда берется поле «type», и почему оно установлено в некоторых файлах, а не в других, но, по крайней мере, в этом есть некоторая «логика» !!

JJarava
источник
1
тип: "TEXT" (назначенный TextWrangler) также не является абсолютно необходимым, так как у меня есть текстовый файл с типом: "\ 0 \ 0 \ 0 \ 0" (TextEditor или touch), который Excel может обрабатывать при импорте , Вероятно, неизвестный показатель «????» это бросает это. Это часть оболочки для файла, которую мы никогда не видим. Я предполагаю, что это связано с тем, что в тех, которые работали, вы делали File> SaveAs в TW, тогда как в тех, которые не копировали оригинал, а затем, вероятно, делали File> Save. TW не создавал эти файлы, поэтому он не затрагивал атрибут type :.
AMR
1
«Как мы сюда попали» имеет смысл ... Мне очень ясно, что проблема началась с «исходного» файла. Вы правы в том, что я использовал SaveAs в рабочих случаях и Save в других (это по первоначальному вопросу) ... Учитывая, что я сохранил Sourceфайл из своей почтовой программы; ясно, что это корень проблемы ...
JJarava
Произошло снова с другим набором файлов. Это также файлы журналов, которые я получил в архиве от другого клиента, и снова я не смог открыть их в Excel - и обработать их с помощью утилит Unix ( cut, grepи т. Д.) И передать их в новые файлы, которые у меня все еще есть. проблема импортировать их для обработки. Установка Type в TEXT с SetFileрешенной проблемой.
Джарава
0

Как показывает ваш скриншот, они «почти», но не полностью одинаковы; исходный файл, ASCII text, with CRLF line terminatorsа созданные вами копии и фрагменты ASCII text.

Некоторая справочная информация: если вы думаете о древней пишущей машинке, то, что происходит, когда писатель начинает новую строку: бумага «пересылается» на одну строку (= «перевод строки», LF) и каретка перемещается в крайнее левое положение (= "возврат каретки", CF). UNIX и OS X используют один символ LF, чтобы сделать оба в текстовых файлах; Windows, с другой стороны, используют два символа, CR и LF, в конце каждой строки.

По-видимому, функция импорта Excel не может работать с текстовым файлом в формате Windows; TextWrangler, с другой стороны, может, и, когда вы манипулируете файлом и сохраняете копию, он автоматически сохраняет его в «формате UNIX», преобразуя CRLF в LF. Ваше решение - либо сообщить всем, что создает эти файлы на компьютере с Windows, либо сохранить их в формате UNIX, либо преобразовать их в формат UNIX в OS X, прежде чем вы сможете импортировать их в Excel.

FLIR31207
источник
Привет, FLIR31207 - Смотрите мой комментарий к @ user3439894 выше. Если бы единственный файл "не работал" был файлом с терминаторами CRLF, я бы с вами согласился. Но два других "серых" файла тоже LF, как и рабочие ...
JJarava
Я не думаю, что это проблема, проблема с некоторыми из производных файлов, сохраненных в форме «UNIX», а не с исходным файлом Windows.
AMR
Привет @AMR - но почему я не могу импортировать Sourceфайл? Это то, что
сбивает
Я комментировал ответ, а не ваш комментарий ... Я думаю, что был согласен с вами ....
AMR