For more complex headers, which can span over columns and/or rows use a <f:facet name="header">in the sheet. The facet could be filled with <tc:out/> tags to set the names of the header. Such an output field tag may also contain <tc:gridLayoutConstraint columnSpan="..."/> or <tc:gridLayoutConstraint rowSpan="..."/> to set a span over columns or rows.
<f:facet name="header">
<tc:out/>
<tc:gridLayoutConstraint columnSpan="..."/>
<tc:gridLayoutConstraint rowSpan="..."/>
Tag Library Documentation: <tc:sheet/> | <tc:column/> | <tc:gridLayoutConstraint/>
For multi-header sheets, you should consider to use markup="bordered" for better appearance.
markup="bordered"