use 5.014; # strict, //, s//r use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Excel'; use Win32::OLE::Variant; use Win32::OLE::NLS qw(:LOCALE :DATE); my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); # get already active Excel use Data::Dump qw/dd/; my $Book = $Excel->Workbooks('Book1'); my $Sheet = $Book->Worksheets(1); print "Text => ", $Sheet->Range("A1")->Text(); print "Value => ", $Sheet->Range("A1")->Value(); print "{Value} => ", $Sheet->Range("A1")->Value(); my $sheetdate = Variant(VT_DATE, $Sheet->Range("A1")->Value()); print "Date => ", $sheetdate->Date(); print "Date(DATE_LONGDATE) => ", $sheetdate->Date(DATE_LONGDATE); print "Time() => ", $sheetdate->Time(); print "Time(hh:mm:ss) => ", $sheetdate->Time('hh:mm:ss'); print "Time(hh:mm:ss.000) => ", $sheetdate->Time('hh:mm:ss.000'); $Sheet->Range("A1")->{NumberFormat} = "yyyy-MM-dd hh:mm:ss.000"; print $Sheet->Range("A1")->Text(); __END__ Text => 2024-01-26 12:34:56.789 Value => 1/26/2024 12:34:57 PM {Value} => 1/26/2024 12:34:57 PM Date => 1/26/2024 Date(DATE_LONGDATE) => Friday, January 26, 2024 Time() => 12:34:57 PM Time(hh:mm:ss) => 12:34:57 Time(hh:mm:ss.000) => 12:34:57.000 2024-01-26 12:34:56.789