VC中实现读取Excel表数据总结.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC中实现读取Excel表数据总结

VC中实现读取Excel表数据总结利用VC对Excel进行操作。主要的函数是从网上找的,有些东西自己做了修改。可以对一个目录下的所有Excel表进行处理。主要代码如下: ? //获取一个目录下所有Excel表名,并加入到一个数组中。 char oldPath[MAX_PATH]; ?getcwd(oldPath,MAX_PATH); ?chdir(m_strDirectory); ?CFileFind fileFind; ?BOOL bExist=FALSE; ?bExist=fileFind.FindFile(*.xls); ?while(bExist) ?{ ??bExist=fileFind.FindNextFile(); ??CString strTitle=fileFind.GetFileTitle();? ??m_strTableAll.Add(strTitle); ?} ?fileFind.Close(); ?chdir(oldPath); ? ? //处理所有Excel数据,并把所有数据加入到一个二维数组中 CString m_strArray[i][j] ? CoInitialize(NULL); ?int i,j;??//用来循环 ?// 获得EXCEL的CLSID ?CLSID clsid; ?HRESULT hr = CLSIDFromProgID(LExcel.Application, clsid); ? ?if(FAILED(hr)) { ??AfxMessageBox(CLSIDFromProgID() 函数调用失败!); ??return; ?} ? ?// 创建实例 ?IDispatch *pXlApp; ?hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)pXlApp); ?if(FAILED(hr)) { ??AfxMessageBox(请检查是否已经安装EXCEL!); ??return; ?} ? ?// 显示,将Application.Visible属性置1 ?/VARIANT x; ?x.vt = VT_I4; ?x.lVal = 1; ?AutoWrap(DISPATCH_PROPERTYPUT, NULL, pXlApp, LVisible, 1, x); ?// 获取Workbooks集合 ?IDispatch *pXlBooks; ?{ ??VARIANT result; ??VariantInit(result); ??AutoWrap(DISPATCH_PROPERTYGET, result, pXlApp, LWorkbooks, 0); ??pXlBooks = result.pdispVal; ?} ? ?CString strName;??//Excel表完整路径 ?CString strTmp;???//临时变量,保存单元格数据中的CString型 ?double dblTmp;???//临时变量,保存单元格数据中的double型 ?//用来保存信息的数组 ?VARIANT arr; ?arr.vt = VT_ARRAY | VT_VARIANT; ?SAFEARRAYBOUND sab[2]; ?sab[0].lLbound = 1; sab[0].cElements = 40; ?sab[1].lLbound = 1; sab[1].cElements = 16; ?arr.parray = SafeArrayCreate(VT_VARIANT, 2, sab); ?int tableNum; ?int nCount=m_DataConn.m_strTableAll.GetSize();? ?for(tableNum=0;tableNumnCount;tableNum++) ?{ ??strName.Format(%s\\%s,m_DataConn.m_strDirectory,m_DataConn.m_strTableAll.GetAt(tableNum)); ???? ??// 调用Workbooks.Open()方法,打开一个已经存在的Workbook ??IDispatch *pXlBook; ??{ ???VARIANT parm; ???parm.vt = VT_BSTR; ???//?parm.bstrVal = ::SysAllocString(LstrName); ???parm.bstrVal=strName.AllocSysString(); ???VARIANT result; ???VariantInit(result);

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档