2

我正在使用 Excel 互操作库使用 c#.net 从 Excel 文件中获取值。

现在我面临一个问题,我认为所有值都以通用或文本格式获取。

我使用了下面的代码。

        string fileName = Directory.GetCurrentDirectory() + "\\123.xlsx";
        Excel.Application xlApp;
        Excel.Workbook xlWorkbook;
        xlApp = new Excel.Application();
        xlWorkbook = xlApp.Workbooks.Open(fileName);
        Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlApp.Workbooks[1].Worksheets[1];
        Excel.Range excelCell = xlWorksheet.UsedRange;
        Object[,] values = (Object[,])excelCell.Value;

例子: 在此处输入图像描述

I am getting '41369' instead of 4/5/2013 from B4 cell and 100 instead of 100.00 from A2 call.
4

2 回答 2

1

您可以使用以下代码,

CellVal = objWorkbook.WorkSheets(1).Cells(6, 1).Value
MsgBox CellVal

这将返回正确的日期格式。

于 2013-05-24T03:57:52.987 回答
0

您获得的日期数字是从 1900 年 1 月 1 日开始的天数。

对于您的约会,您将使用

int NumberOfDaysAfter19000101 = 41369;
DateTime dt = new DateTime(1900, 1, 1).AddDays(NumberOfDaysAfter19000101 - 2);

我在这个帖子中回答了为什么你从 NumberOfDaysAfter19000101 中减去 2。 Access 和 SQL Server 计算日期不同

于 2013-05-24T03:49:02.353 回答