Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Creating tables with alternating text in Word using Javascript

Posted on 2008-10-13
2
Medium Priority
?
370 Views
Last Modified: 2012-06-27
I am trying to create a MS Word doc with Javascript. I have had some success with being able to either create the table or the text and populate the table cells with values. When I try to alternate a table then text then another table, the text ends up in the first cell of the first table. This is run from an IE browser.
What am I missing?

function fnCreateWord() {
	var objWord = new ActiveXObject("Word.Application");
	objWord.Caption = "Test";
 
	objDoc = objWord.Documents.Add()
	objWord.Application.Visible = true;
	objSelection = objWord.Selection;
	
	var tbl = objDoc.Tables.Add(objWord.Selection.Range,4,3);
 
// The following is placed properly into the second cell and second column. 	
	var cCell = tbl.cell(2,2).range;
	tbl.cell(2,2).Column.Width = 100;
	cCell.Font.Bold = true;
	cCell.Font.Size = "18";
	cCell.text =  "ZZZZZZZZZZZZ";
 
// The following ends up in first row and the first column of tbl. It needs to be after the table. 
	objSelection.Font.Name = "Arial";
	objSelection.Font.Size = "18";
	objSelection.TypeText("AAAAAAAAAAAAAA");
	objSelection.TypeParagraph();
 
	objSelection.Font.Size = "14";
	objSelection.TypeText("" + Date() );
	objSelection.TypeParagraph();
	objSelection.TypeParagraph();
// There needs to be another table inserted here with more text following. 
}

Open in new window

0
Comment
Question by:HarleyInDTX
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 29

Accepted Solution

by:
Pravin Asar earned 800 total points
ID: 22944710
Here is a complete solution.

Please try it with IE browser

<html>
<head>
<title>Create Word Document/Page Title</title>
<style type="text/css">
</style>
<script language="javascript">
var EndOfStory =6;
 
function fnCreateWord() {
        var objWord = new ActiveXObject("Word.Application");
        objWord.Caption = "Test";
 
        objDoc = objWord.Documents.Add()
        objWord.Application.Visible = true;
 
        objSelection = objWord.Selection;
        var paragraph = objDoc.Paragraphs.Add();
 
        // Text Before Table 1
        paragraph.Range.Text = "Table 1";
 		objSelection.EndKey(EndOfStory);
        objSelection.TypeParagraph();
        objSelection.TypeParagraph();
 
        // Table 1
        objSelection = objWord.Selection;        
        var tbl1 = objDoc.Tables.Add(objSelection.Range,3,3);
	    var objTable = tbl1;
 
		objTable.Cell(1, 1).Range.Text = "Row 1, Column 1";
		objTable.Cell(1, 2).Range.Text = "Row 1, Column 2";
		objTable.Cell(1, 3).Range.Text = "Row 1, Column 3";
 		objSelection.EndKey(EndOfStory);
		objSelection.TypeParagraph();
 
        // Some Text 
		objSelection.TypeParagraph();
		objSelection.TypeParagraph();
        objSelection.Text = "My Text";
 		objSelection.EndKey(EndOfStory);
		objSelection.TypeParagraph();
		objSelection.TypeParagraph();
 
        // Text Before Table 2
        objSelection = objWord.Selection;
        var paragraph = objDoc.Paragraphs.Add();
        paragraph.Range.Text = "Table 2";
 		objSelection.EndKey(EndOfStory);
        objSelection.TypeParagraph();
 
        // Table 2
 
        objSelection = objWord.Selection;
        objSelection.TypeParagraph();
        var tbl2 = objDoc.Tables.Add(objSelection.Range,3,3);
	    
 
		tbl2.Cell(1, 1).Range.Text = "Table 2 Row 1, Column 1";
		tbl2.Cell(1, 2).Range.Text = "Table 2 Row 1, Column 2";
		tbl2.Cell(1, 3).Range.Text = "Table 2 Row 1, Column 3";
        objSelection.EndKey (EndOfStory);
        objSelection.TypeParagraph();
}
</script>
</head>
<body onload="fnCreateWord();">
</body>
</html>

Open in new window

0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes how to use the Send to Mail Recipient command. The instructions apply generally to Office 2007 and later versions, but Microsoft® Word 2013 was used for the specific steps and figures.  What is Send to Mail Recipient? Send…
This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
This video shows and describes the main difference between both orientations in Microsoft Word. Viewers will understand when to use each orientation and how to get the most out of them.
Learn how to make your own table of contents in Microsoft Word using paragraph styles and the automatic table of contents tool. We'll be using the paragraph styles in Word’s Home toolbar to help you create a table of contents. Type out your initial …

704 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question