Mail Merging in MSWord from Within Javascript

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • North Country Boy

    Mail Merging in MSWord from Within Javascript

    Hi

    I'm trying to run the mail merge operation in MS Word from within
    Javascript. I've already done this in VB but I'm having problems
    trying to do the same thing in Javascript. First I am trying to create
    a textfile which is the datasource for the mail merge process, then
    I'm trying to run Word and mail merge.

    The code I am trying to use in Javascript is:

    var objFSO = new ActiveXObject( "Scripting.File SystemObject" );
    var objTextFile = objFSO.CreateTe xtFile("C:\temp ", true);
    var MergeTags = "Title|Forename |Surname";
    var MergeData = "TestTitle|Test Forename|TestSu rname";

    objTextFile.wri teline (MergeTags);
    objTextFile.wri teline (MergeData);
    objTextFile.Clo se;

    objFSO = null;
    objTextFile = null;

    var objWordApp = new ActiveXObject(" Word.Applicatio n");
    objWordApp.Visi ble = true;

    var FName = "C:\Development \ATOFina\CBS\Te mplates\Course. doc";
    var objWordDoc = objWordApp.Docu ments.Open(File name:=FName);
    objWordDoc.Sele ct;

    var objWordSelectio n = objWordApp.Sele ction;
    var objWordMailMerg e = objWordDoc.Mail Merge;

    objWordDoc.Mail Merge.OpenDataS ource(Name:="C: \temp\merge.dat ",
    LinkToSource:=T rue, addtorecentfile s:=False);

    objWordDoc.Mail Merge.Execute;
    var objWordMerged = objWordApp.Acti veDocument;

    objWordApp.Opti ons.DefaultFile Path(Path:=wdDo cumentsPath) = "C:\temp";

    objWordDoc.Sele ct;
    objWordDoc.Clos e;
    objWordMerged.S elect;


    Any comments on how I can get this to work?
  • Vjekoslav Begovic

    #2
    Re: Mail Merging in MSWord from Within Javascript

    "North Country Boy" <kmcgregor@fast mail.fm> wrote in message
    news:681286b3.0 311200325.5905f 0a2@posting.goo gle.com...[color=blue]
    > Hi
    >
    > I'm trying to run the mail merge operation in MS Word from within
    > Javascript. I've already done this in VB but I'm having problems
    > trying to do the same thing in Javascript. First I am trying to create
    > a textfile which is the datasource for the mail merge process, then
    > I'm trying to run Word and mail merge.
    >
    > The code I am trying to use in Javascript is:
    >
    > var objFSO = new ActiveXObject( "Scripting.File SystemObject" );
    > var objTextFile = objFSO.CreateTe xtFile("C:\temp ", true);[/color]

    In JScript, you have to escape backslash. Put:
    var objTextFile = objFSO.CreateTe xtFile("C:\\tem p", true);
    [color=blue]
    > var MergeTags = "Title|Forename |Surname";
    > var MergeData = "TestTitle|Test Forename|TestSu rname";
    >
    > objTextFile.wri teline (MergeTags);
    > objTextFile.wri teline (MergeData);
    > objTextFile.Clo se;[/color]

    Should be objTextFile.Clo se();
    [color=blue]
    > var FName = "C:\Development \ATOFina\CBS\Te mplates\Course. doc";[/color]

    Should be \\ instead of \.
    [color=blue]
    > var objWordDoc = objWordApp.Docu ments.Open(File name:=FName);[/color]

    This is wrong. Since Open method of Documents property looks:

    ..Open(FileName , ConfirmConversi ons, ReadOnly, AddToRecentFile s,
    PasswordDocumen t, PasswordTemplat e, Revert, WritePasswordDo cument,
    WritePasswordTe mplate, Format, Encoding, Visible)

    you have to write:

    var objWordDoc = objWordApp.Docu ments.Open(FNam e);

    (if you pass FName only, of course). If you want to pass FileName and
    ReadOnly parameters, you will have to write:

    var objWordDoc = objWordApp.Docu ments.Open(FNam e,undefined,fal se);

    [color=blue]
    > objWordDoc.Mail Merge.OpenDataS ource(Name:="C: \temp\merge.dat ",[/color]

    Same thing.
    [color=blue]
    > objWordDoc.Mail Merge.Execute;[/color]

    Should be: objWordDoc.Mail Merge.Execute() ;
    [color=blue]
    > objWordApp.Opti ons.DefaultFile Path(Path:=wdDo cumentsPath) = "C:\temp";[/color]

    Wrong.
    [color=blue]
    > objWordDoc.Sele ct;
    > objWordDoc.Clos e;
    > objWordMerged.S elect;[/color]

    objWordDoc.Sele ct();
    objWordDoc.Clos e();
    objWordMerged.S elect();

    Vjekoslav


    Comment

    • Albert Wagner

      #3
      Re: Mail Merging in MSWord from Within Javascript

      On 20 Nov 2003 03:25:00 -0800
      kmcgregor@fastm ail.fm (North Country Boy) wrote:
      <snip>
      Thank god you are trying to do this with IE proprietary "features." At
      least the rest of us are safe.

      --
      Then there was the man who drowned crossing a stream with an average
      depth of six inches.
      -- W. I. E. Gates

      Comment

      Working...