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"
<tc:sheet value="#{sheetController.solarList}" var="luminary" rows="11" columns="3fr 2fr 30px 2fr 2fr 2fr 2fr 2fr 2fr" markup="bordered"> <f:facet name="header"> <tc:out value="Name"> <tc:span row="3"/> </tc:out> <tc:out value="Information"> <tc:gridLayoutConstraint columnSpan="2"/> ...