自己写的代码如下:
LPDISPATCH lpDis = NULL;
COleVariant covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),
covEnd; m_Books.AttachDispatch(m_ExcelApp.GetWorkbooks(), true);
lpDis = m_Books.Add(_variant_t(FileName));
m_Book.AttachDispatch(lpDis);
m_sheets.AttachDispatch(m_Book.GetWorksheets(), true); lpDis = m_sheets.Add(covOptional, covOptional, covOptional, covOptional);
m_sheet.AttachDispatch(lpDis);
m_sheet.SetName(strSheetName);
m_Book.Save();
加是能加成功,但不会在具体的位置加。
LPDISPATCH lpDis = NULL;
COleVariant covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),
covEnd; m_Books.AttachDispatch(m_ExcelApp.GetWorkbooks(), true);
lpDis = m_Books.Add(_variant_t(FileName));
m_Book.AttachDispatch(lpDis);
m_sheets.AttachDispatch(m_Book.GetWorksheets(), true); lpDis = m_sheets.Add(covOptional, covOptional, covOptional, covOptional);
m_sheet.AttachDispatch(lpDis);
m_sheet.SetName(strSheetName);
m_Book.Save();
加是能加成功,但不会在具体的位置加。
http://baby118.blog.163.com/blog/static/7279373820108711324768/
我测试过
可行
试了一下无效。
但有启发。
改成了这样就可以了 如下:
//示例中的代码
//sheets.Add(-variant_t(sheets.GetItem(COleVariant((short)2))), -variant_t(sheets.GetItem(COleVariant((short)3))),-variant_t((long)1),vtMissing);
//错误的地方在before设置成了2,after设置成了3,2之前3之后,显示冲突了,但我改成3之前2之后,仍然不行。于是改成了这样。
m_sheets.Add(covOptional, //相当于vtMissing
_variant_t(m_sheets.GetItem(COleVariant(m_sheets.GetCount()))),
_variant_t((long)1),
covOptional);