Шаблон для поиска файлов созданных в word
Создавать собственные шаблоны документов не так уж сложно, а польза от их применения огромная. Поработав некоторое время с текстовым процессором, вы начинаете понимать, что создаваемые вами документы зачастую подобны друг другу. Прежде, чем приступить к созданию нового документа, как говорится, "с нуля", попробуйте сначала разработать новый шаблон, а потом на его базе создать документ. Все ваши стили будут сохранены в шаблоне, поэтому, создавая новый документ, вам не потребуется снова создавать стили.
Чтобы создать шаблон, выполните следующие действия.
- Выберите документ, на основе которого будете создавать шаблон.
Несмотря на то, что в Word можно создавать шаблоны тоже "с нуля", положитесь на мой опыт: рекомендуем начинать эту работу на базе имеющегося документа. Можно взять уже готовый документ или создать новый.
Когда вы создаете новый документ, то должны позаботиться о том, чтобы в нем были заложены все необходимые стили, а также текст, особенно тот, который вы постоянно используете в разного рода документах. Например, шаблон этой книги (по крайней мере, пока я пишу книги о компьютерах, а не детективы) содержит все стили, которые в ней применяются. Слово Глава, размещаемое в начале каждой страницы, я включил в шаблон, так как каждый мой документ — это новая глава. То обстоятельство, что данное слово само появляется при создании нового документа, экономит мое рабочее время. Если для создания шаблона используется уже имеющийся документ, прежде всего сделайте на диске его копию (на всякий случай!). Теперь можно вырезать из него весь текст, присутствие которого в шаблоне вам кажется неуместным, а также удалить все лишние графические элементы. Отредактируйте колонтитулы так, чтобы в них остались только те элементы, которые, по вашему мнению, должны присутствовать в шаблоне.
На рис. 17.2 представлен готовый шаблон, в котором содержится и текст, выде-i ленный разными стилями. Помните, что в шаблоне должны содержаться только стили и текст, который будет появляться во всех документах. На рисунке мы видим текст, который обязательно должен быть включен в каждый документ; остальная информация будет вводиться после открытия нового документа, созданного на базе этого шаблона.
Рис. 17.2. С любовью созданный шаблон
- Выберите команду Файл>Сохранить как.
На экране появилось диалоговое окно Сохранение документа. Это то самое диалоговое окно, которое использовалось для сохранения любых файлов (подробности в главе 8).
Имя следует набрать в поле Имя файла. Оно должно быть кратким и описательным; слово '"шаблон" в имени не используется — Word сам об этом позаботится.
- В раскрывающемся списке Тип файла выберите элемент Шаблон документа.
Теперь я должен открыть секрет: документ может сохраняться как документ, а может — как шаблон. После того, как вы выберете тип файла Шаблон документа, Word уже сам позаботится о том, чтобы этот документ был сохранен как шаблон и помещен в специальную папку для шаблонов.
Теперь ваше детище, которое стало называться шаблоном документа, надежно спрятано на диске в специально предназначенном для него месте, где Word хранит все свои шаблоны документов.
Если вы захотите создать другой шаблон, то новый шаблон можно будет построить на основе только что созданного. Например, если существует шаблон Письмо, то на его основе можно создать шаблон для писем другого типа.
Выберите команду Файл>Закрыть или щелкните на кнопке закрытия окна х. Окно с шаблоном документа будет закрыто.
Есть таблица (в Word) с огромным количеством записей вида:
Иванова Виктория Васильевна 1971 г.р., образование - высшее, Урюпинский государственный педагогический институт, общий стаж работы - 22 года, стаж работы в должности - 3 года.
Необходим шаблон поиска и замены, который оставит в ячейке только ФИО, а остальное удалит.
Пробовал (с включенным чекбоксом "Подстановочные знаки") такой шаблон:
() () ()*
менять на
\1 \2 \3
, но выходит так, что он ищет любые три последовательности и один знак после.
Есть кто-нибудь, знакомый с вордовскими регулярками? Есть ощущение, что тут слишком просто, но ступор — вещь сильная ))
- Строка поиска: ([А-Я]*>) ([А-Я]*>) ([А-Я]*>)(с включенными подстановочными знаками)
- Строка замены: \1 \2 \3^t
- Преобразуем таблицу в текст с разделителем "табуляция"
- Преобразуем текст в таблицу с разделителем "табуляция"
вообще быстрее копипаст в текст, регулярка и назад "преобразовать в таблицу"
но ща глянем что там за регекспы в ворде
dimonchik2013, твоя регулярка классно находит ФИО, но основную проблему так и не удалось решить: что делать с остальным текстом в ячейке. Его нужно "найти" весь, а потом заменить на \1 \2 \3 (То есть на первые три выражения с ФИО).
Я попытался применить вот такое выражение для поиска: ([А-Я]*>) ([А-Я]*>) ([А-Я]*>)*
но оно отрабатывает только то количество раз, которое указано в 1 параметре числа вхождений.
Пример с той же строкой ячейки отрабатывается так:
([А-Я]*>) ([А-Я]*>) ([А-Я]*>)* → [Иванова Виктория Васильевна 1971 г.р., образование - высшее, Урюпинский госуд], т.е. после ФИО выбирается лишь 50 символов.
Остальные мои варианты еще дальше от решения. Что делать — не знаю, башку сломал.
дальше просто все, по-моему очевидно
1) меняешь ([А-Я]*>) ([А-Я]*>) ([А-Я]*>) на \1~~\2~~\3~~
2) меняешь пробел, точка, запятая, тире прочая хрень на ничто
3) меняешь ~~ на пробел
4) меняешь ([А-Я]*>) ([А-Я]*>) ([А-Я]*>) на \1 \2 \3
не забудь галку поставить "решено"
Уж коль в строчку не удалось решить, то твой вариант самый быстрый оказался среди выдуманных мной многоходовок. Спасибо за потраченное на решение время.
В разработке корпоративных приложений очень часто приходится решать задачу выгрузки данных в документы — от небольших справок до больших отчетов.
Хочу поделиться нашим opensource-решением для генерации docx документов, которое позволяет заполнять документы по шаблону, оформление которого можно менять в Word без переписывания кода.
Для начала — немного вводных.
Что нам было нужно от шаблонизатора
- Шаблон создается в Word и сразу видно, на что будет похож результирующий документ, шаблон без лишнего мусора.
- Результирующий документ после скачивания содержит все необходимые данные, не подтягивая их с внешних источников.
- Возможность заполнять списки, таблицы, и иногда еще и таблицы с вложенными в них списками.
- Шаблон можно доверить секретарю клиента, чтобы он мог сменить логотип, реквизиты компании, или как-либо еще подкорректировать оформление. И все это уже после сдачи проекта, не модифицируя наш код.
Поиски шаблонизатора
Что получилось у нас
Со стороны кода мы работаем с привычными сущностями, такими как «Таблица», «Список», «Строка», «Ячейка».
Со стороны шаблона используется документ с расставленными по нему Content Controls, которые связаны с данными через свойство tag. Content Controls добавляются достаточно легко, при этом их достаточно сложно испортить при дальнейшей эксплуатации в отличие от текстовых вставок типа , а при отключенном режиме конструктора спец-обозначений контролов и вовсе не видно.
Например, необходимо заполнить таблицу, указать дату её заполнения и количество записей.
Создадим шаблон этой таблицы в Word-документе:
- Переходим на вкладку «Разработчик» (если она отсутствует, включается через Файл → Параметры → Настроить ленту → Ставим галочку возле «Разработчик») и включаем режим конструктора.
- Выделяем текст, который будет заполняемым полем.
- Нажимаем «Вставить элемент управления содержимым «Форматированный текст».
- Нажимаем «Свойства» и заполняем поля «Название» и «Тег».
Если требуется заполнить таблицу или список, их также нужно поместить в отдельный контент-контрол.
Так выглядит шаблон с добавленными элементами управления содержимым:
Теперь заполним шаблон данными:
нам нужно добавить одно поле и одну таблицу с двумя строчками, и в футере таблицы указать количество записей.
Если всё получилось, на выходе следующий документ:
С помощью метода SetRemoveContentControls(bool value) можно удалить элементы управления содержимым, если они уже не нужны в результирующем документе.
TemplateEngine.Docx позволяет заполнять простые поля, таблицы, списки, вложенные списки, таблицы со списками, списки с таблицами и даже списки с таблицами, в которых есть списки… Структура класса Content позволяет создавать шаблоны с неограниченной вложенностью элементов.
Еще больше примеров!
Заполнение простых полей
Заполнение вложенных списков
Таблица внутри списка
Список внутри таблицы
Таблица, состоящая из нескольких блоков, которые заполняются независимо
Таблица с объединенными вертикально ячейками
Таблица с объединенными горизонтально ячейками
Где скачать
Всем спасибо за внимание, надеемся, что данный инструмент поможет вам в ваших проектах.
В данной статье собраны основные операции и алгоритмы работы, позволяющие повысить эффективность разработки документации в редакторе Microsoft Word как индивидуально, так и при командной работе.
Несмотря на то что материала на подобную тематику написано достаточно, многие продолжают использовать компьютер на уровне печатной машинки не задумываясь о том, что половину рутинной работы можно переложить на тот самый Word.
В статье намеренно не рассматриваются подходы с использованием Markdown, Pandoc, Asciidoc, Confluence как более сложные и узкоспециализированные, а статью хотелось сделать доступной и понятной не только молодым людям, но и людям старших возрастов.
Все описанные действия выполнены в программе «Microsoft Word профессиональный плюс 2019». В предыдущих версиях Word последовательность и названия команд могут отличаться, но описанная функциональность так или иначе существует. По минимуму использованы макросы и автоматизация с помощью сторонних средств (в частности Python, использована версия 3.6).
Описанные операции
Автоматическая нумерация рисунков (таблиц)
Классическая проблема: нужно объединить 4 файла, насыщенные рисунками, в один документ. Если это делать «в лоб», после объединения нумерация рисунков собьется. Восстановить ее – большая грустная задача.
Классическое решение: поставить вместо номера рисунка текст «ХХ» и закрасить желтым цветом (желтый цвет предлагается Word по умолчанию для выделения текста). Потом, после объединения частей в один файл, руками проставить номера рисунков в порядке их очередности. Это первое, что делает нормальный человек, действуя интуитивно, и проблема не кажется сложной, пока вы не столкнетесь с документом, в котором рисунков больше сотни, и еще нужно поддерживать актуальность документа (то есть со временем добавлять или исключать рисунки с перекрестными ссылками).
Word умеет делать это автоматически, причем не только для рисунков, а еще и для таблиц, параграфов, разделов, абзацев и др.
Чтобы присвоить рисунку (таблице) номер в автоматическом режиме, нужно нажать непосредственно на рисунок (1), после чего выбрать пункт меню «Ссылки» (2) ⟶ «Вставить название» (3) ⟶ Снять галочку «Исключить подпись из названия» (4) ⟶ «Ок» (5). Под рисунком появится подпись «Рисунок 1», где 1 – это поле автоматической нумерации рисунка (таблицы) (6). Справа от номера, в зависимости от правил именования рисунков, рисунку можно дать название.
Суть данной операции в том, что если 4 человека форматировали наименования рисунков именно так, то после объединения четырех частей документа для проставления корректных номеров рисунков необходимо выделить весь текст документа (Ctrl+A) и обновить автоматические поля (F9). Все рисунки (таблицы) при этом получат правильный порядковый номер (3).
Думаете, что повторить данную процедуру для 1000 рисунков долго? Читаем ниже.
Ускоренная вставка поля автоматической нумерации рисунка (таблицы)
Для быстрой вставки поля автоматического номера рисунка (таблицы) необходимо выделить любое сформированное ранее название рисунка (таблицы) (см. пункт выше), содержащее поле автоматической нумерации (1), скопировать его, перевести курсор под нужный рисунок и вставить скопированное название (2). Название будет скопировано с полем автоматической нумерации с исходным номером. Его нужно будет обновить. Не обязательно делать это сразу. Пока скопированный текст находится в буфере обмена, можно вставить поле автоматической нумерации под всеми рисунками (таблицами) до конца документа, после чего выделить весь текст (Ctrl+A) и обновить автоматические поля (F9). Все рисунки (таблицы) при этом получат правильный порядковый номер (3).
Это, пожалуй, самый простой способ, которым можно быстро привести в порядок документ, изначально разработанный не Вами, насыщенный рисунками, состав которых необходимо изменить.
Ссылка на номер рисунка (таблицы, раздела, пункта)
Классическая проблема: документ имеет много отсылок на внутренние объекты документа (рисунки, таблицы, разделы, пункты). При изменении номера объекта надо изменить и все отсылки на него, а если они находятся не рядом с объектом, то про них можно просто забыть или пропустить.
Классическое решение: сначала человек проставляет вместо номеров рисунков (объектов) «ХХ» желтым цветом, то же самое делает и для ссылок на указанные рисунки, затем проставляет номера рисунков по окончанию редактирования документа и начинает сопоставлять ссылки с рисунками, к которым они относятся.
Для вставки ссылки на рисунок (таблицу) необходимо перевести курсор мыши в то место, где необходимо вставить ссылку (1), нажать пункт меню «Ссылки» (2), «Перекрестная ссылка» (3), выбрать из выпадающего списка тип ссылки «Рисунок» («Таблица» и т.д.) (4), из выпадающего списка выбрать то, на что вставить ссылку «Постоянная часть и номер» (5), выбрать нужный рисунок (таблицу и др.) (6), нажать кнопку «Вставить» (7). На месте (1) появится ссылка на выбранный рисунок (таблицу и др.).
Если стандартный формат вставки ссылки не подходит (например, необходимо выполнять требования ГОСТ), то можно выполнить другие действия, описанные ниже.
Изменение формата перекрестной ссылки на рисунок (таблицу, раздел, пункт)
По умолчанию Word вставляет фразу «Рисунок N», однако иногда необходимо вставить фразу вида «Рис. N» (или «см. рис. N»). Для этого из перекрестной ссылки необходимо забрать лишь номер, а остальное дописать руками.
Если у Вас сложилось впечатление, что это слишком долго, то читаем ниже, как можно немного ускориться.
Ускоренная вставка ссылки на номер рисунка (таблицы)
Ускорить процесс вставки ссылок можно достаточно просто, следуя советам дедушки Сазерленда (методология Scrum), а именно: нужно выполнять одну простейшую операцию. Применительно к нашей задаче следует выделить весь текст нажатием «Ctrl+A», отобразить коды автозаполняемых полей нажатием «SHIFT+F9», открыть окно «Перекрестные ссылки» по примеру выше, после чего необходимо пролистывать документ, перенося курсор в нужные места, выбирать нужные ссылки из открытого окна перекрестных ссылок и вставлять их. Окно «Перекрестные ссылки» закрываем только тогда, когда документ отработан до конца.
Автозаполняемые поля (Экспресс-блоки) (число страниц, дата)
Классическая ошибка: этап проекта перешел на новый год, вы внесли в документ необходимые правки, закрыли документ, но забыли обновить год или число страниц на титульном листе и отправили заказчику.
Классическое решение: вы не забываете обновить год и число страниц и по завершении редактирования документа листаете его до конца, чтобы Word корректно пересчитал число страниц с учетом форматирования, возвращаетесь на титульный лист и вставляете полученное число.
Все это может выполняться автоматически стандартными средствами Word. В качестве примера вставим автоматическое поле числа страниц документа. Для этого устанавливаем курсор мыши туда, где необходимо вставить автозаполняемое поле (1), выбираем пункт меню «Вставить», затем «Экспресс-блоки» (2), затем «Поле» (3). Откроется окно «Поле» (4), в колонке «Поля» выбираем тип поля, в нашем примере «NumPages» (5), и нажимаем кнопку «Ок» (6). При этом в месте, где был установлен курсор (1), вставится поле, которое при обновлении (F9) поменяет значение на фактическое число страниц.
Для вставки даты вместо «NumPages» (5) необходимо найти «Date» и выбрать необходимый формат.
Исправление съезжающей нумерации в списке при выборе "Начать заново с 1"
Классическая проблема: надо начать новый нумерованный список, но по умолчанию продолжается старая нумерация. Обычно делают так: нажимают «ПКМ», «Начать заново с 1» и первый номер съезжает к значению по умолчанию.
Классическое решение: каждый раз передвигать отступы первого пункта списка на необходимое место.
Этого можно не делать если заранее определить отступы для нумерованного списка. Для этого необходимо нажать на первый номер нумерованного списка «ПКМ», затем «Изменить отступы в списке». Проделать это можно сразу для нескольких уровней списков, а еще лучше, если для каждого уровня списка создать отдельный стиль, что позволит быстро изменять отступы по всему документу, но об этом уже ниже.
Карта стилей
Классическая проблема: два человека разрабатывают части документа, в которых используется нумерация разделов и пунктов, выделение заголовков и особое форматирование абзацев. Один человек поддерживал нумерацию механически, второй - используя автонумерацию. При объединении нумерация съезжает, равно как и форматирование.
Классическое решение: выбирается жертва, которая приводит полученный бардак к единому виду.
Это, пожалуй, самая распространенная проблема, которая влечет за собой много нудной, монотонной и неинтересной работы по форматированию документа. Возникает она по причине того, что мало кто знает и пользуется одной из базовых возможностей Word - стилями. Правильно подготовленная карта стилей позволяет экономить уйму времени. Вы знали, что при изменении параметров существующего стиля они применяются ко всему тексту документа, который отформатирован в этом стиле?
Так вот, чтобы форматирование не занимало слишком много времени, хорошей практикой считается перед началом проекта уяснить требования к оформлению документов (например, определенных в ГОСТ или шаблонах заказчика) и собрать карту стилей хотя бы для следующих элементов:
Поиск файлов — это, на самом деле, функция Windows. Операционная система без труда справляется с такой задачей, но и Word может вам помочь. Жаль, что с его помощью нельзя отыскать пропавшую записную книжку или часы.
- Откройте диалоговое окно Открытие документа
Это вполне логично. Вы ведь ищете файл, который хотите открыть? Выберите команду Файл>Открыть.
- В правой верхней части диалогового окна щелкните на кнопке меню Сервис.
Наверняка, вы не знаете о существовании меню в этом окне. Многие не знают. Будем надеяться, и вы тоже.
На экране появится диалоговое окно Поиск.
- Перейдите на вкладку Обычный.
- Введите текст (или слово), который необходимо найти.
Например, где-то на диске хранится написанная достаточно давно поэма о любви. Я помню лишь то, что в ней есть слово СПИД. Воспользуюсь хотя бы этим. На данном этапе не стоит настраивать другие опции диалогового окна.
Откроется панель Результаты поиска. Спокойно ждите, пока Word рыщет по диску в поисках этого текста, повторяя про себя:
И вот, наконец, на экране появляется целый список папок и документов, обнаруженных Word и, возможно, имеющих отношение к искомой информации. Если Word ничего не найдет, список будет пустым. Попробуйте еще раз, только введите текст, который наверняка находится в вашем файле, или же махните рукой на этот файл и поищите в холодильнике что-нибудь вкусненькое.
- Откройте файл, дважды щелкнув на нем в списке.
Вы переходите в диалоговое окно открытия документа.
Файл откроется в окне Word.
Если программа найдет неверный файл, то потребуется повторить поиск. К сожалению, Word не настолько сообразителен, чтобы открыть сразу все файлы, которые удовлетворят условиям поиска.
Если честно, то лучше всего искать файлы в диалоговом окне поиска данных Windows. Получив в нем определенные результаты, вы можете выделить все файлы и открыть их одновременно (я надеюсь, в вашем компьютере достаточно оперативной памяти).
Управление файлами в Word
В Word файлами можно управлять в диалоговых окнах Открытие документа и Сохранение документа. Эти окна являются усеченным вариантом окон приложения Проводник. Например, находясь в диалоговом окне Открытие документа, можно переименовать файл. Для этого потребуется выделить его, а затем нажать клавишу — как при работе в Windows. Ничем не отличается и операция удаления файла: ненужный файл выделите, щелкнув на нем, а затем нажмите клавишу . Как видите, удалять файлы в Word совсем не сложно. Однако хочу вас предупредить: никогда не удаляйте файлы, которые сами не создавали. Иначе вы рискуете ошибиться и иметь большие проблемы.
Вы также можете копировать и вставлять файлы в описанных диалоговых окнах, но это достаточно трудоемкая процедура.
Читайте также: