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

資料有excel寫入另一個excel

答題得分者是:syntax
ladies
一般會員


發表:7
回覆:18
積分:5
註冊:2007-08-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-07 18:21:46 IP:211.20.xxx.xxx 訂閱
小妹有個小問題
我將兩個excel當成兩個DB
而要將其中一個EXCEL的資料寫入另一個EXCEL中
請問是利用何種方法呢??
起初我是用FILEDBYNAME
但是他確跟我說此DATASET不可以EDIT與INSERT
請問有人使用過此種方法嗎???
謝謝
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-07 21:50:17 IP:61.67.xxx.xxx 未訂閱
不會吧, EXCEL是一個 XLS格式表格, 雖然支援 DBF 的 EXPORT, IMPORT, 但它不是DATABASE, 如何用 FIELDBYNAME, 不知您從那得知的消息, EXCEL 一般都是以 OLE方式開啟, 指定 CELL[R,C] 方式異動
christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-08 10:08:17 IP:203.73.xxx.xxx 未訂閱
建議您在
http://www.swissdelphicenter.ch/torry/
搜尋:excel
------
What do we live for if not to make life less difficult for each other?
ladies
一般會員


發表:7
回覆:18
積分:5
註冊:2007-08-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-08 11:50:56 IP:220.228.xxx.xxx 訂閱
dear PD :
我知道,但我今天就是要在不開啟excel下將資料讀寫。
使用ole的方法前提是要有excel
如果機器不安裝excel下,我想利用DB的方法來做
但是並沒有試過,不知道是否有方法呢??
謝謝
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-01-08 21:49:21 IP:61.67.xxx.xxx 未訂閱
我之前也曾有這樣的想法, 在網路上找過一些文件但似乎沒有可以用的, 或者我找尋的方向不對, 其實我也很想知道有沒有這樣的讀取方式!
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-01-08 22:40:01 IP:211.74.xxx.xxx 訂閱
CSV?
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-01-09 01:58:27 IP:61.64.xxx.xxx 訂閱
不開啟excel下將資料讀寫

難不成你要「隔空抓藥」?

想要讀寫,就必須開檔,就一定要開檔,這跟吃/吐東西,要張嘴一樣
只是看你要如何吃而已

使用 ole 就必須安裝被 ole 的東西(該東西也必須支援 ole)

如果你不要安裝excel,你就必須安裝(還是要裝東西拉)某種中界介面,例如 DB <-> excel 的OBDC驅動 (很可惜這必須安裝 execel 才會有)
否則你必須自己想辦法,找第三方驅動程式,或是自己寫驅動程式囉!

開檔就是要指定讀寫目標,沒有那種不開檔,能讀寫東西的程式,要是這樣,硬碟都可以丟了,因為,既然可以憑空讀寫,要硬碟何用?

所以如果你要用 DB 的方式(可能你不會處理 ole吧),就必須找個中界程式/驅動,讓你能將 excel 當成 DB 來用
可以找找看第三方軟體,不然就直接使用 execel 的 ODBC driver(這樣最快,找台有裝execle的複製一下就可以),只是單獨散佈那幾個 DLL,不知道 MS 會不會找你麻煩囉!
要注意版權問題

或是試試看沒有版權的第三方 Driver,但這要你自己找囉,我也不確定會有,但 ODBC 的Driver 很多,試試找看看也無妨

===================引 用 ladies 文 章===================
dear PD :
我知道,但我今天就是要在不開啟excel下將資料讀寫。
使用ole的方法前提是要有excel
如果機器不安裝excel下,我想利用DB的方法來做
但是並沒有試過,不知道是否有方法呢??
謝謝
ladies
一般會員


發表:7
回覆:18
積分:5
註冊:2007-08-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-01-09 14:04:31 IP:211.20.xxx.xxx 訂閱

dear PD:
真的可以用fieldbyname,但是ado 提供者要有Microsoft.Jet.OLEDB.4.0 Provider(老師說的)
還有一個是自己開發excel元件,不過我不曉得沒這元件ok不ok。
它說這叫csv!樓上有個大大有提到。
所以,真是謝謝各位的解答,讓我又學到了^^
===================引 用 P.D. 文 章===================
我之前也曾有這樣的想法, 在網路上找過一些文件但似乎沒有可以用的, 或者我找尋的方向不對, 其實我也很想知道有沒有這樣的讀取方式!
borland_delphi70
中階會員


發表:8
回覆:50
積分:51
註冊:2002-12-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-01-09 19:09:44 IP:211.78.xxx.xxx 訂閱
 長官:

下述程式碼可以做到寫入 Excel ,先建 Excel 檔 copy 至D:\MyExcel.xls 做為DB使用,請先將Sheet1的cell[A1]填入A1,cell[B1]填入A2,並以下述程式碼測試(Sorry ... 不會上傳檔案)。


[code delphi]
//ADOQ: tADOQuery;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQ.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Persist Security Info=False;Extended Properties=Excel 8.0';

ADOQ.SQL.Clear;
ADOQ.SQL.Add('insert into [Sheet1$] (A1, A2) values (''AA'', ''BB'')');
ADOQ.ExecSQL;
end;
[/code]
ladies
一般會員


發表:7
回覆:18
積分:5
註冊:2007-08-29

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-01-09 19:22:17 IP:211.20.xxx.xxx 訂閱
嗯嗯!
我差不多也是這種作法,目前寫入的問題已經解決囉^^
感謝各位大大,也請大家不吝指教。
===================引 用 borland_delphi70 文 章===================
長官:

下述程式碼可以做到寫入 Excel ,先建 Excel 檔 copy 至D:\MyExcel.xls 做為DB使用,請先將Sheet1的cell[A1]填入A1,cell[B1]填入A2,並以下述程式碼測試(Sorry ... 不會上傳檔案)。


[code delphi]
//ADOQ: tADOQuery;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQ.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Persist Security Info=False;Extended Properties=Excel 8.0';

ADOQ.SQL.Clear;
ADOQ.SQL.Add('insert into [Sheet1$] (A1, A2) values (''AA'', ''BB'')');
ADOQ.ExecSQL;
end;
[/code]
系統時間:2024-05-13 17:20:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!