添加 CExcelOLE 类
在 MFC 中,操作 Excel 表格内容还是比较方便的,直接VS 的工作项目添加类即可。
大致如下:
1 工程属性右键 Add Class -> MFC -> MFC Class From TypeLib -->Add
2 在 Available type libraries: 选择电脑上的 Excel 版本库,然后选择如下的几个类添加到右边框,完成即可在项目内生成一个 CExcelOLE 类。
改写构造函数
默认支持的是在主线程内使用,如果在创建的子线程中使用会报错,这便需要在构造 Ole 对象的时候分别设定是否采用多线程模式来初始化了。
代码如下:
CExcelOLE::CExcelOLE(BOOL bMultiThreaded)
{
if (bMultiThreaded){
CoInitializeEx(NULL,COINIT_MULTITHREADED); //可以在多线程中使用COM, 但是可能会导致有些依赖 MFC 的操作异常
}else{
CoInitialize(NULL);
}
if(!m_app.CreateDispatch(_T("Excel.Application"),NULL))//启动了6个线程
{
m_bOleReady = false;
}
else
{
m_bOleReady = true;
}
m_lpDisp = NULL;
}
使用
在创建的子线程函数内调用:
CExcelOLE Excel(TRUE);//多线程方式初始化
Excel.OpenExcel(m_strFilePath);
Excel.OpenSheet();
转载请注明原文地址: https://ju.6miu.com/read-666140.html