请教VC关于Excel编程的问题
我对于Excel中的某个区域(例如"A2")开始,将其右边开始N格填上各自不同数据,以及其下边开始M格填上各自不同的数据,M/N不定,请问vc如何实现?谢谢 问题点数:0、回复次数:6Top
1 楼a_cer(玩家)回复于 2004-08-04 17:24:23 得分 0
up
vc中怎么用vbaTop
2 楼arden1019(CSCUM)回复于 2004-08-04 20:16:09 得分 0
oleTop
3 楼arden1019(CSCUM)回复于 2004-08-05 13:23:50 得分 0
http://www.vckbase.com/document/listdoc.asp?sclsid=1713Top
4 楼8thdetective(bbllyy)回复于 2004-08-06 08:30:34 得分 0
最好具体说一下,每个单元格填数据用什么函数?Top
5 楼cnhome(小狐狸)回复于 2004-08-06 17:43:18 得分 0
Range的Cells就可以Top
6 楼quicklight(景雄)回复于 2004-08-28 10:37:11 得分 0
vc中可以使用COM调用VBA的对象和方法,
HRESULT hRet;
_Application ExcelApp;
CComVariant vTrue((short)TRUE),vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CComVariant vDocName(sourcePathName);
if(!ExcelApp.CreateDispatch(_T("Excel.Application")))
{
// AfxMessageBox("create dispatch error!");
return -10;
}
ExcelApp.SetVisible(FALSE);
ExcelApp.SetDisplayAlerts(FALSE);
_Worksheet MySheet;
_Workbook MyWorkbook;
Workbooks MyWorkbooks;
MyWorkbooks.AttachDispatch(ExcelApp.GetWorkbooks());
CString strSourcePathName(sourcePathName);
MyWorkbook.AttachDispatch(MyWorkbooks.Open(strSourcePathName,vFalse,vFalse,vOpt,
vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vFalse));
Worksheets MySheets;
MySheets.AttachDispatch(MyWorkbook.GetWorksheets());
CComVariant vIndex(long(1));
MySheet.AttachDispatch(MySheets.GetItem(vIndex));
Range MyRange;
Range MyRowRange,MyColRange;
MyRange.AttachDispatch(MySheet.GetUsedRange());
MyRowRange.AttachDispatch(MyRange.GetRows());
MyColRange.AttachDispatch(MyRange.GetRows());
long nRows=MyRowRange.GetCount();
long nCols=MyColRange.GetCount();
if(nRows>MAX_ROW_SHOW)
nRows=MAX_ROW_SHOW;
if(nCols>MAX_COL_SHOW)
nCols=MAX_COL_SHOW;
CString strText;
// CString strItemVal;
_variant_t vItemVal;
for(long i=1;i<=nRows;i++)
{
for(long j=1;j<=nCols;j++)
{
vItemVal=MyRange.GetItem(_variant_t(long(i)),_variant_t(long(j)));
BSTR bstrItem=vItemVal.operator _bstr_t();
CString strItemVal(bstrItem);
// AfxMessageBox(strItemVal);
strText=strText+strItemVal+_T("\t");
}
strText=strText+_T("\n");
// AfxMessageBox(strText);
}
以上代码中是取得所有CELL的内容,要设置其内容,只要把调用GetItem改为SetItem就行了Top




