Автоматизация делопроизводства MS Word - заполняющиеся текстовые поля формы и поля формы флажка и слияние

Прежде чем это было получено Google, , JotSpot использовал серверную сторону JavaScript, чтобы позволить Вам запросить их базу данных и отобразить Ваши страницы. Они использовали Носорог , чтобы сделать это. CouchDB использует серверную сторону JavaScript для создания представления из их базы данных.

, Как Вы видите от этих примеров, отличный способ использовать JavaScript на сервере для плагинов. Одна из причин, это используется, - то, что можно создать очень изолированную песочницу для людей для выполнения их кода в. Кроме того, из-за способа, которым работает JavaScript как язык, можно предоставить пользователю, оснащающему конкретно заточенный к задачам, которые должны выполнить пользователи. Если Вы делаете это правильно, пользователи не должны узнавать, что нового языка для выполнения их задач, быстрого взгляда на API и примеры достаточно для получения их на их пути. Сравните это со многими из других языков, и Вы видите, почему с помощью серверной стороны JavaScript для обеспечения сменной архитектуры так соблазнителен.

А вторичное популярное решение, то, которое видно через проект как Jaxer, то, что типичная проблема веб-приложений, которые делают клиентскую проверку, состоит в том, что, так как JavaScript легко обойден в браузере, проверка должна быть выполнена еще раз на сервере. Система как Jaxer позволяет Вам писать некоторую функциональность проверки, которая является допускающей повторное использование и между сервером и между клиентом.

11
задан Daver 3 September 2009 в 05:12
поделиться

1 ответ

I will sent two examples for solving your automation problem. The first one is using MailMerge and the second is using bookmarks.

The word file looks like this:

Using MailMerge (Insert - > Quick Parts -> Field -> Mail merge -> Merge field) First name: «firstName» Last name: «lastName»

=======

Using Bookmarks( Insert -> BookMark) First name: (<- the bookmark is here, it’s not visible) Last name:

And the code is following:

  1. Using bookmarks

     Open("D:/Doc1.doc");
     if (oDoc.Bookmarks.Exists("bkmFirstName"))
     {
     object oBookMark = "bkmFirstName";
     oDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = textBox1.Text;
     }
    
     if (oDoc.Bookmarks.Exists("bkmLastName"))
     {
     object oBookMark = "bkmLastName";
     oDoc.Bookmarks.get_Item (ссылка oBookMark) .Range.Text = textBox2.Text;
     }
    
    Сохранить как ("D: /Test/Doc2.doc"); Уволиться();
     MessageBox.Show («Файл успешно сохранен!»);
    
  2. Использование MailMerge

      Открыть ("D: /Doc1.doc");
     foreach (поле myMergeField в oDoc.Fields)
     {
     // iTotalFields ++;
     Диапазон rngFieldCode = myMergeField.Code;
     Строка fieldText = rngFieldCode.Text;
    
     // ПОЛУЧАТЬ только поля MAILMERGE
     если (fieldText.StartsWith ("MERGEFIELD"))
     {
     Int32 endMerge = fieldText.IndexOf ("\\");
     Int32 fieldNameLength = fieldText.Length - endMerge;
     Строка fieldName = fieldText.Substring (11, endMerge - 11);
    
     fieldName = fieldName.Trim ();
     если (fieldName == "firstName")
     {
     myMergeField.Select ();
     oWordApplic.Selection.TypeText («Этот текст заменяет поле в шаблоне»);
     }
     }
     }
    Сохранить как ("D: /Test/Doc2.doc"); Уволиться();
     MessageBox.Show («Файл успешно сохранен!»);
    

I've also used some helper methods.

    ApplicationClass oWordApplic = new Microsoft.Office.Interop.Word.ApplicationClass();
    private Microsoft.Office.Interop.Word.Document oDoc = new Document();

    public void Open(string strFileName)
    {
        object fileName = strFileName;
        object readOnly = false;
        object isVisible = true;
        object missing = System.Reflection.Missing.Value;

        oDoc = oWordApplic.Documents.Open(ref fileName, ref missing, ref readOnly,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);

        oDoc.Activate();
    }

    public void SaveAs(string strFileName)
    {
        object missing = System.Reflection.Missing.Value;
        object fileName = strFileName;

        oDoc.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
    }

    public void Quit()
    {
        object missing = System.Reflection.Missing.Value;
        oWordApplic.Application.Quit(ref missing, ref missing, ref missing);
    }

I hope that this implementation will give some ideas for solving your problem.

15
ответ дан 3 December 2019 в 08:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: