Using aPOI and .xlsx spreadsheet.
Date in spreadsheet is 9/1/2022.
When I load this date from my spreadsheet the value is 44805. Line 104.
What am I doing wrong in loading the date from the spreadsheet so that it loads as a date instead of ticks?
In Line 110 the Log always shows 12/31/69 no matter what the cell.NumericCellValue in line 104.
Thank you all in advance for your help.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			Date in spreadsheet is 9/1/2022.
When I load this date from my spreadsheet the value is 44805. Line 104.
What am I doing wrong in loading the date from the spreadsheet so that it loads as a date instead of ticks?
In Line 110 the Log always shows 12/31/69 no matter what the cell.NumericCellValue in line 104.
Thank you all in advance for your help.
			
				The data gets loaded from the spreadsheet here::
			
		
		
		Sub LoadArrays
    Log("LoadArrays sub started")
    Private ExitFlag As Boolean = False
 
    Starter.TodoList.Initialize
    Categories.Initialize
    Statuses.Initialize
    Contexts.Initialize
    Projects.Initialize
 
    Log("Starter.SpreadsheetDir = "&Starter.SpreadsheetDir)
    Log("Starter.FileName = "&Starter.FileName)
 
    xls.Initialize("",File.Combine(Starter.SpreadsheetDir, Starter.FileName))
    Private TodoSheet As XLSSheet = xls.getSheetAt(0) 'Selects the first sheet in the spreadsheet.
 
    Private TodoSheetFirstRow As Int = TodoSheet.FirstRowNum 'The row numbering starts at 0.  Not 1 like normal spreadsheet cell addresses.  If the first row is blank, this will be 1.  If the first row is not blank, this will be 0.
    Private TodoSheetLastRow As Int = TodoSheet.LastRowNum 'This is the last row which is not blank.
    Log("Todo Sheet Row FirstRow= "&TodoSheetFirstRow& "LastRow= "&TodoSheetLastRow)
 
    For RowNumber = TodoSheetFirstRow To TodoSheetLastRow
        ExitFlag = False
        'Log("...")
        Private TempTodo As Todo 'Each row holds the data for a new Todo Item to be added to Starter.TodoList.
        TempTodo.Initialize
     
        Dim Row As XSSFRow =TodoSheet.getRow(RowNumber)
        'Log("Row #"&RowNumber& "FirstCell="&Row.FirstCellNum&", LastCell="&Row.LastCellNum)
        'Log("Row Number = "&RowNumber)
        Private ActiveColumns As List 'We only want data from certain columns of the spreadsheet to show in the tables.
        ActiveColumns.Initialize
        ActiveColumns.AddAll(Array As Int(0,1,2,5,6,9,11,14,18))
     
        For ColumnNumber = 0 To ActiveColumns.Size - 1
            Private CellNumber As Int
            CellNumber = ActiveColumns.Get(ColumnNumber)
     
            Dim cell As XSSFCell =Row.getCell(CellNumber)
            If cell.IsInitialized Then
                'Log("Cell # "&CellNumber)
                'Log("Cell Initialized = "&cell.IsInitialized)
                'Log("Raw:"&cell.RawValue)'Log("Raw:"&cell.RawValue)
                'Log("CellValueType= "&cell.CellType)
                Select Case CellNumber
                    Case 0 'ID
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(0) = cell.StringCellValue
                        Else
                            TempTodo.ID = cell.NumericCellValue
                            'Log("TempTodo.ID = "&TempTodo.ID)
                        End If
                    Case 1 'TodoName
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(1) = cell.StringCellValue
                        Else
                            TempTodo.Name = cell.StringCellValue
                            'Log("TempTodo.Name = "&TempTodo.Name)
                        End If
                    Case 2 'Status
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(2) = cell.StringCellValue
                        Else
                            TempTodo.Status = cell.NumericCellValue
                            'Log("TempTodo.Status = "&TempTodo.Status)
                            If TempTodo.Status = 0 Or TempTodo.Status > 4 Then
                                ExitFlag = True
                            End If
                        End If
                    Case 5 'Context
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(3) = cell.StringCellValue
                        Else
                            TempTodo.Context = cell.NumericCellValue
                            'Log("TempTodo.Context = "&TempTodo.Context)
                        End If
                    Case 6 'Category
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(4) = cell.StringCellValue
                        Else
                            TempTodo.Category = cell.NumericCellValue
                            'Log("TempTodo.Category = "&TempTodo.Category)
                        End If
                    Case 9 'Priority
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(5) = cell.StringCellValue
                        Else
                            TempTodo.Priority = cell.NumericCellValue
                            'Log("TempTodo.Priority = "&TempTodo.Priority)
                        End If
                    Case 11 'Project
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(6) = cell.StringCellValue
                        Else
                            TempTodo.Project = cell.NumericCellValue
                            'Log("TempTodo.Project = "&TempTodo.Project)
                        End If
                    Case 14 'DueDate
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(7) = cell.StringCellValue
                        Else
                            If cell.RawValue <> Null Then
                                Log("Raw:"&cell.RawValue)'Log("Raw:"&cell.RawValue)
                                TempTodo.DueDate = cell.NumericCellValue
                                Log("RowNumber = "&RowNumber)
                                Log("Cell Numeric Value = "&cell.NumericCellValue)
                                Log("TempTodo.DueDate = "&TempTodo.DueDate)
                                Log("Date check: "&isCellInternalDateFormatted(cell))
                                DateTime.DateFormat="MM/dd/yy"
                                Log(DateTime.Date(cell.NumericCellValue))  ***ALWAYS shows 12/31/69 in the log no matter what the cell.NumericCellValue.
                            End If
                        End If
                    Case 18 'Note
                        If RowNumber = TodoSheetFirstRow Then
                            HeaderRow(8) = cell.StringCellValue
                        Else
                            TempTodo.Note = cell.StringCellValue
                            'Log("TempTodo.Note = "&TempTodo.Note)
                        End If
                End Select
     
                'Cell Types: Numeric is type 0. 1 is Text. 2 is Formula. 3 is Blank. 4 is Boolean. 5 is error.
                'Log(cell)
                'Log(row)
            End If
            If ExitFlag = True Then Exit
        Next
        If ExitFlag = False Then Starter.TodoList.Add(TempTodo)
    Next
	
			
				Last edited: