唯有爱与梦想不可辜负 2020-04-22 11:53 采纳率: 50%
浏览 1162

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条回答 默认 最新

  • threenewbee 2020-04-22 13:28
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog