Welcome to docx4j
docx4j is an open source (ASLv2) Java library for creating and manipulating Microsoft Open XML (Word docx, Powerpoint pptx, and Excel xlsx) files.
It is similar to Microsoft's OpenXML SDK, but for Java. docx4j uses JAXB to create the in-memory object representation.
Its emphasis is on power: if the file format supports it, you can do it with docx4j. But first, you'll need to take the time to understand JAXB, and the Open XML file structure
docx4j was created by Plutext Pty Ltd in 2008 - using OpenXML4J for the OPC piece. Plutext still drives the project, but since then docx4j has benefited from contributions from many individuals. The contributors are listed in docx4j's pom.xml.
Search Open XML spec documentation
23 April 2014: docx4j 3.1.0 released. More information.
10 April 2014: docx4j 3.1.0 beta is available.
12 Feb 2014: Docx4j Enterprise Edition consolidates Plutext's MergeDocx, MergePPtx, OLE Helper etc into a single product
10 Feb 2014: docx4j 3.0.1 is available
26 Nov 2013: docx4j 3.0 is available
15 July 2013: Import XHTML code moved into separate project (LGPL)
14 May 2013: docx4j online webapp which can generate docx4j code for you
15 Feb 2013: Commercial support offerings available from Plutext
The HTML version is also available in some other languages (these are machine translations, and from April 2010, so they are a bit dated now):
docx4all is an open source cross platform WYSIWYG editor for docx files, written in Java Swing and JavaFX Script, released under the GPL
DocxEditorKit can open docx files and display the content in JEditorPane (or JTextPane), and save back to docx format.
GDocx is a fluent interface for docx4j.
XPages PDF output
Articles about docx4j
lvdpal's Creating Word documents with Docx4j, which covers tables in some detail
Свое представление (view) в Spring MVC (Russian)
Thanks people for taking the time to write these articles...