У меня есть группа имен и адресов, которые я хотел бы импортировать в Outlook.

На данный момент я импортировал их в Excel, но все имена и адреса находятся в одной длинной записи.

Все уже разделены запятой.

Как я могу заставить Excel выбрать каждое "значение" и переместить его в отдельную ячейку?

Изменить: я уже пытался взять текстовый файл и сохранить его как файл .csv. Однако все контакты загружаются в одну ячейку.

Я использую Excel 2003.

Благодарю.

5 ответов5

5

CSV - не более чем причудливый способ сказать «простой текст, разделенный запятыми», отсюда и название C omma S разделенных V значений.

Чтобы преобразовать файл в формат CSV, измените его расширение с .txt на .csv.

Excel знает, что файлы с расширением .csv являются значениями, разделенными запятыми, и он поместит каждое значение в свою собственную ячейку.

Например, я начал с этого файла:

a,1,bla,10
2,r,sasdfa,1as0

Я сохранил его как bla.csv и открыл в Excel. Вот как это выглядит:

пример файла CSV

Моя установка оказалась новой, и я не внес изменений в настройку Excel для автоматического открытия файлов CSV.

3

Что бы это ни стоило, в Excel 2003 инструмент все еще находится в меню "Данные", но называется "Текст в столбцы" и позволяет выбрать символ-разделитель.

2

То, что вам нужно, это не Excel. Excel и Calc (OO.o) могут открывать CSV в виде электронных таблиц, но вам нужно что-то, чтобы манипулировать текстовым файлом в правильно отформатированном файле CSV.

Для этого вам нужен хороший текстовый редактор. Существует очень мало текстовых редакторов, которые позволяют выполнять многострочный поиск и замену (не знаю почему, поскольку это невероятно полезная функция и ее легко реализовать). Но очень хорошим бесплатным редактором, который (sorta) обладает этой функциональностью, является Notepad2. Это в основном обновленная версия стандартного блокнота Windows, но не такая громоздкая, как Notepad++. Вы можете заменить Блокнот Windows на Notepad2 или Notepad++, но это выходит за рамки этого ответа.

После установки Notepad2:

  1. Откройте текстовый файл и нажмите Ctrl + H чтобы вызвать диалог поиска и замены.
  2. Введите запятую или запятую и пробел в поле Search String .
  3. Теперь вы заметите, что поле « Replace with: состоит из одной строки. Это нормально, потому что Notepad2 поддерживает регулярные выражения прямо из коробки. Поэтому установите флажок с надписью Regular expression search .
  4. Несмотря на то, что указано выше, это на самом деле поиск и замена регулярного выражения - это означает, что вы также можете использовать регулярные выражения в поле Заменить . Поэтому введите \n и нажмите « Replace All .
  5. Затем просто сохраните как * .csv и выйдите. Если вы откроете его в Excel/Calc, теперь он должен быть столбцом имен / электронных писем.

Редактировать:

На самом деле, перечитывая ваш вопрос, мне приходит в голову, что вы можете захотеть 2 столбца: 1 для электронной почты, один для имени. Если это так, то сделать это немного сложнее, чем просто заменить все запятые на разрывы строк. Но не бойся! Регулярные выражения здесь, чтобы помочь еще раз:

  1. Откройте исходный текстовый файл.
  2. Откройте диалог поиска и замены.
  3. Введите это в поле поиска: \([^,]+\),\([^,]+\),
  4. Введите это в поле замены: \1,\2\n
  5. Хит Replace All .
  6. Сохранить как * .csv и выйти.

Вы можете при желании изменить регулярные выражения, чтобы поставить пробел после запятых, если именно так отформатирован текстовый файл или как вы хотите его отформатировать, например

first last, user@domain.com, bob builder, bob@builder.com, foo...
versus:
first last,user@domain.com,bob builder,bob@builder.com,foo...

Edit2:

Для разновидности регулярного выражения Notepad++ вам не нужно экранировать группировки с обратными слешами, поэтому соответствующее регулярное выражение поиска будет выглядеть так:

([^,]+),([^,]+),

Если есть пустые адреса электронной почты:

([^,]+),([^,]*),     // assuming that the email is the second parameter
([^,]*),([^,]+),     // make the first parameter optional

Edit3:

Чтобы справиться с полностью отсутствующими полями, становится немного грязно. Это связано с тем, что ни Notepad2, ни Notepad++ не поддерживают необязательные группы или негативные взгляды. Итак, нам нужно применить 2 разных регулярных выражения:

  1. Это берет на себя все подряд электронной почты и впрыскивает пустое поле , , между ними. Запустите это (с « Replace All) несколько раз, пока не перестанете получать совпадения

    ([^,]+@[^,]+), ([^,]+@[^,]+),*   // search for
    \1, , \2,                        // replace
    
  2. Вручную добавьте дополнительное пустое поле в начале или конце документа, если это необходимо.

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

    ([^,]+), ([^,]*),\s     // email first
    ([^,]*), ([^,]+),\s     // name first
    

    с:

    \1, \2\n
    

И это должно сделать это. \s выше это просто пробел. Вы можете поставить пробел или написать \s в регулярном выражении.

Примечание: я обычно стараюсь не просить человека установить новый текстовый / графический / аудио / видео редактор просто для решения конкретной проблемы, но это один случай, когда: 1.) это очень легкая (~ 300 КБ) бесплатная программа, которая Я знаю работы; 2.) это невероятно полезно, и почти любой, кто еще не установил замену блокнота, например Notepad2 / Notepad++, выиграет от его установки. Фактически, я устанавливаю его на каждый компьютер под управлением Windows, а также на каждую рабочую станцию Windows на моей работе.

2

В Excel 2007 выберите первую ячейку, перейдите на вкладку data и нажмите « Convert text to table . Появится окно, выберите разделитель и нажмите «Далее». Теперь выберите правильный разделитель (запятая в вашем случае) и нажмите «Далее». Нажмите Готово.

Проверьте здесь также для более подробного объяснения: https://ask.qut.edu.au/app/answers/detail/a_id/2076/~/how-to%3A-split-delimited-text-into-multiple-cells в Excel-2007.

-1

Я написал небольшую PHP-скрипт для вас, ввести единую «» разделители строки в здесь и нажмите кнопку. Выберите и скопируйте список и вставьте его в первую ячейку Excel.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .