CPP QT實現excel的凍結窗格

2021-10-12 03:41:59 字數 1651 閱讀 6531

在excel中錄製巨集可以獲得以下vba**:

range

("c3"

).select

activewindow.freezepanes = true

然後根據以上**去猜測cpp**如何寫,實際很難。但可以猜到關鍵函式setfreezepanes。

搜尋:excel cpp setfreezepanes(true) 可以找到以下網頁:

參考以後,封裝函式如下:

bool freezesheet

(excel:

:worksheet *sheet,

const

int irowcount,

const

int icolcount)

if(irowcount ==

0&& icolcount ==0)

excel:

:range *range_used = sheet->

usedrange()

;if(range_used ==

null

) excel:

:range *range_rows = range_used->

rows()

;if(range_rows ==

null

) excel:

:range *range_cols = range_used->

columns()

;if(range_cols ==

null

)int excel_row_count = range_rows->

count()

;//行數

int excel_col_count = range_cols->

count()

;//列數

int irowfreeze = irowcount;

int icolfreeze = icolcount;

if(irowcount > excel_row_count)

if(icolcount > excel_col_count)

if(irowfreeze ==

0&& icolfreeze ==0)

// sheet->

activate()

; excel:

:window *pwindow = excel_->

activewindow()

;if(null

== pwindow)

pwindow->

setfreezepanes

(false)

;//首先先把凍結窗格去掉,防止excel已經設定的凍結窗格導致後面設定的不成功。

pwindow->

setsplitcolumn

(icolfreeze)

;//icolcount為0時,只凍結行

pwindow->

setsplitrow

(irowfreeze)

;//irowcount為0時,只凍結列

pwindow->

setfreezepanes

(true)

;//設定凍結窗格屬性為true

return true;

}

excel凍結視窗問題

excel凍結視窗問題 在excel中,怎樣固定上邊和左邊的 在上下拉和左右拉時,它們是凍結的,不會動 我只能固定上邊的,或者只固定左邊的,謝謝 選中你要凍結行下邊一行和要凍結列右邊一列的那個單元格,再從選單裡點凍結視窗就可以了 比如你要凍結前兩行和前一列,就選中 b3 再點凍結視窗就搞定了。在視窗...

excel凍結窗格

當我們編輯過長或過寬的excel 2007 工作表時,需要向下或向上滾動螢幕。這時表頭也會相應滾動,不能在螢幕上顯示,於是我們搞不清要編輯的資料對應於表頭的哪乙個資訊。按下列方法可將表頭鎖定,使表頭始終位於螢幕上的可視區域。首先選定要鎖定的表頭,如果我們要將圖中表頭 1至3行 鎖定,那麼單擊a4單元...

002Excel凍結視窗(凍結第二行)

不知道是最近狀態不好還是怎麼回事excel凍結前面兩行居然弄了很久,而工作上又急需,為此還是記錄一下 其實超級簡單 不會的話就很難 如果凍結一行 這個非常簡單 那麼凍結前面兩行呢?我研究了很久,其實很簡單 主要是office2016的選單提示有點不友好 具體方法如下 在第3行選中乙個單元格 切記是單...