MFC操作excle失败问题总结

添加excle类向导:

CWorkbook m_workbook;
   CWorkbooks m_workbooks;
   CWorksheet m_worksheet;
   CWorksheets m_worksheets;
   CRange m_range;
   CApplication m_application;
 

excle 初始化:

 

if (::CoInitialize( NULL ) == E_INVALIDARG)
{
AfxMessageBox(_T("初始化Com失败!"));
}


if (!m_application.CreateDispatch("Excel.Application", NULL))  //注意名称一般调用错误会出现在这里,

      //出现错误可尝试 : m_application.CreateDispatch(_T("Excel.Application"), NULL)
    {  
        AfxMessageBox(_T("创建Excel服务失败!"));   
::CoUninitialize();
        return TRUE;   
    }  
  
    m_application.put_Visible(FALSE);  


CString strPath,exltempPath;
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); 
strPath.ReleaseBuffer (); 
int nPos; 
nPos          = strPath.ReverseFind ('\\'); 
strPath       = strPath.Left (nPos); 
m_strDrectory = strPath;
exltempPath = m_strDrectory+_T("\\Template.xls");

m_workbooks.AttachDispatch(m_application.get_Workbooks(),TRUE);

m_workbook.AttachDispatch(m_workbooks.Add((_variant_t)exltempPath),TRUE);//加载EXCEL模板
//m_worksheets.AttachDispatch(m_workbook.get_Sheets(),TRUE);//加载Sheet页面
m_worksheets=m_workbook.get_Sheets();  
//获取第一个工作表  
m_worksheet=m_worksheets.get_Item(COleVariant((short)1));  


m_range.AttachDispatch(m_worksheet.get_Cells(),TRUE);//加载所有单元格


m_range.put_Item(_variant_t((long)2),_variant_t((long)2),_variant_t(m_worker));


CString sfile;
sfile.Format("%02d%02d%02d", time.GetYear(), time.GetMonth(), time.GetDay());
m_range.put_Item(_variant_t((long)3),_variant_t((long)2),_variant_t(sfile));

 

操作excle: 

m_range.put_Item(_variant_t((long)m_row),_variant_t((long)1),_variant_t(m_num));
m_range.put_Item(_variant_t((long)m_row),_variant_t((long)2),_variant_t(qr));
m_range.put_Item(_variant_t((long)m_row),_variant_t((long)3),_variant_t(num));

 

释放excle:

m_workbook.put_Saved(TRUE);


m_range.ReleaseDispatch();   
m_worksheet.ReleaseDispatch();   
m_worksheets.ReleaseDispatch();   
m_workbook.ReleaseDispatch();   
m_workbooks.ReleaseDispatch();   


m_workbook.Close (covOptional, covOptional,covOptional);// 关闭Workbook对象
    m_workbooks.Close();           // 关闭Workbooks对象
  //退出程序   
m_application.Quit();  
m_application.ReleaseDispatch(); 
::CoUninitialize();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值