- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)