Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Creating tables with alternating text in Word using Javascript

Posted on 2008-10-13
2
Medium Priority
?
375 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
1 Comment
 
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 Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

This article shows how to get a list of available printers for display in a drop-down list, and then to use the selected printer to print an Access report or a Word document filled with Access data, using different syntax as needed for working with …
In this blog, we’ll look at how improvements to Percona XtraDB Cluster improved IST performance.
This video teaches the viewer how to align pictures around text while keeping the text properly aligned in the document.
In a previous video Micro Tutorial here at Experts Exchange (http://www.experts-exchange.com/videos/1358/How-to-get-a-free-trial-of-Office-365-with-the-Office-2016-desktop-applications.html), I explained how to get a free, one-month trial of Office …
Suggested Courses

782 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