全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2169
推到 Plurk!
推到 Facebook!

請問BCB如何抓到目前Excel有哪些Topics?

答題得分者是:RaynorPao
kelon
一般會員


發表:17
回覆:27
積分:18
註冊:2002-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-18 11:10:12 IP:122.146.xxx.xxx 未訂閱
請教各位
目前我的程式有個需求要抓到目前開啟的Excel的所有Topics
比如default開啟Excel就有Sheet1,Sheet2,Sheet3這三個Topics
使用的介面是DDE Service
請問各位要怎麼才能抓到目前所有Excel的Topics
謝謝
目前我google了 大概知道要用TDdeClientConv & TDdeClientItem
DdeClientConv1->SetLink("Excel","System");
DdeClientConv1->OpenLink();
DdeClientItem1->DdeItem="Topics";
不過在Item & Line裡還是沒有抓到Topic
是哪裡有問題呢 @@
編輯記錄
kelon 重新編輯於 2008-08-18 11:12:07, 註解 無‧
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-18 13:50:30 IP:210.208.xxx.xxx 訂閱
(1)我沒有用過 DDE Service,因此不清楚你目前的寫法該如何修正
(2)提供我的作法給你參考,利用 BCB 6.0 的元件 ExcelApplication 來達成,請參考以下的範例程式碼,再自行修改

[code cpp]
#include "ComObj.hpp"
#include "Excel_2K_SRVR.h"

void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Count sheets of a *.xls file
Variant ExcelApp, ExcelBooks, ExcelBook, ExcelSheets, ExcelSheet;
try
{
ExcelApp=Variant::CreateObject("Excel.Application");
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
if(ExcelApp.IsEmpty())
{
return;
}
ExcelApp.OlePropertySet("Visible", true); // 把這行刪掉, Excel 執行畫面就不會出現
ExcelBooks=ExcelApp.OlePropertyGet("Workbooks");
try
{
AnsiString szXlsFile1=ExtractFilePath(Application->ExeName) "test.xls";
ExcelBook=ExcelBooks.OleFunction("Open", StringToOleStr(szXlsFile1));
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
if(ExcelBook.IsEmpty())
{
return;
}
Variant SheetCount, SheetName;
ExcelSheets=ExcelBook.OlePropertyGet("Worksheets");
SheetCount=ExcelSheets.OlePropertyGet("Count");
int iSheetCount=SheetCount;
for(int i=0; i {
ExcelSheet=ExcelSheets.OlePropertyGet("Item", i 1);
SheetName=ExcelSheet.OlePropertyGet("Name");
AnsiString szSheetName=SheetName;
ShowMessage(szSheetName);
}

ExcelBook.OleFunction("Close");
ExcelApp.OleFunction("Quit");
}
[/code]
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2017-12-12 10:18:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!