你得问题解决了么,我帮你写了份程序,解决了你的问题,一下是相关程序,如果需要我可以给你整个工程
_Application
app;
Workbooks
books;
_Workbook
book;
Worksheets
sheets;
_Worksheet
sheet;
Range
range;
Range
rangeFrom;
Range
rangeTo;
CString cfgFilePath = GetDllPath( );
cfgFilePath += "\\1.xlsx";
LPDISPATCH lpDisp; //接口指针
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//初始化
if(!AfxOleInit())
{
return ;
}
// 创建EXCEL服务器(启动Excel)
COleException e ;
if (!app.CreateDispatch(_T("Excel.Application"), &e))
{
AfxMessageBox("无法创建Excel应用!");
e.ReportError();
return;
}
//打开第一个excel表,获取两个数
books=app.GetWorkbooks();
lpDisp = books.Open(cfgFilePath,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional
);
book.AttachDispatch( lpDisp );
sheets=book.GetSheets();
sheet = sheets.GetItem(COleVariant((short)1));
range = sheet.GetRange(COleVariant(_T("A1")),COleVariant(_T("A1")));
COleVariant rValue;
rValue=COleVariant(range.GetValue2());
rValue.ChangeType(VT_INT);
int iValue1 = rValue.intVal;
range = range.GetRange(COleVariant(_T("B1")),COleVariant(_T("B1")));
rValue=COleVariant(range.GetValue2());
rValue.ChangeType(VT_INT);
int iValue2 = rValue.intVal;
//打开第二个Excel表,写求和结果
CString cfgFilePath1 = GetDllPath( );
cfgFilePath1 += "\\2.xlsx";
lpDisp = books.Open(cfgFilePath1,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional
);
book.AttachDispatch( lpDisp );
sheets=book.GetSheets();
sheet = sheets.GetItem(COleVariant((short)1));
range = sheet.GetRange(COleVariant(_T("A1")),COleVariant(_T("A1")));
CString strTemp;
strTemp.Format("%d",iValue1+iValue2);
range.SetValue2(COleVariant(strTemp));
book.Save();
app.Quit();
app.ReleaseDispatch();
AfxMessageBox("结束");