我很努力從excel文件中導入日期值。 導入部分工作正常!唯一的問題是它的格式。如何導入實際值,而不是從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;
發佈您用於「從Excel導入數據」的代碼,特別是日期單元格。我沒有這個問題,並且我沒有問題讀取原始日期值。很難說你的問題可能是什麼,因爲你還沒有提供任何信息。 – 2013-05-01 23:26:21
@KenWhite我已經更新了。謝謝:) – Raccoon 2013-05-02 00:17:20
你介意你是否也發佈你的示例代碼?我想比較是否有任何差異。 – Raccoon 2013-05-02 00:18:02