如何通过Qt 创建一个excel文件

如何通过Qt 创建一个excel文件,第1张

方法/步骤

首先,我们打开前文所设置的工程项目。

然后,我们在界面设计窗口,加入一个label用于显示,要保存的目录。注意设置下相应的界面布局。

然后,我们在mainwindow.h类中创建一个newExcel的函数,用于实现新建excel的功能。

在对应的cpp文件中,我们要实现newExcel函数功能,首先,按前文的步骤,将application,workbook,worksheet进行赋值并设置。

其中,pApplication->setControl("Excel.Application")用于连接excel控件。pWorkBooks = pApplication->querySubObject("Workbooks")获取workbooks指针。

之后,我们需要用QFile先判断下是否已经存在同名文件,如果没有,我们通过 *** 作excel组件进行创建。file.exist()是判断文件是否存在。如果不存在,我们新建一个excel,然后获取活动的workbook。然后通过dynamicCall调用SaveAs函数进行保存。

然后在构造函数中调用newExcel,我们可以创建一个名字为fileName的excel文件了。

程序运行以后,会d出保存文件的对话框,在其中选择要保存的excel文件名,点击保存之后,会在你选择的路径中创建一个excel文件。

但是,当我们准备删除此文件的时候,会无法完成,这是因为,我们程序中使用pApplication *** 作excel的函数并没有关闭。

9

我们可以在源文件中添加以下代码关闭调用。这样就可以删除了。

/*d出是否保存文件对话框*/

bool MainWindow::do_file_SaveOrNot()

{

   if(ui->textEdit->document()->isModified()) //如果文件被更改过,d出保存对话框

    {

        QMessageBox box

        box.setWindowTitle("警告")

       box.setIcon(QMessageBox::Warning)

        box.setText(curFile + " 尚未保存,是否保存?")

       box.setStandardButtons(QMessageBox::Yes | QMessageBox::No |QMessageBox::Cancel)

        int nRet = box.exec() 

        if(nRet ==QMessageBox::Yes) //如果选择保存文件,则执行保存 *** 作

        {

            do_file_Save()

            return true

        }

        else if(nRet ==QMessageBox::No) //如果选择不保存,则抛弃原内容

            return true

        else

            return false

    }

}

1、其他软件进程的干涉(如HOOK) 已知有道词典的划词取词功能(可能是用了信息钩子)会导致QT无响应的BUG。 还有可能是上层屏幕显示的软件导致QT无响应。 请尽量关闭其他软件进程,再重新进入QT排除原因。如果实锤了,那当然就不能同时使用了!

2.

其他可能的解决办法 删除~\AppData\Roaming\QtProject文件夹,然后再打开Qt Creator即可。 该文件夹经本noob的试验是用于存储QT个人设置以及历史项目目录等文件的,大可删除,QT会在重新打开时自动生成,只不过你相关的设置就会恢复默认值了!!!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12002355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存