生成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...