From f1cab31d11862d3513462302665b514160f63fb1 Mon Sep 17 00:00:00 2001
From: Jann Peter Rocas <aeegvk@gmail.com>
Date: Tue, 24 Jan 2023 15:39:14 +0800
Subject: [PATCH 1/2] modified version of writeSheetRow

modified writeSheetRow as writeSheetRowHeader and force format to general and auto
---
 xlsxwriter.class.php | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/xlsxwriter.class.php b/xlsxwriter.class.php
index e4ebdc5..74c81e1 100644
--- a/xlsxwriter.class.php
+++ b/xlsxwriter.class.php
@@ -287,6 +287,45 @@ class XLSXWriter
 		$sheet->row_count++;
 		$this->current_sheet = $sheet_name;
 	}
+	
+	public function writeSheetRowHeader($sheet_name, array $row, $row_options=null)
+	{
+		if (empty($sheet_name))
+			return;
+
+		$this->initializeSheet($sheet_name);
+		$sheet = &$this->sheets[$sheet_name];
+		if (count($sheet->columns) < count($row)) {
+			$default_column_types = $this->initializeColumnTypes( array_fill($from=0, $until=count($row), 'GENERAL') );//will map to n_auto
+			$sheet->columns = array_merge((array)$sheet->columns, $default_column_types);
+		}
+		
+		if (!empty($row_options))
+		{
+			$ht = isset($row_options['height']) ? floatval($row_options['height']) : 12.1;
+			$customHt = isset($row_options['height']) ? true : false;
+			$hidden = isset($row_options['hidden']) ? (bool)($row_options['hidden']) : false;
+			$collapsed = isset($row_options['collapsed']) ? (bool)($row_options['collapsed']) : false;
+			$sheet->file_writer->write('<row collapsed="'.($collapsed ? 'true' : 'false').'" customFormat="false" customHeight="'.($customHt ? 'true' : 'false').'" hidden="'.($hidden ? 'true' : 'false').'" ht="'.($ht).'" outlineLevel="0" r="' . ($sheet->row_count + 1) . '">');
+		}
+		else
+		{
+			$sheet->file_writer->write('<row collapsed="false" customFormat="false" customHeight="false" hidden="false" ht="12.1" outlineLevel="0" r="' . ($sheet->row_count + 1) . '">');
+		}
+
+		$style = &$row_options;
+		$c=0;
+		foreach ($row as $v) {
+		    $number_format = 'GENERAL';
+		    $number_format_type = 'n_auto';
+		    $cell_style_idx = empty($style) ? $sheet->columns[$c]['default_cell_style'] : $this->addCellStyle( $number_format, json_encode(isset($style[0]) ? $style[$c] : $style) );
+		    $this->writeCell($sheet->file_writer, $sheet->row_count, $c, $v, $number_format_type, $cell_style_idx);
+		    $c++;
+		}
+		$sheet->file_writer->write('</row>');
+		$sheet->row_count++;
+		$this->current_sheet = $sheet_name;
+	}
 
 	public function countSheetRows($sheet_name = '')
 	{
-- 
GitLab


From f5bdf4658e4295e983d026802f14dabd30074652 Mon Sep 17 00:00:00 2001
From: Jann Peter Rocas <aeegvk@gmail.com>
Date: Tue, 24 Jan 2023 15:43:11 +0800
Subject: [PATCH 2/2] Update xlsxwriter.class.php

---
 xlsxwriter.class.php | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xlsxwriter.class.php b/xlsxwriter.class.php
index 74c81e1..1c76ed3 100644
--- a/xlsxwriter.class.php
+++ b/xlsxwriter.class.php
@@ -288,6 +288,7 @@ class XLSXWriter
 		$this->current_sheet = $sheet_name;
 	}
 	
+	// As suggested in stackoverflow by grabo44 https://stackoverflow.com/users/10551285/grabo44
 	public function writeSheetRowHeader($sheet_name, array $row, $row_options=null)
 	{
 		if (empty($sheet_name))
@@ -316,8 +317,8 @@ class XLSXWriter
 		$style = &$row_options;
 		$c=0;
 		foreach ($row as $v) {
-		    $number_format = 'GENERAL';
-		    $number_format_type = 'n_auto';
+		    $number_format = 'GENERAL'; // set to GENERAL format
+		    $number_format_type = 'n_auto'; // set to auto format type
 		    $cell_style_idx = empty($style) ? $sheet->columns[$c]['default_cell_style'] : $this->addCellStyle( $number_format, json_encode(isset($style[0]) ? $style[$c] : $style) );
 		    $this->writeCell($sheet->file_writer, $sheet->row_count, $c, $v, $number_format_type, $cell_style_idx);
 		    $c++;
-- 
GitLab