QT操作Excel學習記錄

2021-08-14 00:06:43 字數 1626 閱讀 5967

1、qaxbase是乙個提供用來初始化和訪問com物件和active空間的api抽閒類;

2、qaxobject是乙個包裝了com物件的qobject。

3、qaxwidget是乙個包裝了activex控制項的qwidget。

4、qaxscriptmanager /qaxscript和qaxscriptengin提供乙個windows指令碼解釋嵌入的com物件。

qaxbase類提供了初始化和訪問com物件的api。

如果com物件實現了idispatch介面,那麼就可像使用qt 屬性和槽函式一樣使用該物件的屬性和方法。方法可以連線訊號,而由物件的idispatch實現而公開的屬性可以通過qt屬性系統對其讀寫(在qt物件模型中qobject的子類也是qobject,可以用qobject::setproperty()和qobject::property()寫和讀屬性)。

qaxbase實現了com資料型別和等價的qt資料型別之間的透明轉換。但一些com型別沒有對應的qt資料結構。

受支援的com資料型別列在下表的的第一列,第二列是有qobject屬性函式一起使用qt型別,第三列是用於生成訊號的原型的qt型別,最後一列是用於

訊號和槽的

輸出引數的qt型別

1、初始化com物件——使用qaxbase::setcontrol()或者直接把物件的名字傳遞到qaxbase子類的建構函式中,初始化乙個com物件。

設定control屬性來初始化com物件,如excel是連線excel控制項

指定控制項——設定該屬性最有效的方法是使用註冊元件的uuid;

第二個法子是使用註冊控制項的型別(包括或不包括版本號)

最慢但最簡單的方法是使用控制項的全稱

對於不同的情況還有其他不同的方法。

bool setcontrol(const qstrig& )

2、訪問com物件的api

可以通過訪問com物件的qt api來取代com的資料型別

方法2、call-by-name   :

用qaxbase::dynamiccall()、qaxbase::querysubobject() 和qobject::setproperty()、qobject::property() 能通過名字呼叫com物件的方法和屬性。

qvariant qaxbase::dynamiccall(const char *function , const qvariant &var1=qvraint(),...)

該成員方法呼叫com物件的method方法,傳遞引數var1,var2,var,var4,var5,var6,var7,這個方法有返回值,則返回乙個值,沒有返回值或呼叫失敗就返回乙個無效的qvariant。

function必須是com物件的方法的完整模型,類似於qobject::connect()的呼叫。

也可以傳遞引數在function這個字串中 即:

excel->dynamiccall("setvisible(bool

visible)","false");

//不顯示窗體

excel->dynamiccall("setvisible(false)");

QT學習 常見操作記錄

qt 常見操作隨時更新,方便用到時查閱 設定action圖示路徑,所有資源檔案都會編譯到可執行檔案中,當引用這些資源時,需要使用帶路徑字首 冒號斜線的形式 openaction seticon qicon images hahaxu.png 2.qt5中文亂碼 使用qstringliteral 中文...

Qt 操作Excel 讀取Excel 資料

qt 操作excel 有兩種方式 一種使用 qt qaxobject操作excel,這種方式執行的主機需要安裝microsoft excel,qt 利用qaxobject com介面操作microsoft excel 軟體實現excel 讀寫 第二種就是用第三的庫實現excel 讀寫。常用的庫和使用...

Delphi操作Excel日誌記錄

1 匯出資料uses comobj procedure tform10.execlexit var h,k integer excelid olevariant s string begin tryexcept exit end tryk adoqry.recordcount excelid.vis...