This guide will illustrate the process of working with tables. You will gain proficiency in creating, inserting, editing, and customizing tables in your documents.
Before you begin
You should get your API key from your UniCloud account.
If this is your first time using UniOffice SDK, follow this guide to set up a local development environment.
Clone the project repository
In your terminal, clone the examples repository. It contains the Go code we will be using for this guide.
git clone https://github.com/unidoc/unioffice-examples
Navigate to the path
document/tables folder in the unioffice-examples directory.
How it works
4-15 import the UniOffice packages and other required dependencies.
The init function in lines
17-24 authenticates your request with your
In the main function, spanning from line 26 to 272, the code creates seven different tables, each with distinct properties.
The first table, from lines
31 to 47, is created using the
AddTable method. The width percentage is set using the
SetWidthPercent function. Lines
36 and 37 define common border styles for all cells using the
Once the table is created, a row is added using the
AddRow method. To this row, a cell is added with the
AddCell method, and within this cell, a paragraph is created. Inside the paragraph, a run with the text “Name” is added. Following this, in the same row, another cell is added with another paragraph and run containing the text “John Smith.” Subsequently, another row is added, and two more cells are appended to it, each containing the texts “Street Address” and “111 Country Road,” respectively.
To move on to the creation of the second table, a paragraph is added at the end of the first one using the
This table, spanning from line
52 to 83, is added to the document, and its width is set using the
SetWidth method with a predefined measurement in inches. Once again, border styles are defined for the table, and a new row is added. This time, a cell is configured to span two columns using the
Following this, another row is created, containing two cells. The first cell utilizes the
SetVerticalMerge function with the
ST_MergeRestart attribute, while the second cell remains empty.
A similar row is added again, but this time the
SetVerticalMerge function is used with the
ST_MergeContinue attribute, causing the previous cell and this one to merge into a single cell, with only the text from the upper cell remaining.
Finally, one more row is added with two additional cells.
In the third table that goes from line
88 to 126, the width percentage and border styles are configured. Subsequently, a row is added, and three cells are inserted. Each cell is given a shading style using the
SetShading function, and a paragraph is added to each cell with the assigned alignment using the SetAlignment function.
On line 114, the color “LightGray” is defined, and a loop iterates five times. In each iteration, a row is added, and within each row, three cells are inserted, each with a paragraph and an empty run. Additionally, if the row is even, a shading style is applied using the
SetShading method, as seen in line
The fourth table, spanning from line
130 to 147, is configured with a width percentage and centered alignment. The table properties also include border styles.
A row is added, and the row height is set to 2 inches with an exact height rule using the
Within the row, a cell is added with vertical alignment set to center using
SetVerticalAlignment. A paragraph is created in this cell, and the alignment for the paragraph is set to center using
SetAlignment. A run is added to the paragraph with the text “hello world”.
Fifth and Sixth Tables
The fifth table, from line
151 to 194, is created with a width percentage and centered alignment. Border styles are applied to the table.
A row is added, and it contains two cells. The first cell’s width is set to 25% of the table width, and the second cell’s width is set to 75% using
SetWidthPercent function. Paragraphs are added to both cells, each with the text “hello” in the first cell and “world” in the second cell.
Following this, a new table is started. It follows the same styling and consists of a row with two cells, each containing “hello” and “world” text, respectively.
Sixth Table - Insert
The sixth table, from line
241 to 266, demonstrates how to insert a new table into an existing document. It starts with the insertion of a new paragraph before an existing one and then inserts a table.
This inserted table follows the same styling as the previous tables, with a width percentage, centered alignment, and border styles. It consists of a row with three cells, each containing “Insert,” “new,” and “table” text, respectively.
Seventh Table - Styled
The seventh table, spanning from line
197 to 238, is constructed using a custom table style named “MyTableStyle”. This style encompasses various formatting options. Firstly, it sets the row band size with
SetRowBandSize, then the column band size with
SetColumnBandSize, and finally, it specifies the table’s indent with
206 and 207, horizontal banding is established for the table. This involves alternating the background shading of rows to create a striped appearance.
210 and 211, it’s indicated that the first row of the table should be formatted in bold. Similarly, lines
214 and 215 specify that the last row of the table should be in bold, along with assigning a double top border.
219, border styles for the table are applied, and subsequently, the table is added to the document. Following this, the layout, width percentage, and the previously defined style using
225) are set.
TableLook, a reference to the table’s appearance properties is obtained. All the previously defined special properties in the created style are then applied, including
Lastly, using two nested loops, a table with 5 rows and 5 cells in each row is generated. Each cell contains text indicating its corresponding row and column, all while adhering to the previously defined style.
Run the code
To generate a Word document that contains all these mentioned tables, execute the following command:
go run main.go