关于使用QAxObject类操作Excel中出现QAxBase : Error calling IDispatch member SaveAs:Exception thrown by server解决

前段时间在使用QAxObject对数据库文件导出为Excel中遇到了QAxBase : Error calling IDispatch member SaveAs:Exception thrown by server这样导出错误的问题,现将此种类型的错误归纳如下。

1.出现问题的缘由

由于我已经创建了一个数据库导出为Excel文件操作的类。但是在调用过程中,发现出现了如下图所示的问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这三种情况,虽然注明的描述方式不同,但是出现的问题都是一样的,都是alling IDispatch member SaveAs:Exception thrown by server。

2.解决方法

在各种尝试中发现,出现错误的原因是因为我对这个类的调用过程中,对文件保存路径出现错误。正确的保存方式应当使用windows中的绝对路径保存

1)界面总览

在这里插入图片描述

图中为tableview从连接好的mysql文件读入的数据文件,点击“导出所有”按钮,就会执行导出操作
2)保存在Excel默认保存路径
exportexcel.newExcel("./text.xls");          //将保存在调用的Excel功能的默认保存文件夹

在这里插入图片描述

效果如下

在这里插入图片描述

3)保存在自定义路径
exportexcel.newExcel("D:\\aa.xls");             //保存为自定义D盘,名字为aa.xls("D:\\aa.xls")

在这里插入图片描述

图中不同的就是保存路径的不同

发布了28 篇原创文章 · 获赞 3 · 访问量 5389
展开阅读全文

在VS2012使用QAxObject创建Excel文档出错

03-25

void uiLabelPrepare::dealfile(const char* filename) { QAxObject* workbooks = nullptr; QAxObject* workbook = nullptr; QAxObject* excel = new QAxObject("Excel application"); if (!excel) { uiMSG().warning("cannot create excel object"); return; } } 代码如上,添加QAxObject* excel = new QAxObject("Excel application");这一行代码后,程序运行错误如下(我的工程是用vs2010 V100工具集,qt4.8.4版本): 1>qaxcontainerd.lib(qaxobject.obj) : error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1700”不匹配值“1600”(InvalidFilter.obj 中) 1>qaxcontainerd.lib(qaxbase.obj) : error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1700”不匹配值“1600”(InvalidFilter.obj 中) 1>qaxcontainerd.lib(qaxtypes.obj) : error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1700”不匹配值“1600”(InvalidFilter.obj 中) 1> 正在创建库 D:/SeisMining4.6/4.6.0/projects/bin/win64/Debug/uiODMain.lib 和对象 D:/SeisMining4.6/4.6.0/projects/bin/win64/Debug/uiODMain.exp 1>qaxcontainerd.lib(qaxobject.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ),该符号在函数 "char * __cdecl std::_Allocate<char>(unsigned __int64,char *)" (??$_Allocate@D@std@@YAPEAD_KPEAD@Z) 中被引用 1>qaxcontainerd.lib(qaxbase.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) 1>qaxcontainerd.lib(qaxtypes.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) 1>qaxcontainerd.lib(qaxobject.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPEBDH@Z),该符号在函数 "public: virtual class std::error_condition __cdecl std::_System_error_category::default_error_condition(int)const " (?default_error_condition@_System_error_category@std@@UEBA?AVerror_condition@2@H@Z) 中被引用 1>qaxcontainerd.lib(qaxbase.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPEBDH@Z) 1>qaxcontainerd.lib(qaxtypes.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPEBDH@Z) 1>qaxcontainerd.lib(qaxobject.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPEBDH@Z),该符号在函数 "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z) 中被引用 1>qaxcontainerd.lib(qaxbase.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPEBDH@Z) 1>qaxcontainerd.lib(qaxtypes.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPEBDH@Z) 问答

vs2008编译报错如下,求助!

01-22

1>QAxContainerd.lib(qaxobject.obj) : warning LNK4217: 本地定义的符号 ?qt_metacall@QObject@@UAEHW4Call@QMetaObject@@HPAPAX@Z (public: virtual int __thiscall QObject::qt_metacall(enum QMetaObject::Call,int,void * *)) 在函数 "public: virtual int __thiscall QAxObject::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QAxObject@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 中导入 1>qmfcapp.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static void __cdecl QCoreApplication::sendPostedEvents(void)" (__imp_?sendPostedEvents@QCoreApplication@@SAXXZ),该符号在函数 "long __stdcall QtFilterProc(int,unsigned int,long)" (?QtFilterProc@@YGJHIJ@Z) 中被引用 1>qwinwidget.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QChildEvent::removed(void)const " (__imp_?removed@QChildEvent@@QBE_NXZ),该符号在函数 "protected: virtual void __thiscall QWinWidget::childEvent(class QChildEvent *)" (?childEvent@QWinWidget@@MAEXPAVQChildEvent@@@Z) 中被引用 1>ui.lib(QYMainWindow.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QString::fromStdWString(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (__imp_?fromStdWString@QString@@SA?AV1@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z),该符号在函数 "public: long __thiscall CQYMainWindow::Invoke(struct WebExternalObjectInvokeParam const &,class HtmlDialog *)" (?Invoke@CQYMainWindow@@QAEJABUWebExternalObjectInvokeParam@@PAVHtmlDialog@@@Z) 中被引用 1>libqyqtui.lib(HtmlDialog.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QString::fromStdWString(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (__imp_?fromStdWString@QString@@SA?AV1@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z) 1>QAxContainerd.lib(qaxobject.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(struct _GUID const &)" (__imp_??0QUuid@@QAE@ABU_GUID@@@Z) 1>libqyqtui.lib(HtmlDialog.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(struct _GUID const &)" (__imp_??0QUuid@@QAE@ABU_GUID@@@Z),该符号在函数 "public: __thiscall HtmlDialog::HtmlDialog(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0HtmlDialog@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(struct _GUID const &)" (__imp_??0QUuid@@QAE@ABU_GUID@@@Z) 1>QAxContainerd.lib(qaxwidget.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(struct _GUID const &)" (__imp_??0QUuid@@QAE@ABU_GUID@@@Z) 1>QAxContainerd.lib(qaxtypes.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(struct _GUID const &)" (__imp_??0QUuid@@QAE@ABU_GUID@@@Z) 1>libqyqtui.lib(HtmlDialog.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __thiscall QString::toStdWString(void)const " (__imp_?toStdWString@QString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ),该符号在函数 "private: void __thiscall HtmlDialog::OnWebNavigateComplete(class QString const &)" (?OnWebNavigateComplete@HtmlDialog@@AAEXABVQString@@@Z) 中被引用 1>libqyqtui.lib(QyQtUIDialog.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QPainter::drawPixmap(int,int,int,int,class QPixmap const &,int,int,int,int)" (__imp_?drawPixmap@QPainter@@QAEXHHHHABVQPixmap@@HHHH@Z),该符号在函数 "void __cdecl DrawNinePatch(class QPainter &,class QPixmap const &,class QSize const &,int)" (?DrawNinePatch@@YAXAAVQPainter@@ABVQPixmap@@ABVQSize@@H@Z) 中被引用 1>libqyqtui.lib(NcFramelessHelper.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QRubberBand::move(class QPoint const &)" (__imp_?move@QRubberBand@@QAEXABVQPoint@@@Z),该符号在函数 "private: void __thiscall NcWidgetData::moveWidget(class QPoint const &)" (?moveWidget@NcWidgetData@@AAEXABVQPoint@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QString::fromWCharArray(unsigned short const *,int)" (__imp_?fromWCharArray@QString@@SA?AV1@PBGH@Z),该符号在函数 "public: class QByteArray __thiscall QAxEventSink::findProperty(long)" (?findProperty@QAxEventSink@@QAE?AVQByteArray@@J@Z) 中被引用 1>QAxContainerd.lib(qaxwidget.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QString::fromWCharArray(unsigned short const *,int)" (__imp_?fromWCharArray@QString@@SA?AV1@PBGH@Z) 1>QAxContainerd.lib(qaxtypes.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QString::fromWCharArray(unsigned short const *,int)" (__imp_?fromWCharArray@QString@@SA?AV1@PBGH@Z) 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class QString __thiscall QUuid::toString(void)const " (__imp_?toString@QUuid@@QBE?AVQString@@XZ),该符号在函数 "public: bool __thiscall QAxBase::setControl(class QString const &)" (?setControl@QAxBase@@QAE_NABVQString@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QUuid::isNull(void)const " (__imp_?isNull@QUuid@@QBE_NXZ),该符号在函数 "public: bool __thiscall QAxBase::setControl(class QString const &)" (?setControl@QAxBase@@QAE_NABVQString@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(class QString const &)" (__imp_??0QUuid@@QAE@ABVQString@@@Z),该符号在函数 "public: bool __thiscall QAxBase::setControl(class QString const &)" (?setControl@QAxBase@@QAE_NABVQString@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::operator struct _GUID(void)const " (__imp_??BQUuid@@QBE?AU_GUID@@XZ),该符号在函数 "protected: virtual bool __thiscall QAxBase::initialize(struct IUnknown * *)" (?initialize@QAxBase@@MAE_NPAPAUIUnknown@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::QUuid(void)" (__imp_??0QUuid@@QAE@XZ),该符号在函数 "public: __thiscall MetaObjectGenerator::MetaObjectGenerator(class QAxBase *,class QAxBasePrivate *)" (??0MetaObjectGenerator@@QAE@PAVQAxBase@@PAVQAxBasePrivate@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: struct QUuid & __thiscall QUuid::operator=(struct _GUID const &)" (__imp_??4QUuid@@QAEAAU0@ABU_GUID@@@Z),该符号在函数 "private: void __thiscall MetaObjectGenerator::init(void)" (?init@MetaObjectGenerator@@AAEXXZ) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QMetaProperty::isValid(void)const " (__imp_?isValid@QMetaProperty@@QBE_NXZ),该符号在函数 "private: int __thiscall QAxBase::internalProperty(enum QMetaObject::Call,int,void * *)" (?internalProperty@QAxBase@@AAEHW4Call@QMetaObject@@HPAPAX@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QUuid::operator==(struct QUuid const &)const " (__imp_??8QUuid@@QBE_NABU0@@Z),该符号在函数 "public: class QBool __thiscall QList<struct QUuid>::contains(struct QUuid const &)const " (?contains@?$QList@UQUuid@@@@QBE?AVQBool@@ABUQUuid@@@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUuid::operator class QString(void)const " (__imp_??BQUuid@@QBE?AVQString@@XZ),该符号在函数 "private: struct QHashNode<struct QUuid,class QMap<class QByteArray,class QList<struct QPair<class QByteArray,int> > > > * * __thiscall QHash<struct QUuid,class QMap<class QByteArray,class QList<struct QPair<class QByteArray,int> > > >::findNode(struct QUuid const &,unsigned int *)const " (?findNode@?$QHash@UQUuid@@V?$QMap@VQByteArray@@V?$QList@U?$QPair@VQByteArray@@H@@@@@@@@ABEPAPAU?$QHashNode@UQUuid@@V?$QMap@VQByteArray@@V?$QList@U?$QPair@VQByteArray@@H@@@@@@@@ABUQUuid@@PAI@Z) 中被引用 1>QAxContainerd.lib(qaxbase.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QUuid::operator<(struct QUuid const &)const " (__imp_??MQUuid@@QBE_NABU0@@Z),该符号在函数 "bool __cdecl qMapLessThanKey<struct QUuid>(struct QUuid const &,struct QUuid const &)" (??$qMapLessThanKey@UQUuid@@@@YA_NABUQUuid@@0@Z) 中被引用 1>C:\CC-trunk\vsproject\..\bin\CC.exe : fatal error LNK1120: 18 个无法解析的外部命令 1>生成日志保存在“file://c:\CC-trunk\vsproject\CC\Debug\BuildLog.htm” 1>CC - 26 个错误,1146 个警告 ========== 生成: 成功 0 个,失败 1 个,最新 54 个,跳过 0 个 ========== 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览