添加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();