怎样把excel表导入到SQLServer数据库中? ( 积分: 100 )

  • 主题发起人 主题发起人 jimmy_che
  • 开始时间 开始时间
J

jimmy_che

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,哪位大虾有例子给我一个,谢谢啦
 
创建一个excel 对象,然后打开文件,找出你要的数据,然后连接数据表,找到相对应
的列,就可以拉
 
现在没有 时间,后天在 写了在发
 
这个很简单的,而且资料也很多。。。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=196114
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1328932

——应该够用了呵呵:)
 
procedure TForm1.Button1Click(Sender: TObject);
var
msexcel,msbook,mssheet:olevariant;
ma:variant;
userow,usecol,modelx,modely,Totalx,Totaly:integer;
i,j:integer;
arraytemp : array[1..37] of string ;
begin
opdlg.Filter:='Excel文件|*.xls';
if opdlg.Execute then
begin

Msexcel:=createoleobject('excel.application');

try
MSBook:=MsExcel.WorkBooks.Open(opdlg.FileName);
MsExcel.ActiveWorkbook.RunAutoMacros(2);
MsExcel.Visible := false;
Mssheet:=Msbook.Activesheet;
UseRow := MsExcel.ActiveSheet.UsedRange.Rows.Count;
UseCol := MsExcel.ActiveSheet.UsedRange.Columns.Count;

except
on E:Exception do
messagebox(handle,PChar(e.Message),'提示', MB_ICONINFORMATION);
end;

msexcel.activesheet.cells.find(what:='Model',after:=Msexcel.cells[1,1]).activate;
modelx:=msexcel.activecell.row;
modely:=msexcel.activecell.column;
msexcel.activesheet.cells.find(what:='Total',after:=Msexcel.cells[1,1]).activate;
Totalx:=msexcel.activecell.row;
Totaly:=msexcel.activecell.column;
for i:=modely to totaly do
begin
arraytemp:=trim(MSexcel.activesheet.cells[modelx,i].value);
end;
with query do
begin
close;
sql.Clear;
sql.Text:='select top 0 * from T_IJPmonthPlan' ;
open;
end;
for j:=modelx+1 to userow do
begin
showmessage(inttostr(j));
ma:= MA.Range['A4'].MergeArea;;
showmessage(VarToStr(ma.cells[4,1].value));
if Msexcel.activesheet.rows[j].hidden=true then
continue;
if (trim(MsExcel.activesheet.cells[j,4].value)='D Input') or (trim(MsExcel.activesheet.cells[j,4].value)='N Input') then
for i:=modely to totaly-4 do
begin

if (arraytemp[i+4]='') or (arraytemp[i+4]='Total') then
continue;
query.Insert;
query.FieldByName('model').AsString:=trim(Msexcel.activesheet.cells[j,modely].value);
query.FieldByName('VerItem').AsString:=trim(Msexcel.activesheet.cells[j,modely+1]);
query.FieldByName('Version').AsString:=trim(Msexcel.activesheet.cells[j,modely+2].value);
query.FieldByName('ShifT').AsString:=trim(Msexcel.activesheet.cells[j,modely+3]);
query.FieldByName('Month/Date').AsDateTime:=strtodate(arraytemp[i+4]);
query.Post;
end
else
continue;

end;
end;

MsExcel.displayalerts:=false;
MsExcel.Quit;
MsExcel := Unassigned;
MsExcel := Null;
MSBook := Null;
MSSheet := Null;
 
在SQL SERVER里操作不就行啦
 
先用DTS把Excel导入到数据库中不就行了.
 
SELECT * FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
’Data Source="c:/test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...[Sheet$]
 
樓上語句,或dts操作;程序代碼中的話,上面代碼即可
 
我操,这个世界没有天理了~~~~~ MD,老虎不发威,当我是病猫, 先骂人的倒有理了 我可是从来不主动得罪人的 谁要是欺负人,那就不客气了 明天把这个工具开个源,叫大家都来用用 请问你们有什么拿的出手的?自己写的东西? 说出来叫大爷我长长见识? 别不会是一群耍嘴皮子的废物吧? 需要的请关注我的 blog http://hi.baidu.com/earthsearch
 
后退
顶部