Generating Script from Julia: Incorrect Dates Appearing in Microsoft One Drive

I am generating a report in an excel format based upon a script within Julia. However, when the output in a file is uploaded onto One Drive, the date created and modified are incorrect, sometimes a few years out.

Could this down to the security tool scanning through the Julia code and altering the meta details of the file?

Welcome. It’s really hard to say what’s happening here, but I’d be very surprised if it’s related to Julia at all. I’d just go step by step on each system and make sure that the file’s metadata are correct at every step of the process.

Are you using XLSX.jl to create your Excel files? if so, which version?

I see the same effect. For example, an Excel file that I create from scratch has a date of 22/05/2018 03:42.

Here is one I created this morning (screenshot from Windows File Explorer):
image

The Date modified is actually the time my Julia script created the file. I don’t know where the other two dates come from.

I also create a range of plots using Makie, saved as .png files. These show as:
image

Again, the Date modified corresponds to the time my script ran.

The Date created possibly corresponds to the date a file of this name was first created, but I can’t be sure of this. Twice a week, I re-run the script and the files are overwritten.

I’m not at all sure what the significance of the 2018 date is.

XLSX.jl (post v0.10.4) uses ZipArchives.jl to create and write .xlsx files. This package’s Readme lists the following limitations:

  • Ignores time stamps.
  • No way to specify the modification time, times are set to 1980-01-01 00:00:00 DOS date time

Looking inside a .xlsx file produced in this way shows all the internal xml files as:

I raised this issue on ZipArchives.jl and I also reported it through my IT department, but so far, no progress on understanding the issue, never mind resolving it. (Edit - on re-reading, this last sentence sounds critical but it is not meant to be at all.)

ZipArchives.jl is not doing anything fancy here. Just the equivalent of:

Base.open(filename; write=true) do io
    write(io, "excel file data here")
end