【问题标题】:Unable to fetch the exact date value from excel cell无法从 Excel 单元格中获取准确的日期值
【发布时间】:2013-09-09 09:27:46
【问题描述】:

我正在使用以下代码获取 excel 单元格中的值,该值是 20-3-2004 之类的日期:

string logResult = null;
string ResultFilePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + ResultFile;
            Microsoft.Office.Interop.Excel.Application myapp = new Microsoft.Office.Interop.Excel.Application();

 Microsoft.Office.Interop.Excel.Workbook wb = myapp.Workbooks.Open(ResultFilePath);

Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets.get_Item(1);

var cell = (Microsoft.Office.Interop.Excel.Range)sheet.Cells[row, col];
logResult = cell.Value.ToString();

但在日志结果中,我总是以 20/3/2004 格式获取日期。请建议如何获取单元格中写入的日期的确切格式。

【问题讨论】:

  • cell.Value.ToString("dd-M-yyyy")
  • 这是史蒂夫的唯一方法吗?我的意思是,如果存在其他方式,我不想传递任何论点。
  • 不带参数的 DateTime.ToString() 方法根据通用日期和时间格式说明符 ('G') 创建当前日期时间对象值的字符串表示形式。 msdn.microsoft.com/en-us/library/k494fzbf.aspx 如果您想要不同的格式,那么您可以在运行程序的每台机器上更改您的国际设置(?)或应用格式参数

标签: excel c#-4.0


【解决方案1】:

日期值没有格式。它是您用来显示它的代码,它以某种形式在视频上呈现该值。

在您的情况下,是 ToString() 调用将在字符串中的单元格上读取的任何内容进行转换。如果它是一个日期,那么它会根据您机器的当前国际设置对其进行转换。

您可以强制 ToString() 方法使用特定格式,应用格式掩码参数,例如

 logResult = cell.Value.ToString("d-M-yyyy");

见MSDN上关于DateTime.ToString()的话题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多