我正在努力从 excel 文件中导入日期值。导入部分工作正常!唯一的问题是它的格式。
在 excel 文件中,所有日期值都以“yyyy-mm-dd”格式输入,但单元格本身显示为“dd-mm-yyyy”。当我的程序从 excel 文件中导入值时,它会将日期导入为“dd-mm-yyyy”,而不是用户实际输入的“yyyy-mm-dd”格式——基本上是格式化的日期。
好吧,我可以将 'dd-mm-yyyy' 操作为 'yyyy-mm-dd' 但我想避免这种解决方案,除非我真的没有其他方法可以做到这一点。
是否有任何预定义的 delphi 函数可以将“dd-mm-yyyy”反转为“yyyy-mm-dd”?或者有什么特殊的方法可以带来实际的未格式化的原始日期,而不是格式化的?
不幸的是,在这里更改 excel 中的单元格格式不是一个选项.. :'(
谢谢。
更新:::
ConnectionString :='Microsoft.ACE.OLEDB.12.0;'+
'Data Source='+filename+';'+
'Extended Properties="Excel 8.0;'+
'Imex=2;HDR=NO;;';
}
// IMEX = 0: Export mode, 1: Import mode, 2: Linked mode (full update capabilities)
ADOQuery1.SQL.Clear;
query := 'SELECT * FROM [sheet1$]';
ADOQuery1.SQL.Add(query);
ADOQuery1.open;
i:=0;
while not eof do
begin
i:= i+1;
Cells[0,i] := IntToStr(i);
Cells[1,i] := Fields[1].AsString;
Cells[2,i] := Fields[2].AsString;
Cells[3,i] := Fields[3].Value; // This is the date value I'm trying to import.
Cells[4,i] := Fields[4].AsString;
Cells[5,i] := Fields[5].AsString;
Cells[6,i] := Fields[6].AsString;
Cells[7,i] := Fields[7].AsString;
Cells[8,i] := Fields[8].AsString;
Cells[9,i] := Fields[9].AsString;
RowCount := RowCount+1;
next;
end;