In this article I will show how the Word JavaScript API can be utilized to add tables to your word document using an Office Add-In. This will be a multi part blog post as there are a lot of nuances and interesting ways in which you can play with tables in Word.
Introduction
In previous articles I have written about how to interact with a Word document to search and replace and even save the word document to Salesforce. Going back to a more basic level we are going to look at how to build tables in word.
We will be using the new Script Lab which is a new Playground Add-In which can be used for development and general tinkering with Add-Ins. This and other articles on the topic are for demonstration purposes and are not hardened for production use.
The reference
For more information on Tables and how what methods/properties are available check out the documentation page – Table Object (JavaScript API for Word)
Creating a table
At the most basic level a table is created by instantiating the table object and adding values to it.
insertTable(rowCount: number, columnCount: number, insertLocation: string, values: string[][])
This can be done from a number of different parents:
- The body
- A range
- A contentControl
- A paragraph
The method requires the following:
- rowCount – a number
- columnCount – a number
- insertLocation – Depends on parent – either (body: Start/End/Replace) or (range: Before/After)
- values: 2 dimentional Array – [[“This is”, “a table”], [“this is”, “a new row”]]
Using these parameters we can create a table from within the Script lab using the following code:
$("#run").click(run); async function run() { try { await Word.run(async (context) => { var body = context.document.body; var range = context.document.getSelection(); var myArray = [["a", "b"], ["c", "d"]]; var table = range.insertTable(2, 2, "Before", myArray); // Synchronize the document state by executing the queued commands, // and return a promise to indicate task completion. await context.sync().then(function () { console.log('Table added before the start of the range.'); });; }); } catch (error) { OfficeHelpers.UI.notify(error); OfficeHelpers.Utilities.log(error); } }
Image may be NSFW.
Clik here to view.
Conclusion
Using the Script Lab we have seen how we can easily insert a table into a Word document using the Office Add-In API. In future articles we will look at looking for the table we want to modify and then manipulating tables.
Image may be NSFW.
Clik here to view.
Clik here to view.
