Excel物件模型的一些使用心得(C )

2021-09-08 07:02:00 字數 1829 閱讀 9691

最近在做乙個很小的專案,做excel的匯出。用到了excel 10.0 (使用者要求),對應的office版本是2002(xp).在某篇文章中找到了乙個操作excel物件的基礎類,裡面的方法比較全了,我這裡只記錄我所做專案中用到的幾個特殊的用法。

單元格查詢功能,即實現excel中的(ctrl+f)功能。

excel.range newrange = range.find(conditions, rangeafter, excel.xlfindlookin.xlformulas, excel.xllookat.xlpart, excel.xlsearchorder.xlbyrows, excel.xlsearchdirection.xlnext, false, false, false);其中conditions為查詢的條件,rangeafter為從哪個單元格之後開始查詢。find()方法返回型別也為range。

插入空行,插入空列。

public

void

insertrow(

intstartrow, 

intendrow)

public

void

insertcolumn(

intstartcolumn, 

intendcolumn)

向單元格新增批註。

//////

新增批註

///

///批註

///行

///列

///

public

bool

addcoment(

object

coment, 

introw, 

intcolumn)

catch

}設定行高。

//////

設定行高

///

///起始行

///結束行

///行高

public

void

setrowheight(

intstartrow, 

intendrow, 

intheight)

實現copy格式功能,即格式刷功能。

newrange.pastespecial(excel.xlpastetype.xlpasteformats, excel.xlpastespecialoperation.xlpastespecialoperationnone, 

false

, false

);在**中對原先是合併的單元格使用上面的pastespecial方法後,可能會把原先合併的單元格拆分開,我在專案中解決的辦法是,在查詢的時候,把原先合併的單元格range物件儲存到陣列中,然後pastespecial,在**最後再對陣列中的單元格進行合併。

=new

excel.range[

2048

];//

用於儲存原模板中單元格合併狀態的陣列

//查詢newrange

if((

bool

)newrange.mergecells

==true

)//對所有原來是合併的單元格進行重新合併

foreach

(excel.range range1 

inmergedatarange)

else

以上列出的功能很少,僅僅是為了給自己的工作做一下小結,回顧一下自己寫的**,同時也期待各位朋友的指正和討論。另外,在做office開發用到com元件的時候,遇到不熟悉的功能,可以在office中錄製巨集,把自己需要解決的問題用vba記錄下來,然後檢視,對自己編寫**會有很大啟發。

另外msdn對excel物件模型有個比較詳細的介紹:

VMware一些使用心得

這段時間vmware workstation用得較多,裝了好幾個虛擬機器,有win2003,win2008,win7,還分32位,64位。裝了這麼多,要麼是用於安裝一些軟體,比如oracle12c,因為宿主機器已經裝了11g,一山難容二虎 要麼是用於部署測試環境。我覺得虛擬機器真是很棒的想法。以下是...

VMware一些使用心得

分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!這段時間vmware workstation用得較多,裝了好幾個虛擬機器,有win2003,win2008,win7,還分32位,64位。裝了這麼多,要麼是用於安裝一些軟體,比如oracl...

Sqoop的一些使用心得

sqoop作為從關係型資料庫匯入hdfs的工具,我們在從關係型資料庫中匯出資料時可先做資料篩選,選定我們所要的資料,能大大的減輕資料負擔,即sql語句後加where條件的實現!經測試可執行sqoop指令碼如下 sqoop import connect jdbc oracle thin ip port...