@@ -136,7 +136,7 @@ private function getPreviewData(Worksheet $worksheet): array {
136136 $ columns [] = [
137137 'title ' => $ title ,
138138 'type ' => $ this ->rawColumnDataTypes [$ colIndex ]['type ' ],
139- 'subtype ' => $ this ->rawColumnDataTypes [$ colIndex ]['subtype ' ],
139+ 'subtype ' => $ this ->rawColumnDataTypes [$ colIndex ]['subtype ' ] ?? null ,
140140 'numberDecimals ' => $ this ->rawColumnDataTypes [$ colIndex ]['number_decimals ' ] ?? 0 ,
141141 'numberPrefix ' => $ this ->rawColumnDataTypes [$ colIndex ]['number_prefix ' ] ?? '' ,
142142 'numberSuffix ' => $ this ->rawColumnDataTypes [$ colIndex ]['number_suffix ' ] ?? '' ,
@@ -367,8 +367,10 @@ private function createRow(Row $row): void {
367367
368368 $ value = $ cell ->getValue ();
369369 $ hasData = $ hasData || !empty ($ value );
370- if ($ column ->getType () === 'datetime ' ) {
370+ if ($ column ->getType () === 'datetime ' && $ column -> getSubtype () === '' ) {
371371 $ value = Date::excelToDateTimeObject ($ value )->format ('Y-m-d H:i ' );
372+ } elseif ($ column ->getType () === 'datetime ' && $ column ->getSubtype () === 'date ' ) {
373+ $ value = Date::excelToDateTimeObject ($ value )->format ('Y-m-d ' );
372374 } elseif ($ column ->getType () === 'number ' && $ column ->getNumberSuffix () === '% ' ) {
373375 $ value = $ value * 100 ;
374376 } elseif ($ column ->getType () === 'selection ' && $ column ->getSubtype () === 'check ' ) {
@@ -477,6 +479,7 @@ private function parseColumnDataType(Cell $cell): array {
477479 if (Date::isDateTime ($ cell ) || $ originDataType === DataType::TYPE_ISO_DATE ) {
478480 $ dataType = [
479481 'type ' => 'datetime ' ,
482+ 'subtype ' => $ cell ->getCalculateDateTimeType () === Cell::CALCULATE_DATE_TIME_ASIS ? 'date ' : '' ,
480483 ];
481484 } elseif ($ originDataType === DataType::TYPE_NUMERIC ) {
482485 if (str_contains ($ formattedValue , '% ' )) {
0 commit comments