使用MFC获取Excel单元格的背景颜色

时间:2018-04-09 10:56:46

标签: c++ excel mfc

我在MFC中创建一个应用程序,我需要获取Excel Cell的数据和背景颜色。

我获取了以下用于获取数据但无法获取单元格背景颜色的代码:

CExcelWorksheets oSheets = m_oBook.get_Sheets();
CExcelWorksheet oSheet = oSheets.get_Item( COleVariant(1) );

CExcelRange oRange = oSheet.get_UsedRange();
// Get the data
COleSafeArray saRet( oRange.get_Value2() ); // ( oRange.get_Value(covOptional) );

long nRows;
long nCols;
saRet.GetUBound( 1, &nRows );
saRet.GetUBound( 2, &nCols );

long nIndex[2];
// Loop throgth the data and report the contens
for ( int nRowCounter=1; nRowCounter <= nRows; nRowCounter++ ) {
    for ( int nColCounter=1; nColCounter <= nCols; nColCounter++ ) {
        CExcelRange rnge = oSheet.get_Range(COleVariant(TEXT("A1")), COleVariant(TEXT("A1")));

        nIndex[0] = nRowCounter;
        nIndex[1] = nColCounter;

        COleVariant covData;
        saRet.GetElement( nIndex, covData );
        CString strData;
        if ( covData.vt != VT_ERROR )
            strData = CString( covData );
        else
            strData = _T("");

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

Interior属性是否以任何方式暴露?

根据文章,它说:

  

使用Interior属性返回Interior对象。以下示例将单元格A1内部的颜色设置为红色。

     

Worksheets("Sheet1").Range("A1").Interior.ColorIndex = 3

那么,你能看到CExcelRange对象是否暴露了这个?