Как вставить данные Excel в текст с фиксированной шириной?


16

Если я копирую данные в Excel и вставляю их в текстовый файл, я получаю вкладки между ячейками. Это не хорошо, я хочу пробелы - и я хочу, чтобы столбцы были выровнены. Как я могу достичь этого без особых усилий (очевидно, я не хочу запускать регулярные выражения вручную и т. Д.)

Использование «Сохранить как» (как в этом вопросе ) не является для меня решением, мне нужно скопировать и вставить.


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

@Pynner: Ну, это подходит лучше, чем вообще никакого решения, так что да, давай.
einpoklum

Ответы:


14

Это, конечно, не просто объяснить ... но после настройки он будет работать с минимальными усилиями. Также это небольшое изменение того, что наметил @pnuts

Я предлагаю использовать электронную таблицу шаблонов, которую вы можете скопировать и вставить. шаблон, который я создал, имеет 3 вкладки, которые выглядят следующим образом.

вкладки

  • Data вкладка, где данные вставляются
  • Length собирается сделать некоторую математику, чтобы определить самый длинный столбец
  • Space insert собирается вставить соответствующее количество пробелов (редактировать), которые вы можете скопировать отсюда и получить правильный результат

вкладка длины выглядит

длина

Строка 1 имеет максимальное количество символов в столбце ниже и содержит формулу

=MAX(A2:A101)+1

+1 создает разделитель.

Строки от 2 до n (которые я увеличил до 100 для этого примера) содержат формулу для оценки длины каждой строки

=LEN('Data tab'!A1)

вкладка пробела выглядит как

пробел

Каждая ячейка содержит ячейку, чтобы оценить ее длину по сравнению с максимальным значением (+ разделитель) и вставить соответствующее количество пробелов.

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

Обратите внимание на $, который блокирует строку 1, если вы копируете и вставляете формулу

(редактировать) вы можете скопировать из вкладки пробела.

блокнот


1
Гениально надуманный!
einpoklum

Но ... зачем мне последний лист, правда? Я могу скопировать и вставить с третьего листа. Кроме того, я не хочу использовать длинные формулы, реплицированные для каждого столбца.
einpoklum

Совершенно верно ... последняя вкладка не требуется ... Я предполагал, что ячейки будут вставлять дополнительные символы. Я
обновлю

Отличный ответ, большое спасибо. Лично некоторые из моих столбцов выходили очень длинными, поэтому я добавил страницу с "= LEFT ('пробел вставка'! A1, $ K $ 2) & IF (длина! A2> $ K $ 2," ... | ", «|») «где $ K $ 2 установлено на соответствующее значение (максимум самого важного столбца). Это хорошо работает для описаний и т. Д., Следующий шаг: p
chrispepper1989

Следующим шагом будет правильное выравнивание чисел
vlad_tepesch

3

Самым простым решением было бы объединить ваши числовые данные в «комментированную» строку, которая корректно вставляется в текстовый файл. Создайте формулу Excel для одной строки, а затем скопируйте ее для всех строк на рабочем листе, а затем скопируйте столбец формулы и вставьте его в текстовый файл. Например,

Данные

Ячейка А1: 247

Ячейка B1: 19

Ячейка С1: 1437

Формула в ячейке D1

= A1 & " "& B1 &"," & С1

Текст-вставляемый результат

247,19,1437

Есть еще один подход , который не опирается на формулы.

  • Во-первых, убедитесь, что все столбцы данных имеют одинаковую ширину.
  • Затем вставьте еще один столбец между каждой парой столбцов данных шириной 2.
  • Введите одну запятую в каждом из вставленных столбцов, копируя ее по длине данных.
  • Наконец, сохраните лист в формате отформатированного текста (с пробелами) (* .prn).

Преимущество этой альтернативы заключается в том, что она сохраняет форматирование ваших данных. Если вы хотите отформатировать данные через запятую или просто указать один десятичный знак, ваше форматирование будет сохранено в файле prn.


1
Pnuts предложил mprovement точно правильно. Я обновил свой ответ с другой альтернативой, которая использует Сохранить как.
Чафф

Так что, как я уже сказал в вопросе, сохранение как не вариант. Будет ли решение REPT работать с копированием? Кроме того, я пока не принимаю, потому что хотел бы что-то менее громоздкое.
einpoklum

0

Вы можете скопировать свои данные в Word, а затем использовать Find and Replace (Ctrl + H), чтобы заменить вкладки пробелами.

  1. Откройте и вставьте данные в Word
  2. Нажмите Ctrl+H
  3. Больше >>
  4. Особый
  5. Пустое пространство
  6. Поместите пробел в замену:
  7. Заменить все

Это не будет делать то, что я просил, извините - ширина столбцов будет отличаться.
einpoklum
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.