_variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing), _variant_t(vtMissing) );
// 获得活动的WorkBook( 工作簿 ) book.AttachDispatch(lpDisp, TRUE ); // 获得活动的WorkSheet( 工作表 )
sheet.AttachDispatch(book.get_ActiveSheet(), TRUE ); // 获得使用的区域Range( 区域 )
range.AttachDispatch(sheet.get_UsedRange(), TRUE ); // 获得使用的行数 longlgUsedRowNum = 0;
range.AttachDispatch(range.get_Rows(), TRUE ); lgUsedRowNum = range.get_Count(); // 获得使用的列数 longlgUsedColumnNum = 0;
range.AttachDispatch(range.get_Columns(), TRUE ); lgUsedColumnNum = range.get_Count(); // 读取Sheet的名称
CStringstrSheetName = sheet.get_Name(); //得到全部Cells,此时,CurrRange是cells的集合 range.AttachDispatch(sheet.get_Cells(), TRUE ); // 遍历整个Excel表格 CStringArray* arrayStr;
arrayStr = newCStringArray[lgUsedRowNum]; for ( int i = 0; i for ( int j = 1; j <= lgUsedColumnNum; )//遍历列 { oCurCell.AttachDispatch( range.get_Item( COleVariant( (long)(i + 1)), VARIANTvarItemName = oCurCell.get_Text(); CStringstrItemName; COleVariant( (long)j ) ).pdispVal, TRUE ); strItemName = varItemName.bstrVal; AfxMessageBox(strItemName ); // 判断是否是合并的单元格 VARIANTvarMerge = oCurCell.get_MergeCells(); CString // PosInfo1[]={\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\}; CString PosInfo2[]={\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\}; } if(lgUsedColumnNum*lgUsedRowNum>=300) { } CStringstrTempValue[20][20]; for ( int i = 0; i // 释放二维数组 delete[] arrayStr; for (int j = 0; j strTempValue[i][j]=arrayStr[j].GetAt(i); MessageBox(\文件过大,存储空间不足,无法读取!\); goto LLL; } i++; if ( varMerge.boolVal == -1 ) { } else if ( varMerge.boolVal == 0 ) { } arrayStr[i].Add( strItemName ); j++; AfxMessageBox( _T( \不是合并的单元格!\ AfxMessageBox( PosInfo1[j-1]+PosInfo2[i]+\是合并的单元格!\ ); // // // // /**********************************************************************************//这里设置了字符串类型,应该还能设置其它类型参数,比如说整型。解开上面代码中的注释, ******************/ 可以尝试下其它功能。参考资源[1] //释放资源 book.SaveCopyAs(COleVariant(strFilePath)); book.put_Saved(true); book.ReleaseDispatch(); books.ReleaseDispatch(); app.Quit(); app.ReleaseDispatch(); long size327=lgUsedColumnNum*lgUsedRowNum; datafloat=atof(strTempValue[0][0]); UpdateData(TRUE); for ( int i = 0; i m_ddd=datafloat; UpdateData(FALSE); if (i!=0) { } for (int j = 0; j if (!strTempValue[i][j].IsEmpty()) { } str327=str327+\+strTempValue[i][j]; str327=str327+\; // // //将对应Excel进程关闭 range.ReleaseDispatch(); oCurCell.ReleaseDispatch(); sheet.ReleaseDispatch(); sheets.ReleaseDispatch(); book.ReleaseDispatch(); books.ReleaseDispatch(); } /*******************资源释放***********************/ //book.SaveCopyAs(COleVariant(strFileName1)); //book.put_Saved(true); //不显示任何警告对话框 app.put_AlertBeforeOverwriting(false); app.put_DisplayAlerts(false); LLL: //在保存文件代码之前加上下面两句语句 //以下关闭应用的两条代码结合使用且顺序不能反,否则无法关闭进程 app.ReleaseDispatch(); app.Quit(); 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库MFC向Excel读写数据详细方法(2)在线全文阅读。
相关推荐: