用OLE方式导的,但是EXCEL表里的一些日期格式的单元格为空。但导入到SQL SERVER后,SQL SERVER里显示00:00:00,GRID里显示1899-12-30。我想让他仍然显示为空,怎么实现呢?我的代码:
procedure Ttongji.readfromexcel(adsdata:Tadoquery;sname:string;linecount:integer);
var excelapplication1:Texcelapplication;
excelworksheet1:Texcelworksheet;
excelworkbook1:Texcelworkbook;
i: integer;
filename:string;
begin
filename:=sname;
try
excelapplication1 :=Texcelapplication.Create(application);
excelworksheet1 :=Texcelworksheet.Create(application);
excelworkbook1 :=Texcelworkbook.Create(application);
excelapplication1.Connect;
except
application.MessageBox('EXCEL 没有安装!','错误',mb_iconerror+mb_ok);
abort;
end;
try
excelapplication1.Workbooks.Add(emptyparam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(filename,0));
excelworksheet1.ConnectTo(excelworkbook1.Worksheets[1] as _worksheet);
if not adsdata.active then
adsdata.open;
for i:=2 to linecount-1 do
begin
adsdata.append;
adsdata['projectname']:=excelworksheet1.cells.Item[i,3];
adsdata['gcbh']:=excelworksheet1.cells.Item[i,2];
adsdata['ifxiada']:=1;
adsdata['ztz']:=excelworksheet1.cells.Item[i,4];
adsdata['sjdw']:=excelworksheet1.cells.Item[i,5];
adsdata['sgdw']:=excelworksheet1.cells.Item[i,6];
adsdata['lxr']:=excelworksheet1.cells.Item[i,7];
adsdata['sjr']:=excelworksheet1.cells.Item[i,8];
adsdata['jlr1']:=excelworksheet1.cells.Item[i,9];
adsdata['kgrq']:=excelworksheet1.cells.Item[i,10];
adsdata['gczk']:=excelworksheet1.cells.Item[i,11];
adsdata['wcl']:=excelworksheet1.cells.Item[i,12];
adsdata['wgrq']:=excelworksheet1.cells.Item[i,13];//这里开始取日期值,EXCEL里为空
adsdata['cjrq']:=excelworksheet1.cells.Item[i,14];
adsdata['xjrq']:=excelworksheet1.cells.Item[i,15];
adsdata['jlbh']:=excelworksheet1.cells.Item[i,16];
adsdata['jlscrq']:=excelworksheet1.cells.Item[i,17];
adsdata['gzrq']:=excelworksheet1.cells.Item[i,18];
adsdata['memo']:=excelworksheet1.cells.Item[i,19];
adsdata.next;
end;
application.messagebox(pchar('数据成功导入!'),'错误',mb_ok);
finally
ExcelApplication1.Disconnect;
ExcelApplication1.quit;
ExcelApplication1.free;
ExcelWorkbook1.free;
ExcelWorksheet1.free;
end;
end;
procedure Ttongji.readfromexcel(adsdata:Tadoquery;sname:string;linecount:integer);
var excelapplication1:Texcelapplication;
excelworksheet1:Texcelworksheet;
excelworkbook1:Texcelworkbook;
i: integer;
filename:string;
begin
filename:=sname;
try
excelapplication1 :=Texcelapplication.Create(application);
excelworksheet1 :=Texcelworksheet.Create(application);
excelworkbook1 :=Texcelworkbook.Create(application);
excelapplication1.Connect;
except
application.MessageBox('EXCEL 没有安装!','错误',mb_iconerror+mb_ok);
abort;
end;
try
excelapplication1.Workbooks.Add(emptyparam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(filename,0));
excelworksheet1.ConnectTo(excelworkbook1.Worksheets[1] as _worksheet);
if not adsdata.active then
adsdata.open;
for i:=2 to linecount-1 do
begin
adsdata.append;
adsdata['projectname']:=excelworksheet1.cells.Item[i,3];
adsdata['gcbh']:=excelworksheet1.cells.Item[i,2];
adsdata['ifxiada']:=1;
adsdata['ztz']:=excelworksheet1.cells.Item[i,4];
adsdata['sjdw']:=excelworksheet1.cells.Item[i,5];
adsdata['sgdw']:=excelworksheet1.cells.Item[i,6];
adsdata['lxr']:=excelworksheet1.cells.Item[i,7];
adsdata['sjr']:=excelworksheet1.cells.Item[i,8];
adsdata['jlr1']:=excelworksheet1.cells.Item[i,9];
adsdata['kgrq']:=excelworksheet1.cells.Item[i,10];
adsdata['gczk']:=excelworksheet1.cells.Item[i,11];
adsdata['wcl']:=excelworksheet1.cells.Item[i,12];
adsdata['wgrq']:=excelworksheet1.cells.Item[i,13];//这里开始取日期值,EXCEL里为空
adsdata['cjrq']:=excelworksheet1.cells.Item[i,14];
adsdata['xjrq']:=excelworksheet1.cells.Item[i,15];
adsdata['jlbh']:=excelworksheet1.cells.Item[i,16];
adsdata['jlscrq']:=excelworksheet1.cells.Item[i,17];
adsdata['gzrq']:=excelworksheet1.cells.Item[i,18];
adsdata['memo']:=excelworksheet1.cells.Item[i,19];
adsdata.next;
end;
application.messagebox(pchar('数据成功导入!'),'错误',mb_ok);
finally
ExcelApplication1.Disconnect;
ExcelApplication1.quit;
ExcelApplication1.free;
ExcelWorkbook1.free;
ExcelWorksheet1.free;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货