• 19117阅读
  • 9回复

[提问]一个程序异常终止问题 [复制链接]

上一主题 下一主题
离线wangpeihui
 

只看楼主 倒序阅读 楼主  发表于: 2012-05-13

[size=; font-size:10pt,10pt][font='Courier']在网上下载了一个QExcel类来操作excel表,编译程序出现一些调试信息,程序在运行过程中没有问题,就是在关闭执行程序 时[size=; font-size:10pt,10pt][font='Courier'],提示可执行程序已停止工作 这是什么问题呢,,请大侠赐教....

QAxBase: Error calling IDispatch member Name: Exception thrown by server

[size=; font-size:10pt,10pt][font='Courier']             Code       : 1004
[size=; font-size:10pt,10pt][font='Courier']             Source     : Microsoft Excel
[size=; font-size:10pt,10pt][font='Courier']             Description: ?????????????????????????????? Visual Basic ?????????
[size=; font-size:10pt,10pt][font='Courier']             Help       : xlmain11.chm
[size=; font-size:10pt,10pt][font='Courier']         Connect to the exception(int,QString,QString,QString) signal to catch this exception
离线roywillow

只看该作者 1楼 发表于: 2012-05-13
只是单纯看这个输出好像看不出啥呢……
最好给个代码?
另外重新排版一下吧……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线uidab

只看该作者 2楼 发表于: 2012-05-13
回 楼主(wangpeihui) 的帖子
可能还是操作excel的代码问题。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线wangpeihui

只看该作者 3楼 发表于: 2012-05-13

调试信息打印如下
QAxBase: Error calling IDispatch member Name: Exception thrown by server
Code : 1004
Source : Microsoft Excel
Description: ?????????????????????????????? Visual Basic ?????????
Help : xlmain11.chm
Connect to the exception(int,QString,QString,QString) signal to catch this exception
程序异常终止。
代码如下:
    QApplication a(argc, argv);    QExcel j("D:/Project/QExcel 1.0.3 - thejie.org/Sample/source.xls");    //qDebug()<<"SheetCount"<<j.getSheetsCount();    //j.selectSheet(1);    j.insertSheet("wph");    j.save();    j.close();    // 设置字符编码    QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("System"));    QTextCodec::setCodecForLocale(QTextCodec::codecForName("System"));    if(!connectDB())    {        return -1;    }    widget m;    loginDialog login;    login.setWindowFlags(Qt::WindowMinimizeButtonHint);    if(login.exec()==QDialog::Accepted)    {        m.show();        return a.exec();    }else        return 0;当我去掉上面的操作EXCEL表的代码后就不会有错误调试信息打印,程序也能正常运行,加上后上述代码后,在关闭可执行程序后就会提示程序已停止工作,,,下面是我用的操作EXCEL表的类,操作EXCEL类 qexcel.h (3 K) 下载次数:8 操作EXCEL类 qexcel.cpp (9 K) 下载次数:6
离线wangpeihui

只看该作者 4楼 发表于: 2012-05-13

调试信息打印如下
QAxBase: Error calling IDispatch member Name: Exception thrown by server
Code : 1004
Source : Microsoft Excel
Description: ?????????????????????????????? Visual Basic ?????????
Help : xlmain11.chm
Connect to the exception(int,QString,QString,QString) signal to catch this exception
程序异常终止。
代码如下:
    QApplication a(argc, argv);    QExcel j("D:/Project/QExcel 1.0.3 - thejie.org/Sample/source.xls");    //qDebug()<<"SheetCount"<<j.getSheetsCount();    //j.selectSheet(1);    j.insertSheet("wph");    j.save();    j.close();    // 设置字符编码    QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("System"));    QTextCodec::setCodecForLocale(QTextCodec::codecForName("System"));    if(!connectDB())    {        return -1;    }    widget m;    loginDialog login;    login.setWindowFlags(Qt::WindowMinimizeButtonHint);    if(login.exec()==QDialog::Accepted)    {        m.show();        return a.exec();    }else        return 0;当我去掉上面的操作EXCEL表的代码后就不会有错误调试信息打印,程序也能正常运行,加上后上述代码后,在关闭可执行程序后就会提示程序已停止工作,,,下面是我用的操作EXCEL表的类,[attachment=8234][attachment=8233]
离线wangpeihui

只看该作者 5楼 发表于: 2012-05-13

调试信息打印如下
QAxBase: Error calling IDispatch member Name: Exception thrown by server
Code : 1004
Source : Microsoft Excel
Description: ?????????????????????????????? Visual Basic ?????????
Help : xlmain11.chm
Connect to the exception(int,QString,QString,QString) signal to catch this exception
程序异常终止。
代码如下:

    QApplication a(argc, argv);
   QExcel j("D:/Project/QExcel 1.0.3 - thejie.org/Sample/source.xls");
    //qDebug()<<"SheetCount"<<j.getSheetsCount();
    //j.selectSheet(1);
    j.insertSheet("wph");
    j.save();
    j.close();
    // 设置字符编码
    QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("System"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("System"));
    if(!connectDB())
    {
        return -1;
    }
    widget m;
    loginDialog login;
    login.setWindowFlags(Qt::WindowMinimizeButtonHint);
    if(login.exec()==QDialog::Accepted)
    {
        m.show();
        return a.exec();
    }else
        return 0;当我去掉上面的操作EXCEL表的代码后就不会有错误调试信息打印,程序也能正常运行,加上后上述代码后,在关闭可执行程序后就会提示程序已停止工作,,,下面是我用的操作EXCEL表的类,
操作EXCEL类 qexcel.cpp (9 K) 下载次数:12 操作EXCEL类 qexcel.h (3 K) 下载次数:6

离线roywillow

只看该作者 6楼 发表于: 2012-05-14
回 5楼(wangpeihui) 的帖子
你试试把那个路径用QDir::toNativeSeparator()转换一下试试?我记得之前操作Word时发现有些路径不用这个会出错
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wangpeihui

只看该作者 7楼 发表于: 2012-05-14
不行,,,还是出现同样的问题,,
离线yangxuehsd
只看该作者 8楼 发表于: 2012-05-31
QAxBase: Error calling IDispatch member Name: Exception thrown by server

你的sheet名字不合法吧  比如含有特别的符号之类的;

离线sdhgood

只看该作者 9楼 发表于: 2015-11-05
大家好,我最近也用了QExcel类来操作excel表,是在一个线程中定义的QExcel exportxlsx(F:/bbcc.xlsx);
但是到了构造函数里QExcel (),F:/bbcc.xlsx参数就变成别的字符了,一堆乱码,
如果在主线程中定义,没问题,还能过,但是在子线程中就出问题了
快速回复
限100 字节
 
上一个 下一个