VC操作Excel
1、Excel的层次结构:
Application
Workbooks
Workbook
......
Worksheets
Worksheet
......
Range
Font
Borders
......
.......
2、插入类型库
(1)、在一个已有的MFC工程按Ctrl + W 弹出ClassWizard对话框。
(2)、Add Class.../From a type Library... 在 Office 目录中,找到你想使用的Excel类型库(Offce2000下,此目录在C:/Program Files/Microsoft Office/Office/EXCEL9.OLB;Offce2003下,此目录在C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE)。选择EXCEL9.OLB或EXCEL.EXE;
(3)、在弹出的对话框中选择要添加的类,具体选那些类要根据实际情况而定。当然你也可以全选
3、基本操作
当你要选用Excel生成报表时,表的结构可能有固定的部分,这时做一个模板,这样可以减少编码的负担。加载Excel模板的代码如下:
//(1)定义变量:下面的类型都是通过加入EXCEL类型库之后自动定义的C++类,你可以自由使用。(_Application,Workbook……等)
_Application ExcelApp; // 定义Excel应用程序
Workbooks wbsBooks;
_Workbook wbBook;
Worksheets wssSheets;
_Worksheet wsSheet;
Range rngXls;
FontXls font; // 字体
BordersXls border; // 边框
//(2) 初始化Com,一般放在应用程序类的初始化函数中,并在结束时使用::CoUninitialize();释放COM库。
if (::CoInitialize( NULL ) == E_INVALIDARG)
{
AfxMessageBox(_T("初始化Com失败!"));
}
//(3)创建Excel2000服务器(启动Excel)
if ( !ExcelApp.CreateDispatch(_T("Excel.Application"), NULL))
{
AfxMessageBox(_T("创建Excel2000服务失败!"));
::CoUninitialize();
}
ExcelApp.SetVisible(FALSE); // 隐藏
//(4)打开模板
CString strPath;
strPath += "C://template.xlt"; // 模板的路径
CFileFind filefind;
if( !filefind.FindFile( strPath ) )
{
AfxMessageBox( "没有找到模版文档,请其查找" );
CFileDialog dlg (TRUE,
NULL,
NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"模版||*.xlt||",
NULL );
if (IDOK == dlg.DoModal())
{
strPath = dlg.GetPathName();
}
}
//(5)操作strPath模板路径
COleVariant vOptional( (long)DISP_E_PARAMNOTFOUND, VT_ERROR );
try
{
wbsBooks.AttachDispatch(ExcelApp.GetWorkbooks(), TRUE);
wbBook.AttachDispatch(wbsBooks.Add(COleVariant(strPath)), TRUE );
wssSheets = wbBook.GetWorksheets();
wsSheet = wssSheets.GetItem(_variant_t("Sheet1")); // Get Sheet1
wsSheet.SetName( "Your Sheet" ); // 改名
// 得到全部Cells,此时,rngXls 是cell
MFC操作EXCEL的方法
最新推荐文章于 2023-06-14 14:46:03 发布
这篇博客介绍了如何在VC环境下使用MFC操作Excel,包括插入Excel类型库、创建Excel应用程序、打开模板、进行基本操作,如设置字体、边框、颜色等,并提供了具体的代码示例。
摘要由CSDN通过智能技术生成