如何用delphi5从execl中导入数据到oracle?(0分)

  • 主题发起人 主题发起人 bit
  • 开始时间 开始时间
你要确定Excel表的具体格式,通过结构辨认出各个字段的值。

连接Excel很简单的,然后就是用Excel的接口来做了。
读出数据以后,写到Oracle去就可以了。
 
procedure TForm1.Button1Click(Sender: TObject);
const
BeginRow = 3; BeginCol = 1;
var
Excel: OleVariant;
iRow,iCol : integer;
AUnit: string;
AValue: integer;
begin
if not OpenDialog1.Execute then exit;
try
Excel := CreateOLEObject('Excel.Application');
except
Application.MessageBox('Excel没有安装!', '提示信息', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);
Exit;
end;

Excel.Visible := false;
Excel.WorkBooks.Open(OpenDialog1.FileName);

with dm.DataBase1 do begin
if Not InTransaction then StartTransaction ;
end;

try

iRow := BeginRow;
iCol := BeginCol;
while trim(Excel.WorkSheets[1].Cells[iRow,iCol].value) <> '' do begin
with Query1 do begin
Append;
Fields[0].AsString := trim(Excel.WorkSheets[1].Cells[iRow,iCol].value);
Fields[1].AsString := trim(Excel.WorkSheets[1].Cells[iRow,iCol+1].value);
Fields[2].Asstring := trim(Excel.WorkSheets[1].Cells[iRow,iCol+2].value);
Fields[3].Asstring := trim(Excel.WorkSheets[1].Cells[iRow,iCol+3].value);
Fields[4].AsString := trim(Excel.WorkSheets[1].Cells[iRow,iCol+4].value);

iRow := iRow + 1;
iCol := BeginCol;
// Application.ProcessMessages;
end;
end;
Excel.Quit;
Query1.ApplyUpdates;
dm.DataBase1.Commit;
except
Application.MessageBox('导入数据出错!请检查文件的格式是否正确!', '提示信息', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);
Excel.Quit;
dm.DataBase1.Rollback;
raise;
end;

Query1.CommitUpdates;
Query1.open;
end;
 
[?]各位大虾,如果要动态的根据EXCEL文件产生数据表,而后再导入数据,增样做呢?
 
使用ado链接,看看李维的《delphi5.x ado/mts/com+高级程序设计篇》P127,里面有使用
ado存取excel的方法,和数据库一样,这样转存为oracle就很简单了阿!
 
后退
顶部