VBA设置文件日期已修改并从c#中读取

时间:2017-10-10 14:50:02

标签: c# excel vba excel-vba

我正在尝试在我在VBA中保存的文件的C#程序中获取正确的日期。

这是我在VBA中的代码,它将单元格设置为日期,然后保存工作表。

Sheets("KeepTrackSecret").Range(tagNumRange).Value = Format(Now(), "MM/dd/yyyy hh:mm AM/PM")

newFileName = objFolders("desktop")
Randomize
newFileName = newFileName & "\BOM_" & CLng(Rnd() * 999999999) & ".xlsx"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs newFileName, FileFormat:=51, CreateBackup:=False
Call unlockSheets(False)
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True

所以上面的代码工作正常。它将当前日期放入单元格中:

enter image description here

文件信息如下所示:

enter image description here

正如你所看到的,两者都匹配得很好。

所以现在我使用一些C#代码来从excel文件中读取单元格值:

private bool checkExcelFile(string orgPath)
{
    var path = string.Format("{0}\\{1}", pathString, importData);

    FileInfo fileInfo = new FileInfo(path);

    DateTime creationTime = fileInfo.CreationTime;
    DateTime lastWriteTime = fileInfo.LastWriteTime;
    DateTime lastAccessTime = fileInfo.LastAccessTime;
    DateTime creationTimeUtc = fileInfo.CreationTimeUtc;
    DateTime lastWriteTimeUtc = fileInfo.LastWriteTimeUtc;
    DateTime lastAccessTimeUtc = fileInfo.LastAccessTimeUtc;

    string strLastModified = System.IO.File.GetLastWriteTime(path).ToString("MM/dd/yyyy hh:mm tt");
    string blah = System.IO.File.GetLastWriteTime(path).ToString("MM/dd/yyyy hh:mm tt");

    DateTime result = Convert.ToDateTime(excel.checkingFile(path));
}

public string checkingFile(string path)
{
    FileInfo newFile = new FileInfo(path);
    ExcelPackage pck = new ExcelPackage(newFile);
    var ws = pck.Workbook.Worksheets["KeepTrackSecret"];
    string hiddenDate = ws.Cells["A1"].Text; ;

    return hiddenDate;
}

我得到的值如下:

     creationTime: 10/10/2017 10:40:35 AM

    lastWriteTime: 10/10/2017 10:40:35 AM

   lastAccessTime: 10/10/2017 10:40:35 AM

  creationTimeUtc: 10/10/2017 2:40:35 PM

 lastWriteTimeUtc: 10/10/2017 2:40:35 PM

lastAccessTimeUtc: 10/10/2017 2:40:35 PM

  strLastModified: 10/10/2017 10:40 AM

             blah: 10/10/2017 10:40 AM

           result: 10/10/2017 10:38:00 AM

如你所见,在查看文件时,我想出了很多不同的时间。 结果是正确的日期时间,因为它从excel单元格中获取。但所有其他人都不匹配。它要么太高,要么完全偏离。

为了解决这个问题,我会做错误做什么,以便两个日期时间都正确?

0 个答案:

没有答案