自己写的代码如下:
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();
加是能加成功,但不会在具体的位置加。

解决方案 »

  1.   

    看看这个
    http://baby118.blog.163.com/blog/static/7279373820108711324768/
    我测试过
    可行
      

  2.   


    试了一下无效。
    但有启发。
    改成了这样就可以了 如下:
    //示例中的代码
    //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);