Показаны сообщения с ярлыком office. Показать все сообщения
Показаны сообщения с ярлыком office. Показать все сообщения

суббота, 12 сентября 2015 г.

Храните, передавайте и конвертируйте документы с этим отличным веб-сервисом


CometDocs

Храните, передавайте и конвертируйте документы с этим отличным веб-сервисом

CometDocs ( www.cometdocs.com ) является отличным веб-сервисом, который позволяет хранить файлы документов. Так же можно конвертировать эти файлы в различные форматы, или сделать их доступными для совместного использования. Если вам нужна веб-утилита конвертирования документов (например, Word в PDF), то этот веб-инструмент вам пригодится.

CometDocs

Я протестировал возможности конвертера из Doc в PDF. В word-ом документе присутствовал текст, график и таблица. Кирилицу распознал полностью, а таблицу проигнорировал и не нарисовал границу.

Конвертацию файлов возможно проводить без регистрации, что весьма удобно. Для использования других возможностей сервиса, необходимо зарегистрироваться (бесплатно). Максимальный объем файла - 1 ГБ.
Так, что, если необходимо быстро конвертировать, поделиться или передать файлы, можно воспользоваться этим веб-сервисом.

Перейти на сайт CometDocs

четверг, 13 августа 2015 г.

Использование шаблонов Word для заполнения типовых договоров.


Предназначена для создания, редактирования, и заполнения шаблонов типовых договоров, не привязанных к конкретным запросам и объектам.
Главное отличие этой разработки в том что все параметры создаются "на лету" - нет необходимости открывать конфигуратор, выгонять пользователей, обновлять динамически.
сразу после создания элемента справочника, он (параметр) начинает работать.

Автоматическая генерация документов.


История вопроса

Както раз после подведения итогов олимпиады, когда участникам требовалось разослать письмами с результаты по сданным (или не сданным) предметам, я заметил, что девушка сидит и руками вносит в шаблон письма результаты экзамена, ФИО школьника и прочую информацию. Перед ней лежало несколько распечатанных из Excel листов с фамилиями и оценками. Copy-Paste, Ctrl+C — Ctrl+V, перевод ФИО из именительного в родительный падеж и так уже была проделана работа с половиной первого из трех листов с данными. Сколько по вашему она могла бы еще просидеть копируя данные, а потом проверяя результат? Думаю довольно долго, да и ошибок было бы не мало. А ведь ей потом предстояло еще подписывать почтовые конверты... Мне стало жалко ее времени и за несколько минут я показал, как можно с помощью простых средств этот процесс автоматизировать. После небольшого экскурса ее работа была закончена за 20 минут.

В этом уроке я покажу Вам как можно быстро создавать документы (письма, приглашения) затрачивая на это минимум времени. В разных версиях языках этот описываемый процесс называется по-разному. Так в русском это «Слияние», а в английском - «Merge».

Надеюсь, что «письма счастья» от пенсионного фонда, налоговые уведомления создаются таким же способом :)

Инструменты

Для создания документов нам понадобится OpenOffice Writer. В нем мы будем создавать шаблон письма. Понадобиться так же OpenOffice Calc. В нем мы создадим базу с фамилиями и адресами тех лиц, которых мы, например, хотим пригласить на вечеринку. Вместо программ из пакета OpenOffice легко могут использоваться MS Word и Excel. База данных может легко лежать в MS Access. И так, приступаем.

Создание базы данных

База данных — это ничто иное как таблица в MS Excel или OpenOffice Calc, где данные располагаются в столбцах, а первая строка используется для именования столбцов. Заведем, например, столбцы «ФИО», «город», «индекс», «адрес». Введем данные и сохраним файл на диск.

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

Создание шаблона письма

С созданием шаблона письма дело обстоит чуть сложнее. Поскольку в шаблон будут данные из таблицы (нашей базы данных) подставляться как есть, то и письмо надо писать соответствующим образом. Если у вас в базе данных ФИО идет в именительном падеже, то вряд ли Вам удастся использовать это поле в обращении «Дорогой, <ФИО>!» и для конверта в строке «Кому: <ФИО>». В последнем случае ФИО будет смотреться несколько коряво.

Составляя шаблон письма я рекомендую начать с составления письма какому-то реальному человеку. Можно самому себе. Затем в нем выделить цветом те данные, которые Вы будете брать из базы данных и заменить их на соответствующие поля. Перед тем как заменять выделенный текст на поле рекомендую обратить внимание на то, с какой буквы должно начинаться поле в базе данных (строчной или прописной). Конечно, можно составлять шаблон сразу с полями, но тогда Вы можете не заметить некоторых ляпов, как нестыковка падежей.

Уже в приведенном шаблоне видно, что нам потребуется ФИО в родительном падеже и поле, содержащие только имя и отчество. С первым полем мы можем заменить «Кому» на «Получатель» и тогда ФИО в именительном падеже нас вполне устроит. Со вторым полем все несколько сложнее и нам придется завести в базе данных еще один столбец и заполнить его соответствующими данными. В одном из следующих уроков я расскажу как это сделать автоматически, а пока будем считать что такое поле у нас уже есть.

Для вставки поля и привязки шаблона к базе данных необходимо выполнить следующую последовательность действий. В OpenOffice Writer выбрать базу данных

и нажать «Define» («Определить»).

Затем в нужное место вставить поле из подключенной базы данных. Для этого нажать Ctrl+F2, или в меню «Вставка» выбрать пункт «Поля» и «Другое». В открывшемся окне выбрать вкладку «Базы данных», в типе поля выбрать «Mail Merge fields», из базы данных выбрать соответствующее поле и нажать «Вставит». Собственно базу данных можно также выбрать в этом окне.

После того как одно поле вставлено, можно не закрывая текущего окна выделить текст для замены на следующего поля, выбрать поле и снова нажать «Вставить». И так для каждого из полей.

Для MS Word ситуация в чем-то похожа и, возможно, более удобна. После создания таблицы в MS Excel, запускаем MS Word и переходим на вкладку «Рассылки». На этой вкладке можно увидеть тре необходимых шага: «Начало слияния», «Составление документа и вставка полей» и «Завершение». Есть еще промежуточный шаг «Просмотр результата», но он является опциональным.

И так работа начинается с выбора документа. Это могут быть письма, наклейки, обычный документ Word. Тут же можно запустить мастер слияния, который проведет Вас через все стадии этого процесса. Следующий шаг — выбор получателя, то есть базы данных. Здесь Вы можете выбрать готовую базу данных (например, созданную на предыдущем этапе таблицу MS Excel), или создать новый список. После того как список выбран, становятся активными кнопки «Вставит поле слияния», «Изменить список получателей» и пр. Через диалог «Изменить список получателей», который открывается соответствующей кнопкой, можно выбрать из всего списка только необходимые для слияния записи.



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

При вставке полей мне кажется удобным подсветить все поля серым цветом, кликнув по кнопке «Выделить поля слияния». В противном случае, если таких полей много, то их можно потерять в тексте.

И так, шаблон готов.

Генерация писем

Последний этап — генерация писем. В OpenOffice для этого в меню «Инструменты» выбираем «Mail Merge Wizard...» и проходим все предлагаемые шаги по объединению нашего шаблона с базой данных.



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

Сначала выбираем, что создаем письма на основе текущего документа и жмем «Далее» внизу окна. Вторым пунктом выбираем будет ли у нас это бумажное письмо или e-mail. Для того, чтобы письмо можно было сохранить в файл следует выбрать первое. Жмем «Далее». Третим пунктом нам предлагают создать блок адреса, но поскольку мы его создали руками, то снимаем все галочки и переходим к следующему шагу. Здесь нам предлагают вставить обращение, но оно у нас тоже уже есть, поэтому жмем «Далее». Шестым пунктом можно отредактировать документ, посмотреть на документ со вставленными из базы данных полями и, если надо, какие-то поля исключить.

На шаге 7 предлагается отредактировать каждый из созданных в результате соединения шаблона с базой данных файлов. И наконец на последнем, 8 шаге, можно выбрать что сделать с полученными документам. Можно сохранить, распечатать или отправить по e-mail. При этом можно сохранять все документы в один файл, или каждый документ отдельно.

В MS Word процесс слияния заканчивается нажатием кнопки «Найти и объединить».

Из выпадающего меню очевидно, что все письма можно напечатать и послать через e-mail, но не очевидно, что все их можно сохранить в файл. Для сохранения надо выбрать первы пункт - «Изменить отдельные документы». При этом откроется новый документ, в котором каждое новое письмо будет располагаться с новой странице, а тут уже этот файл можно и сохранить.

Заключение

И так, в этом уроке Вы узнали как используя инструмент слияния создавать документы на основе шаблона. Давайте кратко запишем последовательность действий:
  1. Необходимо в табличном процессоре создать базу данных, из которой будут браться данные для заполнения полей.
  2. Необходимо создать шаблон письма.
  3. Произвести слияние и сохранить результат.

Автоматизация заполнения договоров

К примеру у Вас есть база клиентов в Экселе, нужно для всех клиентов составить договора. Шаблон договора в Ворде. Если подставлять нужные значения из Экселя в Ворд простым копированием — это утомительно, особенно если таких договоров пару сотен, да и ошибок при таком способе не избежать. 

Вот пример простого и универсального макроса.
Sub Generator()
Dim ObWord As Word.Application
Dim objDoc As Word.Document
Dim file As String
Set ob1 = ActiveWorkbook.ActiveSheet ' теперь переменная ob1 будет содержать ссылку на текущий лист активной книги
f_r = Selection.Row ' определяем номер выбранной строки
stb = Selection.Column ' определяем номер выбранного столбца
f_c = Selection.CurrentRegion.Columns(Selection.CurrentRegion.Columns.Count).Column ' определяем номер последнего столбца в данной таблице
path_f = ThisWorkbook.Path 'определяем текущую папку
file = Application.GetOpenFilename("Excel Files (*.docx;*.doc), *docx;*.doc") ' открывается диалоговое окно "Открытие документа"
If Dir(file) = Empty Then
    Exit Sub
Else
' запускаем Word, открываем выбранный документ
Set ObjWord = CreateObject("Word.Application")
    With ObjWord
        .Visible = True
        .Documents.Open Filename:=file
        Set objDoc = .ActiveDocument
    End With
With objDoc.Range
For j = 1 To f_c ' цикл по всем столбцам таблицы
    isk_zn = ob1.Cells(1, j) 'искомое значение - находится в первой строке нашей таблицы
    zamen_zn = ob1.Cells(f_r, j) 'значение для замены
    .Find.ClearFormatting
    .Find.Replacement.ClearFormatting
    'осуществляем замену
    With .Find
        .Text = isk_zn
        .Replacement.Text = zamen_zn
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    .Find.Execute Replace:=wdReplaceAll
Next j
' сохраняем документ в том же месте что и книга с макросом, имя документа - значение из выделенной ячейки
FName = ob1.Cells(f_r, stb)
objDoc.SaveAs Filename:=path_f & "\" & FName
    objDoc.Close
    ObjWord.Quit
End With
Set objDoc = Nothing
Set ObjWord = Nothing
ob1.Activate
End If
End Sub

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

Тогда вордовский документ должен выглядеть так

Выбираем любую строку и запускаем макрос.
К примеру если на момент запуска макроса была выделена ячейка С3, т.е. «ЧП Новичок», то результат будет следующим

Для работы макроса нужно чтобы была установлена ссылка на библиотеку Microsoft Word 11.0 Object Library
  • +1
  • 28 августа 2011, 23:15
  • meg

Комментарии (4)

RSS свернуть / развернуть
+
0
Сила! Я так понимаю, что на одних макросах можно (если очень захотеть) нехилый документооборот наваять!
avatar
  • 29 августа 2011, 08:08
+
0
Очень «нехилый», можно чтобы макрос «пробегался» по всем нужным шаблонам и по всем выбранным клиентам, и тогда нажатием одной кнопочки будут сформированы целые пакеты документов. Можно чтобы и на печать сразу отправлялись.
avatar
  • 29 августа 2011, 08:36
+
0
Но, скромно думая, полноценный документооборот надо делать используя базу данных (не Excel), иначе огромные хранилища повторений (избыточность) и меньшая гибкость в изменениях.
avatar
  • 29 августа 2011, 08:49
+1
Да, этот макрос подходит для тех у кого небольшая база данных, которую вполне можно уместить в Экселе (ЧП, нотариусы и т.д.), предприятия с большим документооборотом базу данных в Экселе вести не будут.

АВТОМАТИЗАЦИЯ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ, ЧАСТЬ 4: ПЕРЕНОС ДАННЫХ В WORD


В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфейс приложения, организовать проверку вводимых данных и получить число прописью без использования кода VBA. В этой, заключительной статье речь пойдет о волшебстве - переносе всех необходимых значений из рабочей книги Excel в документ Word. Давайте я покажу Вам то, что должно получиться в итоге:
Содержание [показать]

Описание механизма

Для начала в общих чертах опишу, каким именно образом будет происходить перенос данных в документ Word. Прежде всего, нам понадобится шаблон документа Word, содержащий всю разметку, таблицы и ту часть текста, которая будет оставаться неизменной. В этом шаблоне необходимо определить места, в которые будут подставлены значения из рабочей книги Excel, - удобнее всего это сделать с помощью закладок. После этого необходимо упорядочить данные Excel таким образом, чтобы обеспечить соответствие шаблону Word, ну и в последнюю очередь - написать саму процедуру переноса на VBA.
Итак, обо всем по порядку.

Создание шаблона документа Word

Тут все предельно просто - создаем обычный документ, набираем и форматируем текст, в общем, добиваемся того, чтобы получить необходимую форму. В тех местах, куда необходимо будет подставить значения из Excel нужно создать закладки. Это делается следующим образом:
  • Для удобства поддержки напечатать в нужном месте название закладки. Я еще и заключил названия в угловые скобки, так что получилось, например, вот так: <DocumentDate> для закладки, содержащей дату документа.
  • Выделить все название закладки (в моем случае вместе с угловыми скобками), перейти на вкладку "Вставка" и нажать кнопку "Закладка":
    Расположение кнопки "Вставить закладку"
    Расположение кнопки "Вставить закладку"
  • В появившемся диалоговом окне задать для закладки имя (у меня оно совпадает с тем, что написано в угловых скобках) и нажать ОК
Таким образом нужно будет создать все закладки, то есть отметить все места, куда будут вставлены данные из Excel. Получившийся файл нужно сохранить как "Шаблон MS Word" с помощью пункта меню "Файл" -> "Сохранить как...".

Подготовка данных Excel

Я решил для удобства поместить все данные, которые необходимо перенести в документ Word, на отдельном рабочем листе с названием Bookmarks - закладки. На этом листе два столбца: в первом содержатся названия закладок (в точности так, как они названы в документе Word), а во втором - соответствующие значения, подлежащие переносу.
Часть этих значений получена напрямую из листа ввода данных, а часть - из вспомогательных таблиц, расположенных на листе Support. В этой статье я не буду разбирать формулы, рассчитывающие нужные значения, если что-то будет непонятно - задавайте вопросы в комментариях.
На этом этапе важно правильно указать все названия закладок - от этого зависит правильность переноса данных.

Процедура переноса

А вот это - самое интересное. Существует два варианта выполнения кода переноса данных:
  • Код выполняется в рабочей книге Excel, данные передаются в Word по одному значению за раз и сразу же размещаются в документе.
  • Код выполняется в отдельном документе Word, все данные передаются из Excel одним пакетом.
С точки зрения скорости выполнения, особенно при большом количестве закладок, второй вариант выглядит гораздо привлекательнее, однако требует более сложных действий. Именно его я и использовал.
Вот, что необходимо сделать:
  • Создать шаблон документа Word с поддержкой макросов. В этом шаблоне будет содержаться выполняемый код на VBA.
    Почему нужно создать именно шаблон? Таким образом можно защитить программный код от неумышленного изменения. Дело в том, что каждый раз при открытии шаблона создается новый файл Word, сохранить который поверх существующего шаблона просто так не получится. Сам шаблон при этом остается неизменным.
  • В созданный шаблон необходимо поместить программу, написанную на VBA. Для этого необходимо при редактировании шаблона нажать комбинацию клавиш Alt+F11 и ввести в открывшемся окне редактора Visual Basic код программы.
  • В рабочей книге Excel написать код, вызывающий процедуру заполнения из только что созданного шаблона Word.
Текст процедуры я приводить в статье не буду - его можно легко посмотреть в файлеFillDocument.dotm, расположенном в папке Template в архиве с примером.

Как же воспользоваться всем этим для решения именно Вашей задачи?

Понимаю, что на словах это все выглядит очень просто, но что же получается на деле? Я предлагаю Вам просто воспользоваться уже готовым вариантом. Скачайте архив с примером, в рабочей книге Excel нажмите комбинацию клавиш Alt+F11, чтобы открыть редактор Visual Basic и прочитайте все мои комментарии к программе. Для того, чтобы изменить программу под свои нужды Вам понадобится всего лишь изменить значение нескольких констант, они вынесены в самое начало программы. Весь текст программы Вы можете свободно скопировать в свой проект.

Структура архива

В архиве, приложенном к этой статье, содержится несколько файлов.
Основной файл - рабочая книга Excel с названием "Создание подтверждений". В этой рабочей книге 4 рабочих листа, из которых отображаются только два: "Input" - лист ввода данных и "Database" - архив всех введенных документов.
В папке Templates находятся шаблоны документов Word. Один из них - шаблон, содержащий программу заполнения закладок, а второй - форма для заполнения. Вы можете использовать без изменений шаблон с программой, но форму для заполнения, естественно, придется переделать в соответствии с Вашими нуждами.

Как переработать пример "под себя"?

Я рекомендую придерживаться следующей последовательности действий:
  1. Подготовить шаблон документа Word, который необходимо заполнить. Создать в нем все необходимые закладки и сохранить как "шаблон MS Word".
  2. Скопировать в папку с подготовленным шаблоном файл FillDocument.dotm из архива, приложенного к этой статье. Этот файл отвечает за заполнение закладок шаблона, и в нем ничего менять не нужно.
  3. Подготовить рабочую книгу Excel для ввода данных. Вам решать, будет ли она обладать каким-либо "продвинутым" пользовательским интерфейсом и осуществлять разные хитрые расчеты. Главное, чтобы в ней содержался рабочий лист с таблицей соответствия имени закладки в шаблоне Word и значения, которое нужно подставить.
  4. Вставить в подготовленную рабочую книгу код программы на VBA из файла-примера. Заменить все константы в соответствии с Вашим проектом.
  5. Протестировать правильность работы.
  6. Активно пользоваться!

Вместо заключения

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

Другие статьи из цикла:

  1. Общие требования к приложению
  2. Разработка пользовательского интерфейса
  3. Получение числа прописью.

Скачать файл с архивом приложения

По этой ссылке Вы перейдете на сайт Microsoft SkyDrive, где Вам будет предложено скачать файл Confirm.rar - это и есть архив приложения.

вторник, 3 февраля 2015 г.

Doc.investintech.com

docxdoc
Doc.investintech.com
Новый формат .docx впервые был применен в офисном пакете Word 2007. Все файлы, в формате .docx не совместимы с более ранними версиями продуктов Microsoft Word. Файлы открываются только после установки специального пакета Office Compatiblity Pack.
Сервис doc.investintech.com позволяет преобразовывать .docx в .doc прямо в браузере. Он полностью бесплатен и не требует регистрации или указания адреса электронной почты. Для конвертации достаточно выбрать нужный файл и нажать кнопку «Convert» — после этого останется только скачать готовый документ в формате .doc.
Главным преимуществом онлайн–конвертера является скорость конвертации. Вам не нужно искать, скачивать и устанавливать программу. Нужно просто выбрать документ и произвести конвертацию.