VC建立Excel報表

2021-05-23 05:32:18 字數 4182 閱讀 2311

生成excel.obl物件類excel.h

建立物件

編寫excel**

//設定為可見

///下面得到應用程式所在的路徑///

char path[max_path];

getmodulefilename(null,path,max_path);//得到應用程式的全路徑

//把最後的檔名去掉

int length1,length2;

cstring temppath="";

m_exlbook.attachdispatch(m_exlbooks.add((_variant_t)temppath),true);//載入excel模板

m_exlsheets.attachdispatch(m_exlbook.getsheets(),true);//載入sheet頁面

//新增新的sheet頁面

m_exlsheets.add(vtmissing,vtmissing,_variant_t((long)1),vtmissing);

//刪除第二個sheet頁面

m_exlsheet.attachdispatch(m_exlsheets.getitem(_variant_t((long)2)),true);

m_exlsheet.delete();

//把第乙個sheet頁面的名字改變為testsheet

m_exlsheet.attachdispatch(m_exlsheets.getitem(_variant_t((long)1)),true);

m_exlsheet.setname("testsheet");

///合併第一行單元格a1至d1//

//載入要合併的單元格

m_exlrge.attachdispatch(m_exlsheet.getrange(_variant_t("a1"),_variant_t("d1")),true);

m_exlrge.merge(_variant_t((long)0));

設定**內容

m_exlrge.attachdispatch(m_exlsheet.getcells(),true);//載入所有單元格

m_exlrge.setitem(_variant_t((long)1),_variant_t((long)1),_variant_t("數學系研究生課程統計"));

m_exlrge.setitem(_variant_t((long)2),_variant_t((long)1),_variant_t("課程名"));

m_exlrge.setitem(_variant_t((long)2),_variant_t((long)2),_variant_t("課時"));

m_exlrge.setitem(_variant_t((long)2),_variant_t((long)3),_variant_t("難度"));

m_exlrge.setitem(_variant_t((long)2),_variant_t((long)4),_variant_t("教學方式"));

m_exlrge.setitem(_variant_t((long)3),_variant_t((long)1),_variant_t("泛函分析"));

m_exlrge.setitem(_variant_t((long)3),_variant_t((long)2),_variant_t("60"));

m_exlrge.setitem(_variant_t((long)3),_variant_t((long)3),_variant_t("普通"));

m_exlrge.setitem(_variant_t((long)3),_variant_t((long)4),_variant_t("老師講課"));

m_exlrge.setitem(_variant_t((long)4),_variant_t((long)1),_variant_t("微分流形"));

m_exlrge.setitem(_variant_t((long)4),_variant_t((long)2),_variant_t("40"));

m_exlrge.setitem(_variant_t((long)4),_variant_t((long)3),_variant_t("**難"));

m_exlrge.setitem(_variant_t((long)4),_variant_t((long)4),_variant_t("自學"));

m_exlrge.setitem(_variant_t((long)5),_variant_t((long)1),_variant_t("二階橢圓型方程與方程組"));

m_exlrge.setitem(_variant_t((long)5),_variant_t((long)2),_variant_t("60"));

m_exlrge.setitem(_variant_t((long)5),_variant_t((long)3),_variant_t("很難"));

m_exlrge.setitem(_variant_t((long)5),_variant_t((long)4),_variant_t("討論"));

m_exlrge.attachdispatch(m_exlsheet.getusedrange());//載入已使用的單元格

m_exlrge.setwraptext(_variant_t((long)1));//設定單元格內的文字為自動換行

//設定齊方式為水平垂直居中

//水平對齊:預設=1,居中=-4108,左=-4131,右=-4152

//垂直對齊:預設=2,居中=-4108,左=-4160,右=-4107

m_exlrge.sethorizontalalignment(_variant_t((long)-4108));

m_exlrge.setverticalalignment(_variant_t((long)-4108));

///設定整體的字型、字型大小及顏色//

font ft;

ft.attachdispatch(m_exlrge.getfont());

ft.setname(_variant_t("宋體"));//字型

ft.setcolorindex(_variant_t((long)11));//字的顏色

ft.setsize(_variant_t((long)12));//字型大小

///設定標題字型及顏色//

m_exlrge.attachdispatch(m_exlsheet.getrange(_variant_t("a1"),_variant_t("d1")));

ft.attachdispatch(m_exlrge.getfont());

ft.setbold(_variant_t((long)1));//粗體

ft.setsize(_variant_t((long)13));

ft.setcolorindex(_variant_t((long)2));

cellformat cf;

cf.attachdispatch(m_exlrge.getcells());

//設定底色/

interior it;

it.attachdispatch(m_exlrge.getinterior());

it.setcolorindex(_variant_t((long)11));//標題底色

**內容的底色

m_exlrge.attachdispatch(m_exlsheet.getrange(_variant_t("a2"),_variant_t("d5")));

it.attachdispatch(m_exlrge.getinterior());

it.setcolorindex(_variant_t((long)15));

//為**設定邊框/

range unitrge;

cstring cellname;

for(int i=1;i<=4;i++)

} //釋放物件(相當重要!)

m_exlrge.releasedispatch();

m_exlsheet.releasedispatch();

m_exlsheets.releasedispatch();

m_exlbook.releasedispatch();

m_exlbooks.releasedispatch();

NPOI之使用EXCEL模板建立報表

因為專案中要用到伺服器端建立excel模板 無法直接呼叫excel 查了下發現npoi很方便很簡單就實現了 其中走了點彎路 第一次弄的時候發現輸出的值是文字不是數字型無法直接計算公式 然後又發現開啟報表公式沒有自動計算 後來都解決了 詳見 region 報表處理 using filestream f...

Excel動態報表

老闆總是公司最忙的乙個人。所以給老闆演示的報表一定要簡明扼要,突出重點。你的報表是這樣的嗎?excel高手的報表卻是這樣的 用圖表動態展示每個月的銷售完成情況 沒有對比沒有傷害,即好看又直觀,完勝第一種純 式報表。看上去很複雜,其實有乙個excel功能就可以輕鬆搞定,它就是 資料透視表 下面就分享一...

Excel匯出報表

excel匯出 function exportexcel 對應controller exportexcel?var param id serialize form表單的id 把建立的內容寫入到輸出流中,並關閉輸出流 workbook.write workbook.close os.close pub...