weixin_44290011
2020-04-22 11:53 阅读 705

MFC操作Excel时用_Workbook的SaveAs保存时一直抛出异常-类Workbook的SaveAs方法无效

1、问题

我在使用MFC操作Excel表格时使用 Workbook 类的SaveAs函数保存,这时一直抛出异常,捕获后发现提示类Workbook的SaveAs方法无效。

2、代码

    if (S_OK != CoInitializeEx(NULL, COINIT_MULTITHREADED))
    {
        return FALSE;
    }

    //创建Excel服务
    if (m_hApplication.CreateDispatch(("Excel.Application")) 
    == FALSE)
    {
        //AfxMessageBox("创建Excel服务失败");
        return false;
    }
    m_hApplication.SetVisible(FALSE);

    COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, 
    VT_ERROR);
    //获取工作薄集合
    m_hWorkbooks = m_hApplication.GetWorkbooks();
    //添加一个工作薄
    m_hWorkBook = m_hWorkbooks.Add(covOptional);
    //获取工作表集合
    m_hWorkSheets = m_hWorkBook.GetSheets();
    //获取第一个工作表
    m_hWorkSheet = m_hWorkSheets.GetItem(COleVariant((short)1));
    //选择工作表中A1:A1单元格区域
    m_hRange = m_hWorkSheet.GetRange(COleVariant("A1"), 
    COleVariant("A1"));
    //设置A1="HELLO EXCEL"
    m_hRange.SetValue2(COleVariant("HELLO EXCEL!")); 

    COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, 
    VT_ERROR);

    try {
        m_hWorkBook.SaveAs(COleVariant(spath),
            VOptional,      
            VOptional, 
            VOptional, 
            VOptional, 
            VOptional,
                (long)1,          
            VOptional,  
            VOptional, 
            VOptional, 
            VOptional,
            VOptional);
    }
    catch (COleDispatchException *pe)
    {
        CString cStr;

        if (!pe->m_strSource.IsEmpty())
            cStr = pe->m_strSource + _T(" - ");
        if (!pe->m_strDescription.IsEmpty())
            cStr += pe->m_strDescription;
        else
            cStr += _T("unknown error");

        pe->m_wCode;


        AfxMessageBox(cStr, MB_OK,
            (pe->m_strHelpFile.IsEmpty()) ? 0 : pe->m_dwHelpContext);

        pe->Delete();
    }

上述传入的目录是 :C:\Store\FileOutput\test20200323_24d50ca183664d039fc050ea072e785e\test20200323\2020年4月17\Data_2020-4-20_13-40-2.xlsx

3、其他

图片说明

在网上百度了一下,大多数是说文件路径问题,但是我确定我的文件路径没有问题,路径存在且有权限。

希望大佬帮忙看下!!!谢谢!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2020-04-22 13:28

    计算机安装excel了么?安装的是完整版么?如果你的vc++是32bit的,excel是不是也是32bit的。

    点赞 评论 复制链接分享

相关推荐