2009-01-18 31 views
0

没有复制:使用COM编程的细胞从Excel中使用VC++

  • MFC
  • ATL

,与纯C++,采取步骤迄今:

//steps above omitted 

_ApplicationPtr application(__uuidof(Excel::Application)); 

//omitted 

const BSTR wcharFileName = SysAllocString(L"..."); 

application->Workbooks->Open(wcharFileName); 

application->put_Visible(10, true); 

问:

  • 如何再复制一个细胞,例如A4,B4和C4,到一个数组?

回答

0

我前面张贴

“对于Excel - COM使用C++

http://shaktisaran.tech.officelive.com/ExcelCOM.aspx

它也有Windows程序设计教程”。

我删除了那篇文章,因为它无法轻松帮助。

我提供涉及例如在的网站的详细信息,

在ExcelProcessor.cpp

ReadRange函数读取范围Excel单元格的,但你需要读取数据的单元格。

ShowAddedCells函数写入Excel单元格,您可以在下面使用它。

在ShowAddedCells功能,

//Comment the following 
/* 
DISPID dispidPUT = DISPID_PROPERTYPUT; 

DISPPARAMS dparams = {vDblVal, &dispidPUT, 1, 1}; 

EXCEPINFO excepinfo; 

hr = pXlCell->Invoke(dispID, 
    IID_NULL, 
    LOCALE_SYSTEM_DEFAULT, 
    DISPATCH_PROPERTYPUT, 
    &dparams, 
    NULL, 
    &excepinfo, 
    NULL); 
*/ 

//Add the following 
DISPPARAMS dparams = {NULL, NULL, 0, 0}; 

EXCEPINFO excepinfo; 

VARIANT vResult; 
VariantInit(&vResult); 

hr = pXlCell->Invoke(dispID, 
    IID_NULL, 
    LOCALE_SYSTEM_DEFAULT, 
    DISPATCH_PROPERTYGET, 
    &dparams, 
    &vResult, 
    &excepinfo, 
    NULL); 

//You get the cell value in vResult 

所以你创建一个ReadCell功能像ShowAddedCells功能。