MFC向Excel读写数据详细方法(2)

2019-04-13 18:17

_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();


MFC向Excel读写数据详细方法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:超星慕课尔雅 走进中国文化之门答案题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: