2016-06-24 2 views
0

У меня есть плоский файл фиксированной ширины с n столбцами. Мне нужно добавить новый столбец в конце, который является конкатенацией некоторых столбцов. Например.Исправлена ​​ошибка с расширением столбца с фиксированной шириной с помощью Excel или Notepad ++

0624 11011 LOCA 
0624 11031 LOCC 
0624 11041 LOCB 

превращается в

0624 11011 LOCA 0624LOCA-ABC 
0624 11031 LOCC 0624LOCC-ABC 
0624 11041 LOCB 0624LOCB-ABC 

Я импортировал файлы файлов в виде текста в Excel и был в состоянии сформировать колонну быстро, используя функцию конкатенации. Но теперь мне нужно сгенерировать его как плоский файл снова. Как мне это сделать? Есть ли функция в Excel, которая позволяет мне сгенерировать лист как плоский файл с пробелами. Или я могу «перенести» столбец в тот же файл в Notepad ++. Я ищу удобную клавиатуру, иначе я должен перейти к SQL.

+0

Рассматривали ли вы запись данных в массив, а затем запись из массива в текстовый файл? У меня был хороший успех, используя этот метод получения данных из Excel в плоский файл. – Kyle

ответ

1

В Excel нажмите Save as и выберите «Сохранить как тип:» «Отформатированный текст (пробел)».

Альтернатива, в Notepad ++, если они имеют фиксированную ширину для начала, используйте Column Copy/Paste для создания дополнительного столбца. (Удерживайте левую ALT вниз выделив 1 столбец, CTRL + C затем положить курсор в конец первой строки, добавьте несколько пробелов, нажмите CTRL + V Повторите для 2-го столбца;).

Если вы необходимо добавить дополнительный текст ко всем столбцам (например, дефис, разделяющий их). Используйте левый ALT трюк, чтобы выделить нулевую ширину для всех строк, а затем просто введите .. это отразит набор для всех строк :)

Если вы файл значительно больше, я бы придерживался Excel или попробовал замену регулярного выражения Toto;)

+0

Спасибо, сохраняя файл в Excel, поскольку «Отформатированный текст» не сохранил пробелы, когда я проверил сохраненный файл. Тем не менее, опция «Блокнот ++» для копирования всего отдельного столбца индивидуально, вставка, зеркалирование общего текста и исправление «em up» сделали трюк для меня. – shashankss

2

с ЯЭУ, я бы:

  • Ctrl + H
  • Найти: ((\S+)\s+\S+\s+(\S+))
  • Repace с: $1 $2$3-ABC
  • Заменить все

Убедитесь, что вы проверили Regular Expression.

Я предполагаю, что разделитель является одним пробелом.

+0

Спасибо, это был аккуратный трюк. Однако, как оказалось, некоторые из столбцов (всего 17) имели в них пробелы и с перерывами, поэтому я не мог получить исправление в общем регулярном выражении, которое будет работать на всех строках. – shashankss

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