解决方案 »

  1.   

    或者我把参数设置为xlLocalSessionChanges,但是编译的时候一直提示xlLocalSessionChanges未声明的标识符
      

  2.   

    应该可以用try  catch来捕获异常
    XlSaveConflictResolution::xlLocalSessionChanges,或者是Excel::XlSaveConflictResolution::xlLocalSessionChanges
      

  3.   

    我不知道是不是我缺了声明东西,我用的是excel9.cpp
    现在的程序里,Excel,XlSaveConflictResolution,xlLocalSessionChanges编译的时候都说是未定义
      

  4.   

    要是加上
    #import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\mso.dll" rename("RGB", "MSRGB")#import "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" exclude("IFont", "IPicture") \
    rename("RGB", "ignorethis"), rename("DialogBox", "ignorethis"), rename("VBE", "JOEVBE"), \
    rename("ReplaceText", "JOEReplaceText"), rename("CopyFile","JOECopyFile"), \
    rename("FindText", "JOEFindText"), rename("NoPrompt", "JOENoPrompt")using namespace Office;
    using namespace Excel ;
    编译的时候,excel里会有一大堆的错误
      

  5.   

    逻辑上说得通,点是,调用saveAs方法 点否,saveAs不执行,saveAs方法无效。还是检查下代码逻辑,点否时不要调用saveAs,直接跳过
      

  6.   

    楼上你说的应该是对的,我调试的时候发现,点否,然后就直接进入到“导出EXCEL”这个类的析构函数
    析构函数一出来,就进入了AfxCallWndProc里面,在try  catch里就报错“类_Workbook的Saveas方法无效”
    可是,这是为什么呀?不明白
      

  7.   

    我不知道是不是我缺了声明东西,我用的是excel9.cpp
    现在的程序里,Excel,XlSaveConflictResolution,xlLocalSessionChanges编译的时候都说是未定义
    那你就自己定义一个吧
    enum XlSaveConflictResolution
    {
    xlLocalSessionChanges,
    xlOtherSessionChanges,
    xlUserResolution
    }#import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE11\\MSO.DLL" rename( "RGB", "MSORGB" )
    using namespace Office;
    #pragma warning(disable : 4192)
    #import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB"
    #import "c:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE" \
     rename( "DialogBox", "ExcelDialogBox" ) \
     rename( "RGB", "ExcelRGB" ) \
     rename( "CopyFile", "ExcelCopyFile" ) \
    rename( "ReplaceText", "ExcelReplaceText" )
    using namespace Excel ;
      

  8.   

    这样做的话会提示“_Workbook::SaveAs”: 不能将参数 3 从“int”转换为“const VARIANT &”
    然后把程序改成
    VARIANT a;
    a.vt=VT_I4;
    a.iVal=1;
    book.SaveAs(COleVariant(COleVariant(_T("D:\\保存.xls")),covOptional,covOptional,
                                    covOptional,covOptional,covOptional,0,
                                    a,covOptional,covOptional,covOptional);
    但是没有效果,还是会提示对话框,说是否替代,点否依然报错
      

  9.   

    你给我的那串代码可以用
    但是
    无法从“CExport::ExitExcel::XlSaveConflictResolution”转换为“const VARIANT”
      

  10.   

    保存前自己判断文件是否存在通过msgbox进行提示,如果不覆盖就不执行saveas  如果覆盖 那就直接删除掉以前的文件(或者 设置_Application对象的DisplayAlerts属性为False,不显示提示框)
      

  11.   

    对了,你太厉害了,程序可以实现了
    不过加上DisplayAlerts之后
    我生成6个excel,当打开某一个excel的时候,会打开一堆的BOOK1,BOOK2,BOOK3,关掉这些BOOK的时候,还提示你是否保存?怎么会又冒出这么一个问题