Merging MS Word docx files in Go - UniOffice Golang

Merge Word Docx and Add Cover Pages Using UniOffice

Organizations rely on the creation of hundreds of documents for the successful execution of projects. From planning to managing to finishing, each step is usually accompanied with dozens of documents. Some required by regulations, others used for internal processes.

The creation of these documents takes up valuable and considerable time since it is difficult to automate the process of document creation when each document is unique with each project. However, there exist tools and techniques that can improve the workflow and reduce some of the redundant processes.

UniOffice can help with some of these tasks and supports features that will encourage best practices and allow for some useful shortcuts. In this article, we will be focused on the feature of merging word documents.

Being able to seamlessly merge documents promotes collaboration between a team. It enables them to work on separate modules of large documents and easily merge them at the end. This increases the efficiency of the team and will allow it to distribute the workload and improve the turnaround time.

Another process that is usually quite cumbersome and repetitive is the adding of cover letters in front of documents. For example, if the organization changes the design of their documents or logo then changing the cover pages in archived documents might be an impossible task due to the time it would take.

With the help of UniOffice, you can automate this task by writing some Go code that deletes the old cover page, maybe performs some other manipulations along the way and then appends the new cover page.

Append Cover Pages Using Go

Here’s a playground example that highlights how you can add cover pages to a bunch of letters. It is a fairly modest implementation of the UniOffice library but serves to show you the possibilities that UniOffice is capable of.

In the example, we iterate through the word documents in the playground directory, opening them one by one and appending a cover page behind each of the letters. Some simple conditioning allows us to escape the actual cover page.

Using the Append() method, it is extremely simple to append new content at the correct location of the word documents. The code can be extended to perform far more complex tasks and this snippet just provides you with an example of what the library is capable of.


With UniOffice, you can deal with everything related to word documents, excel and presentation files. The library is able to manipulate docx files - programmatically creating letters, editing existing files and also detecting content. For excel files, you can generate formulas, create complex sheets and simply use the flexibility of golang with the power of excel sheets.

You can check out more examples in our repositories and also go through the knowledgebase to get started with our libraries. If you want the library to have a feature, feel free to open an issue on the repository and we will take it into consideration.