Ole Excel Delphidate问题

我有一个Delphi应用程序使用类似于以下代码从Excel电子表格中读取数据:

procedure TForm1.Button1Click(Sender: TObject); var xlApp, xlWorkBook, xlWorkSheet, arr: Variant; begin xlApp := CreateOLEObject('Excel.Application'); xlApp.Visible := False; xlWorkBook := xlApp.Workbooks.Open('C:\Temp\Book1.xlsx'); xlWorkSheet := xlApp.WorkSheets[1]; arr := xlWorksheet.Range['E2:E2'].Value; xlApp.Quit; end; 

单元格E2:E2中存储在电子表格中的值为10/01/1900(年/月/年)。 但是,返还的价格是09/01/1900,即前一天。 为什么在1900年以后的其他年份的所有date都能正常工作呢?

Pete,这个问题是excel的一个老bug,因为excel错误地认为1900年是一个闰年。 所以01-01-190029-02-1900之间的所有date都受到这个错误的影响。

检查这些链接了解更多信息