2009-04-07 2 views
1

ПРИМЕЧАНИЕ: этот вопрос почти простофиля из:сила первенствует, чтобы прекратить применение «авто-исправления» в формате CSV импорт данных

stop Ms Excel auto-formatting numeric strings as numbers

Я говорю «почти», потому что этот конкретный вопрос не просил ...

Вопрос: есть ли способ прикрепить «схему» в CSV файл, до импорта Excel, т hat позволяет Excel понять правильное форматирование CSV-файла без, требующего последующей обработки CSV-файла и без вмешательства пользователя для правильного форматирования полей вручную?

По схеме я имею в виду любой метод генерации текстового определения, который может быть сохранен где-то на машине Customer X, а затем ссылаться всякий раз, когда должен происходить обычный импорт CSV, включая, помимо прочего, XSD, VBMacro, или любые другие условные обозначения Excel для такого рода операций (если они есть).

фон: Excel имеет привычку быть «полезным» путем изменения входных данных при открытии из простого текста, например в виде файла CSV.

Для примера того, что подразумевается под этим, увидеть любой из различных следующих ссылок:

http://ask.metafilter.com/28449/Preventing-Excel-applying-time-formatting-to-imported-data 
    http://excel.tips.net/Pages/T002588_Handling_Leading_Zeros_in_CSV_Files.html 
    http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/aae07b39-865f-4c68-a07f-7cad2dfd6733 
    http://social.msdn.microsoft.com/forums/en-US/vsto/thread/80285088-b476-418f-9613-a2c499c8da7b/ 

Мы регулярно должны отправить CSV файлов клиента X, и мы не можем позволить себе роскошь изменения CSV файлы, чтобы «преобразовать» их в формат, который Excel будет отображать точно так, как предполагалось.

Кроме того, клиент X не всегда имеет персонал, прошедший обучение в Excel, для правильного импорта.

+0

[Комментирует прямо сейчас вопрос, что у меня есть репутация, чтобы сделать это.] Я не понимаю: конечно, CSVs производятся третьей стороной. Но если * вы * должны передать их вместе с клиентом, то почему вы не можете их исправить? Или вы говорите, что вы являетесь источником некоторых исходных данных, а третье лицо CSV-продюсер сидит между вами и клиентом? –

+0

Yup. Это в значительной степени. – dreftymac

ответ

1

Что я сделал, столкнувшись с этой проблемой, это создать макрос для запуска после импорта, который «исправляет» исправления Excel. Это не отличное решение, но это временное решение.

0

Боюсь, что я не полностью следую. Вы говорите, что отправляете файлы CSV, но вы не можете изменять файлы CSV? Значит, вы их не генерируете? И вы не можете обработать их перед отправкой их клиенту?

Хотя мне трудно представить такую ​​ситуацию, я предполагаю, что это так. Есть ли вероятность, что вы можете заставить клиента запускать скрипт вместо непосредственного запуска Excel? Например, можно ли их обучить двойному щелчку на VBScript вместо двойного щелчка на CSV или использовании Open from Excel?

Это самое близкое, что я могу придумать с учетом ограничений, которые вы описали, но я не могу не думать, что должно быть что-то, что вы можете сделать дальше вверх, прежде чем оно покинет ваши руки и войдет в клиент.

+0

Да, всегда есть возможность запускать скрипт или командный файл или что-то еще, но тогда всегда есть дополнительная подготовка, необходимая для использования этого еще-еще-одного-офф-kludge. Насколько лучше было бы, если бы клиент мог просто отправить единственную схему файла .ini, которую мог бы использовать Excel, без того, чтобы пользователь мог изучить и использовать обходное решение еще один-один-не-недокументированный сценарий? – dreftymac

+0

Конечно, было бы лучше, но (по-видимому) Excel не имеет схемы схемы CSV. Если я могу спросить, почему вы не можете обработать CSV перед отправкой его клиенту? –

+0

, потому что они происходят от третьего лица – dreftymac

0

Вот еще один ответ, переформатировать данные в кавычках следующим образом:

Zip, = "00123" и т.д.

Это будет сделать в Excel, как:

Zip | 0| и т.п.

 Смежные вопросы

  • Нет связанных вопросов^_^