c# - Excel日期字段转换问题

标签 c# excel

我目前有一个 Excel 工作表,其中一列采用日期格式。

当我打开电子表格时,我看到的是 12/29/09,程序看到的是 40176。

我发现这是将列更改为一般文本时出现的值。

我的问题是如何读取值 12/29/09 而不是 40176 或者如何将 40176 更改为有效日期?

我的程序是c#的,必须用c#读入


如果有帮助的话,这是我的连接示例代码。

Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
string myPath = @"C:\Test.xls";
excelApp.Workbooks.Open(myPath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0);

 Microsoft.Office.Interop.Excel.Sheets sheets = excelApp.Worksheets;
 Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(1);
 excelApp.Visible = true;

 if(((Microsoft.Office.Interop.Excel.Range)excelApp.Cells[r, 1]).Value2 != null)
     DateString = ((Microsoft.Office.Interop.Excel.Range)excelApp.Cells[r, 1]).Value2.ToString();

最佳答案

您可以使用 DateTime.FromOADate()将 double 转换为 DateTime 值。

关于c# - Excel日期字段转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/771083/

相关文章:

linux - VBA SendKeys 到特定窗口

excel - 如何突出显示两个不同范围和工作表中的匹配值?

java - 如何使用 Java 代码使用 HSSF 应用单元格背景颜色

excel - Matlab XlsRead - 这是风格不佳的代码吗?

c# - 为什么我的代码会抛出无效的转换异常? (C#)?

c# - 在 Winforms RichTextBox 控件中,如何使最后一行链接下方的空间不可单击?

c# - 从用户界面调用System.Threading.Thread时,锁将挂起。

c# - SendMessage 中的误导参数类型 (... IntPtr wParam ...)

VBA:添加到作为字典值的集合

C#,我可以在读取 SQL Server 表时插入和删除它吗