請問 delphi 可以同時開啟 3 個 excel 檔案嗎 ?? ---- water |
尚未結案
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
小弟 第一次 使用 delphi 開發程式.(也是第一次開發 Windows 程式):
遇到一個難題:需要開啟3個 Excel 檔 . (假設分別=AAA.BBB.CCC)
AAA.BBB 為讀取
CCC為寫入 (如果檔案已存在.要刪除or清空)
不隻程式碼要如何下??
PS:AAA.BBB.CCC & 程式都在同一資料夾
PS:內容大概:先讀AAA.到BBB找對映資料.COPY to CCC
請各位前輩指點一下.小第先謝了 ---- water 一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 不知您使用何種存取方法﹖如果所有的Excel檔案皆在同一目錄﹐可參考使用BDE存取的Query元件﹒ SQL語法可較簡單地完成您提及的要求﹐前提就是記得使用提供SQL語法的資料集元件(如Query, ADOQuery)
< class="code">將AAA, BBB所有內容加到CCC中﹐例﹕
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Insert Into CCC Select AAA.*, BBB.* From AAA, BBB');
Query1.ExecSQL;
end; 將CCC所有內容清除﹐例﹕
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Delete From CCC');
Query1.ExecSQL;
end;
參考看看﹗ =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
thk . 請教 以下程式碼 : 不使用 DirectoryListBox1 要如何改成開啟 AAA.BBB.CCC 檔案功能 ? var
sDir, sFileName,FileName : string;
MsExcel, MsExcelWorkBook : Variant;
i, j, iSheet: integer;
sTemp, sF_Temp,sExcelFile, sCheck, sData : String;
begin
sDir := DirectoryListBox1.Directory;
sFileName := FileListBox1.Items[FileListBox1.ItemIndex];
FileName := sDir + '\'+ sFileName;
try
MsExcel := CreateOleObject('Excel.Application');
MsExcelWorkBook := MsExcel.WorkBooks.OPEN(FileName);
MsExcel.Worksheets['sheet1'].select;
except
MessageDlg('Can''t Open Excel!!',mtWarning,[mbOK],0);
Exit;
end; 一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您的目的僅僅是開啟AAA,BBB,CCC這三個Excel檔案嗎﹖若僅僅是如此﹐并不需要使用到OLE Automation機制方法﹒經簡單的函數即可開啟﹕
Use ShellAPI //引用ShellAPI單元
begin Try ShellExecute(handle, 'Open', PChar('D:\AAA.xls'), Nil, Nil, SW_SHOWNORMAL); Except ShowMessage('無法開啟'); end; end;參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
我把目前所需要得的程式功能說明一下: 1.把AAA檔案(實際為:工單生產排程)(大概有好幾萬筆.分別於3的SHEET)
今天的生產工單號(實際上要輸入 D1-D2 )找出來 2.把找到工單.到BBB檔案(實際為:工單詳細資料)(有好幾萬筆.10的SHEET)
把必要得欄位拷貝到CCC檔案.
同時把某些欄位資料前後加'*'拷貝到下一個欄位相同cell
設定有'*'的欄位使用 code39碼 字型 3.列印條碼user.使用excel直接開啟CCC.就可以知道要列印資料
(其他單位user視情況在修正程式功能) ---- water
一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中 |
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
我跟你有類似的經驗... 不過..考量到下列因素,就... 1.excel表格內的資料一致性,是否都是依照欄位.=>每欄內容對應且每列資料輸入的呢?講白話一點就是有沒有資料是中間一半(rows)又被插入其他資料的... 2.而且裡面很有可能已經設定一些formula,勉強讀取進來後運算處理,仍然會有問題. 小弟不敢否認您的十年clipper功力,然而要在短時間內使用陌生的工具在不一樣的平台(dos->windows)仍然會有困難,困難的因素不是人的問題,而是大環境的問題,您或許可以考慮外包會比較能夠解決的唷, ktop上高手就像螞蟻一樣多,廣發英雄帖應該可以一呼百應的唷.... good luck
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 從貼圖來看﹐使用SQL應會比較簡便一些﹐介于您之前提到未安裝BDE﹐所以建議您可使用ADO存取﹒ 使用三個ADOConnection分別通過字串連接﹐Link到此三個Excel資料庫檔案(注意﹕使用ADOConnection的Microsoft Jet 4.0 OLE DB Provider連接Excel資料庫形態時﹐需要在ConnectionString屬性設定之全部頁次的Extended Properties(擴展屬性)中建立Excel 8.0的資料庫名稱﹐以便使ADO認得Excel資料庫形態檔案﹒ 而后的步驟﹐就可以使用三個ADOQuery分別對應三個資料庫﹐并擷取相關的Sheet(表)﹐即可利用SQL語法對其進行查詢異動等工作了﹒ 參考看看﹗ =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! ADOQuery元件的Connection屬性值設定為某個ADOConnection元件.
其它的部分可根据您的要求下SQL, 其SQL屬性會自動存入ADOQuery元件的SQL屬性值中. 舉個例子來講:
Button元件之OnClick事件中:
begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * From 生產排程'); ADOQuery1.Open; end;//至此, 對應ADOQuery1元件的資料感知元件如DBGrid就會顯示出對應ADOQuery1查詢結果的資料 ADOQuery元件的Activate是一個Boolean屬性, 當其值為True時, 即將ADOQuery所對應的資料表Open, 當其值為False時, 即將資料表Close, 其作用相同于ADOQuery1.Open; & ADOQuery1.Close; 如果要在設計時期就先將Activate屬性設為True, 除了設定其Connection屬性值之外, 還需要在SQL屬性中設定相關的SQL敘述, 否則就會因為沒有SQL敘述而出現錯誤: Select * From 生產排程 參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
|
water
初階會員 發表:90 回覆:89 積分:35 註冊:2003-07-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |