請教BCB與OLE的溝通的問題! |
尚未結案
|
Rattler
一般會員 發表:11 回覆:4 積分:3 註冊:2004-07-08 發送簡訊給我 |
我在BCB中將Excel中的值讀入BCB的StringGrid中
我的寫法大至如下: #define PG OlePropertyGet
#define PS OlePropertySet
#define FN OleFunction
#define PR OleProcedure
//======================= Variant path = "D:\Fund_Format.xls"; Ex=Variant::CreateObject("Excel.Application");
Ex.PG("WorkBooks").PR("Open",path);
Wb=Ex.PG("ActiveWorkBook");
Sh1=Wb.PG("Worksheets","Fund"); 以上我的path是宣告成Variant,而我直接給此一字串(D:\Fund_Format.xls)是可以Work的
但是,若我是用OpenDialog來讀取檔案名稱時就會發生錯誤!!如下...
if(OpenDialog->Execute()){
path = OpenDialog->FileName;
} 我設過中斷點,看直接給字串時,path的型態好像是VOldStr的樣子
但是我不知道這是什麼東西,又該如何去宣告及使用呢
因為從OpenDialog中讀出來的型態好像是AnsiString的樣子
所以在這裡請教一下各位前輩!!
|
arnoyu
中階會員 發表:73 回覆:88 積分:67 註冊:2003-03-21 發送簡訊給我 |
(1)
在BCB中將Excel中的值讀入BCB的StringGrid中
請先參考axsoft 版主所貼的這篇:
http://delphi.ktop.com.tw/topic.php?topic_id=20138 裡面有提到:
Ex=Variant::CreateObject("Excel.Application");
Ex.PG("WorkBooks").PR("Open","c:\\book1.xls");
我試了一下,確定
Variant path = "D:\Fund_Format.xls ";
Ex.PG("WorkBooks").PR("Open",path);
要改成:
Variant path = "D:\\Fund_Format.xls ";
Ex.PG("WorkBooks").PR("Open",path);
如此路徑才能正確.. (2)
我試了一下底下的程式碼:
//--------------------------------------------------------------------------- #include結果如下: 確定Variant跟AnsiString在運算子多載方面有作處理啊 我個人覺得,您的問題可能發生在: < class="code"> Ex=Variant::CreateObject("Excel.Application"); Ex.PG("WorkBooks").PR("Open",path); Wb=Ex.PG("ActiveWorkBook"); Sh1=Wb.PG("Worksheets","Fund"); 您可參考下面這篇: http://delphi.ktop.com.tw/topic.php?topic_id=22668 ===三人行必有我師焉=== |
Rattler
一般會員 發表:11 回覆:4 積分:3 註冊:2004-07-08 發送簡訊給我 |
嗯!! 其實還是不太懂 ^^" sorry!!
我看我說清楚點好了 我在下面開啟一Excel檔
Variant Ex,Wb,Sh1,path; AnsiString temp; if(OpenDialog->Execute()){ temp = OpenDialog->FileName; } else return; 然後我把temp的值秀出來,再把值給path ShowMessage(temp); path = temp;然後,我試著設了中斷點來看,值也是給對了!! 但結果會是................ 所以我是猜會不會是因為用OLE所提供的方式來做存取,所以傳入的變數 也有固定的型態,就像是用WinAPI時常會用到wchar_t的道理是一樣的吧 < > 先謝過囉 !! < > |
arnoyu
中階會員 發表:73 回覆:88 積分:67 註冊:2003-03-21 發送簡訊給我 |
會不會是這個問題!?
Workbook.OleFunction("SaveAs", StringToOleStr(Edit1->Text.c_str())); 參考一下底下這兩篇:
資料匯出至 Excel 出問題求救!!!
http://delphi.ktop.com.tw/topic.php?topic_id=27069
【BCB】【分享】將資料庫資料轉入Excel並畫出圖表
http://delphi.ktop.com.tw/topic.php?topic_id=40909 ===三人行必有我師焉===
|
Rattler
一般會員 發表:11 回覆:4 積分:3 註冊:2004-07-08 發送簡訊給我 |
引言: 會不會是這個問題!? Workbook.OleFunction("SaveAs", StringToOleStr(Edit1->Text.c_str())); 參考一下底下這兩篇: 資料匯出至 Excel 出問題求救!!! http://delphi.ktop.com.tw/topic.php?topic_id=27069 【BCB】【分享】將資料庫資料轉入Excel並畫出圖表 http://delphi.ktop.com.tw/topic.php?topic_id=40909 ===三人行必有我師焉===喔!! 真的解決了!! 太感謝了!! 要用StringToOleStr來轉換類型沒錯 > |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |