I_P free 2019-01-07 17:31 采纳率: 0%
浏览 1495

关于QT保存EXCEL文件的问题

我新开了线程新建和ECEL并写入和保存, 在主函数里有一个按钮,按钮按一次就会进入EXCEL线程,线程里完成了新建EXCEL工作簿,写入以及保存的工作,可是每一次线程结束后保存的文件都会覆盖上一次保存的文件,怎么解决?
void QExcelThread::run()
{
CoInitializeEx(NULL, COINIT_MULTITHREADED);
excel = new QAxObject(this);
excel->setControl("Excel.Application");
excel->dynamicCall("SetVisible (bool Visible)","false")
excel->setProperty("DisplayAlerts", false);//

workBooks = excel->querySubObject("Workbooks");// 获取工作簿集合
workBooks->dynamicCall("Add"); // 新建一个工作簿
workBook = excel->querySubObject("ActiveWorkBook"); // 获取当前工作簿
sheets = workBook->querySubObject("WorkSheets");

QExcelThread::selectSheet("Sheet1");
while(!bStop)
 QExcelThread::setCellString(cnt+1, 1, "add");

workBook->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparatr(savePath+ timestr + ".xlsx"h "));
QExcelThread::close();
    }

    #已解决,把时间放入到线程里去,每次都更新时间,就不会覆盖了
    void QExcelThread::run()

{
QDateTime datetime;
QTime current_time;
QString timestr=datetime.currentDateTime().toString("yyyyMMddHHmmss");//文件保存名//日期和时间
QString timestr1;

  • 写回答

1条回答 默认 最新

  • bostonAlen 2019-01-07 19:36
    关注

    就是说你每次进线程new了,QT是自动析构。那你可以考虑下每次进线程新建的工作薄保存到一个能随时访问的地方。希望有帮助。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型