无法从Excel单元格中获取确切的日期值

时间:2013-09-09 09:27:46

标签: excel c#-4.0

我使用以下代码获取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获取日期。请建议如何获得在单元格中写入的日期的确切格式。

1 个答案:

答案 0 :(得分:0)

日期值没有格式。它是用于显示它的代码,它在视频中显示该值是某种形式。

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

您可以强制ToString()方法使用应用Format Mask参数的特定格式,如

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

请参阅MSDN上有关DateTime.ToString()

的主题