我的项目有问题。 我想将dbgrid中的数据导出为excel with ole。
当我将包含时间(格式短时间hh:mm)的字段导出为excel时,它在excel中显示为长日期格式(MM / dd / yyyy h:mm:ss AM / PM)。
我想要的是它仍然在excel中显示短时格式(hh:mm)
我在编码时将数字格式设置为hh:mm,但仍以长日期格式显示。
ADOQuery1.First;
x:=1;
while not ADOQuery1.Eof do
begin
for i:=0 to DBGrid1.FieldCount-1 do
begin
XlSheet.cells[2+x,i+1].value:=DBGrid1.Fields[i].Text;
XlSheet.cells[2+x,i+1].Borders.Weight:=xlThin;
XlSheet.cells[2+x,i+1].Font.Size:=10;
end;
ADOQuery1.Next;
Inc(x);
end;
XlSheet.Columns[8].NumberFormat:='hh:mm;@';
我正在使用数据库访问,该字段的数据类型是日期/时间和短时格式。 对不起,我的英语不好。 谢谢。 :d
答案 0 :(得分:0)
不要使用字符串来指定日期或数字值
更改
XlSheet.cells[2+x,i+1].value:=DBGrid1.Fields[i].Text;
到
XlSheet.cells[2+x,i+1].value:=DBGrid1.Fields[i].Value;