在新工作的开发过程中,接触了以前很多没有碰到过的东西,为了查找相关资料,浪费了不少的时间,今天就将这些贴出来,希望以后大家不会再花费大量的时间去查找
1.在UTP005版本的开发中,保存全局参数和局部变量的时候,都用到了Excel。但是VC对Excel的操作,尤其是对Excel2003的操作没有很好的实例,在结合了网上的一些例子和实际过程中的问题,把从VC中怎么添加引用,到对其怎么操作做了一点小节。希望对有用到的朋友能起点作用。
1)在VC中添加对Excel2003的引用
在VC编译环境中点击 View-ClassWizard(或者快截键CTRL+W),打开类向导,然后点击 Add Calss-From a type library
打开C:/Program Files/Microsoft Office/OFFICE11/Excel.exe,然后添加需要用到的类,一般常用的是
_Application excelApp;
Workbooks oBooks;
_Workbook oBook;
Sheets oSheets;
_Worksheet oSheet;
Range rngXls;
2)应用
(1) 初始化
void InitExcel()
{
if(!excelApp.CreateDispatch(_T("Excel.Application"),NULL))
{
AfxMessageBox("创建Excel2003失败!");
return;
}
}
(2)添加一个新的Sheet页,并将其名称给为"全局变量参数",并在第一行第一列输入 "abc"
void CreateExcelAndSaveVar(CString savePath)
{
InitExcel();
//设置Excel应用程序不可见
excelApp.SetVisible(FALSE);
oBooks=excelApp.GetWorkbooks(); //增加一个新的Book,默认新增的都有三个表单页,删除 Sheet2和Sheet3
oBook=oBooks.Add(vtMissing);
oSheets = oBook.GetWorksheets();
oSheet=oSheets.GetItem(_variant_t
("Sheet2"));
oSheet.Delete();
oSheet=oSheets.GetItem(_variant_t
("Sheet3"));
oSheet.Delete();
//得到Sheet1的表单对象
oSheet=oSheets.GetItem(_variant_t
("Sheet1"));
oSheet.SetName("GlobalVar");
//得到Sheet1的单元各对象
rngXls=oSheet.GetCells(); rngXls.SetItem(_variant_t((long)(1)),_variant_t((long)1),_variant_t("abc")));
oBook.SaveAs(COleVariant(savePath),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),0,COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR));
Quit();
}
(3)退出
void Quit()
{
oBook.Close(COleVariant((long)TRUE),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR));
oBook.ReleaseDispatch();
rngXls.ReleaseDispatch();
oSheet.ReleaseDispatch();
oSheets.ReleaseDispatch();
oBooks.Close();
oBooks.ReleaseDispatch();
excelApp.Quit();
excelApp.ReleaseDispatch();
}