当前位置:主页>Delphi教程>文章内容
Delphi与Excel
来源: 作者: 发布时间:2007-04-29  
 

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);


 
上一篇:Delphi中根据分类数据生成树形结构的最优方法   下一篇:Delphi与Word(三)取得Word文件的数据
 
  相关文章
·Delphi中根据分类数据生成树形结构的最
·Delphi与Word(三)取得Word文件的数据
·Delphi与Word例1
·利用网站短信漏洞,做自己的手机短信轰
·有关ADO专题
·delphi一句话帮助终
·用Ehlib二次开发报表打印程序,实现财
·Delphi中两个BUG的分析与修复
·如何在Delphi应用程序中调用CHM文档
·Delphi+汇编例子2
·在Delphi里调用API函数动态建立ODBC数
·Delphi+汇编例子1(求和的比较)
 
【关闭窗口】
推荐本站资源
最新文章