線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:718
推到 Plurk!
推到 Facebook!

如何按名称对某个EXCEL文件进行操作?

尚未結案
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-06 20:04:54 IP:61.154.xxx.xxx 未訂閱
小弟按各位大侠的指点做了个软件:打开某个excel空表,将数据写入其中,再关闭之。但是只能指定是当前打开的第几个workbook的第几个worksheet,如果在运行之前随意开几个excel,就会把数据填错地方。不知如何对指定名称的workbook和worksheet进行操作? 發表人 - ffprince 於 2004/02/06 20:45:09
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-06 21:09:54 IP:211.76.xxx.xxx 未訂閱
您好:  
 
procedure TTransin.SpeedButton2Click(Sender: TObject);
Var
  SQLStr,Filename: String;
  xlsApp, WorkBook: Variant;
  i,j,k:integer;
begin
  if OpenDialog1.Execute then //利用OpenDialog1來開啟EXCEL檔案,當然也可以在下方,OpenDialog1.FileName的地方,以固定的檔名填入
  begin
    Try
      Application.ProcessMessages;
      xlsApp:= CreateOleObject('Excel.Application');
      WorkBook:= CreateOleobject('Excel.Sheet');
    Except
      ShowMessage('請先安裝 Microsoft Excel 再執行本程式!');
      WorkBook.Close;         //關閉EXCEL
      xlsApp.Quit;            //退出Excel Application
      xlsApp:=Unassigned;     //free VARIANT
      Exit;
    End;
    WorkBook:= xlsApp.workBooks.Open(OpenDialog1.FileName);
    WorkBook.sheets[1].Select;//指定哪一ㄍsheets        Filename:= copy(ExtractFileName(OpenDialog1.FileName),1,3);
    SQLStr:= 'Select * from Hc200 where HcNo like ''' Filename '%' '''';
    Hc200.Close;
    Hc200.SQL.Clear;
    Hc200.SQL.Add(SQLStr);
    Hc200.Open;        j:= Hc200.RecordCount;
    Gauge1.MinValue:= 0;
    Gauge1.MaxValue:= j;
    Gauge1.Progress:= 0;
    k:= 0;
    for i := 1 to j 1 do
    begin
      if Trim(xlsApp.Cells[i,1]) <> '' then
      begin
      SQLStr:='UpDate Hc200 Set HBsAg = ''' Trim(xlsApp.Cells[i,2]) '''' ',' 
              '                 HBsAb  = ''' Trim(xlsApp.Cells[i,3]) '''' ',' 
              '                 HBsAge = ''' Trim(xlsApp.Cells[i,4]) '''' ',' 
              '                 Ant = ''' Trim(xlsApp.Cells[i,5]) '''' ',' 
              '                 RPR = ''' Trim(xlsApp.Cells[i,6]) '''' ',' 
              '                 Typing = ''' Trim(xlsApp.Cells[i,7]) '''' 
              ' where HcNo = '''  Trim(xlsApp.Cells[i,1]) '''';
      Hc200.Close;
      Hc200.SQL.Clear;
      Hc200.SQL.Add(SQLStr);
      Hc200.ExecSQL;
      Gauge1.Progress:= i;
      inc(k);
      end;
    end;
    WorkBook.Close;         //關閉EXCEL
    xlsApp.Quit;            //退出Excel Application
    xlsApp:=Unassigned;     //free VARIANT
    Gauge1.Progress:= 0;
  end;
end;    
~~應無所住而生其心~~
系統時間:2024-06-27 4:05:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!