_Application m_ExlApp;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
Range m_ExlRge, usedRange;
if(!m_ExlApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
return;
}
m_ExlApp.SetVisible(TRUE);
CString theAppPath,theAppName;
char Path[MAX_PATH];
GetModuleFileName(NULL,Path,MAX_PATH);
theAppPath=(CString)Path;
theAppName=AfxGetApp()->m_pszAppName;
theAppName+=".exe";
int length1,length2;
length1=theAppPath.GetLength();
length2=theAppName.GetLength();
theAppPath.Delete(length1-length2,length2);
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks());
m_ExlBook = m_ExlBooks.Add(covOptional);
m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);
m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
m_ExlSheet.Delete();
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
m_ExlSheet.SetName("TestSheet");
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));
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++)
{
for(int j=1;j<=4;j++)
{
CellName.Format("%c%d",j+64,i);
UnitRge.AttachDispatch(m_ExlRge.GetRange(_variant_t(CellName),_variant_t(CellName)));
UnitRge.BorderAround(_variant_t((long)1),_variant_t((long)2),_variant_t((long)-4105),vtMissing);
}
}
m_ExlRge.ReleaseDispatch();
m_ExlSheet.ReleaseDispatch();
m_ExlSheets.ReleaseDispatch();
m_ExlBook.ReleaseDispatch();
m_ExlBooks.ReleaseDispatch();
m_ExlApp.ReleaseDispatch();