Delphi与Excel

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

uses comobj,excel97,excel2000;

//从Excel写数据到Access库

prodedure ExcelToMdb(EXLfile:string;);

var

sheet,XLApp,workbook : variant;

iRow,MaxRow:integer;

begin

screen.Cursor:=crHourGlass;

try

//创建对象

XLApp:=createOleObject('Excel.Application');

XLApp.displayAlerts:=false;

XLApp.ScreenUpdating:=false;

XLApp.WorkBooks.Add(EXLfile);

workbook := XLApp.workbooks[1];

sheet:=workbook.worksheets[1];

//sheet:=XLApp.WorkBooks[1].worksheets[1];

//取得最大行数 maxRow

XLApp.ActiveCell.SpecialCells(xlLastCell).Select;

maxRow:=XLApp.ActiveCell.Row; //最大行数

//写数据到Access库

ADOTable1.open;

for iRow:=2 to MaxRow do

if sheet.cells[iRow,1]<>'' then //关键字不为空

begin

ADOTable1.Append ;

ADOTable1.fieldByName('ID').asInteger:=

strToInt(sheet.cells[iRow,1]);

ADOTable1.fieldByName('code').asString:=sheet.cells[iRow,2]; //编码

ADOTable1.fieldByName('name').asString:=sheet.cells[iRow,3]; //名称

ADOTable1.post;

end;

finally

if not VarIsEmpty(XLApp) then begin //释放对象

XLApp.displayAlerts:=false;

XLApp.ScreenUpdating:=true;

XLApp.quit;

end;

screen.Cursor:=crDefault;

end;

end;

//=================== 其他一些属性方法 ===============//

curRow:=XLApp.ActiveCell.Row; //当前行数

XLApp.displayAlerts:=false; //运行宏时是否显示警告和消息

XLApp.ScreenUpdating:=false; //屏幕更新功能,提高速度;

//结束运行后,ScreenUpdating 设回到 True

XLApp.run('macroName',params...)//运行宏

workbook.save ;

workBook.SaveAs(AFileName,xlNormal,'','',False,False);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航