@@ -137,22 +137,30 @@ protected function initializeSheet($sheet_name)
137137 $ sheet ->file_writer ->write ( '<sheetData> ' );
138138 }
139139
140- public function writeSheetHeader ($ sheet_name , array $ header_types , $ format = 'xlsx ' , $ delimiter = '; ' ) {
140+ public function writeSheetHeader ($ sheet_name , array $ header_types , $ format = 'xlsx ' , $ delimiter = '; ' , $ subheader = NULL ) {
141141 if (empty ($ sheet_name ) || empty ($ header_types ) || !empty ($ this ->sheets [$ sheet_name ])) {
142142 return ;
143143 }
144144 if ($ format == 'csv ' ) {
145145 $ this ->writeCSVLine ($ header_types , true , $ delimiter );
146146 }
147+ if (!empty ($ subheader )) {
148+ $ this ->writeSheetRow ($ sheet_name , [' ' ], $ format , $ delimiter );
149+ $ this ->writeSheetRow ($ sheet_name , [$ subheader ], $ format , $ delimiter );
150+ $ this ->writeSheetRow ($ sheet_name , [' ' ], $ format , $ delimiter );
151+ $ start = 3 ;
152+ } else {
153+ $ start = 0 ;
154+ }
147155
148156 self ::initializeSheet ($ sheet_name );
149157 $ sheet = &$ this ->sheets [$ sheet_name ];
150158 $ sheet ->cell_formats = array_values ($ header_types );
151159 $ header_row = array_keys ($ header_types );
152160
153- $ sheet ->file_writer ->write ('<row collapsed="false" customFormat="false" customHeight="false" hidden="false" ht="12.1" outlineLevel="0" r=" ' . (1 ) . '"> ' );
161+ $ sheet ->file_writer ->write ('<row collapsed="false" customFormat="false" customHeight="false" hidden="false" ht="12.1" outlineLevel="0" r=" ' . ($ start + 1 ) . '"> ' );
154162 foreach ($ header_row as $ k => $ v ) {
155- $ this ->writeCell ($ sheet ->file_writer , 0 , $ k , $ v , 'blackheader ' );
163+ $ this ->writeCell ($ sheet ->file_writer , $ start , $ k , $ v , 'blackheader ' );
156164 }
157165 $ sheet ->file_writer ->write ('</row> ' );
158166 $ sheet ->row_count ++;
0 commit comments