Qt:如何生成word报表

您所在的位置:网站首页 怎么在电脑上制作报表表格文件 Qt:如何生成word报表

Qt:如何生成word报表

2024-07-05 04:24| 来源: 网络整理| 查看: 265

在工作学习中,有时会需要将采集的数据生成word报表的形式,如设备可靠性检测报告,检定报告等。

本文将主要陈述如何利用Qt生成word报表。

除去必要的代码,生成word报表还需要开发人员自己创建一个word模板,关于模板的样式,根据工程需要而定,只需要将文本需要替换的地方插入书签即可,关于word模板的设置后面会进行陈述。

UI界面展示

说明:

前界面的①实验设备②检测温度③鉴定依据均需要后期人员输入右侧表格中的数值,是程序预设好的,模拟实际的数据采集(使用QTableWidget创建)

 

程序说明

TableWidget部分(右侧表格创建过程)

void Widget::table() { tablenet = new QTableWidget(this);//指定父对象 tablenet->move(400,20);//设置表格在前UI中的位置 tablenet->setRowCount(5);//行数 tablenet->setColumnCount(7);//列数 tablenet->resize(740,200);//表格的尺寸 QStringList horheader;//设置表头 horheaderquerySubObject("Range")->setProperty("Text",sText);//进行替换操作 /********修改一个位置的内容*********/ QString tLabel="温度";//此处必须为文档中被标记为书签的内容,下面语句的意思就是确定书签的位置: qDebug()dynamicCall("Select(void)");//选中要选中的区域 tBookmarks->querySubObject("Range")->setProperty("Text",tText);//进行替换操作 \ /********修改一个位置的内容*********/ QString mLabelt="方法";//此处必须为文档中被标记为书签的内容,下面语句的意思就是确定书签的位置: QAxObject *mBookmarks = workbook->querySubObject("Bookmarks(QString)",mLabelt);//找到活跃区域内的书签querySubObject //就是把书签内容直接给你替换了 QString mText=ui->method->toPlainText();//此处为替换内容 mBookmarks->dynamicCall("Select(void)");//选中要选中的区域 mBookmarks->querySubObject("Range")->setProperty("Text",mText);//进行替换操作*/ qDebug()setProperty("Text",sheettext);//进行替换操作 } } QString sheethead = "序号"; for(int j=1;jquerySubObject("Bookmarks(QString)",sheetheadnumber); QString sheettexthead=tablenet->item(j-1,0)->text();//此处为替换内容 sheethead->dynamicCall("Select(void)"); //选中要选中的区域 sheethead->querySubObject("Range")->setProperty("Text",sheettexthead);//进行替换操作 } //表头等内容都是设置好的,直接替换就完事儿了 /*****保存*******/ QString pathsave = QFileDialog::getSaveFileName(this,"Save","../","word(*doc)"); if(pathsave.isEmpty()==true) { return; } workbook->dynamicCall("SaveAs(const QString&))",QDir::toNativeSeparators(pathsave)); //words->setProperty("DisplayAlerts", true);//含有保存的功能,但是无法获得保存的路径,不容易进行下一步操作 workbook->dynamicCall("Close(bool)", true); words->dynamicCall("Quit()"); delete workbook; delete words; file.close(); /*if(QMessageBox::question(this,"完成","文件已经导出,是否需要打开",QMessageBox::Yes|QMessageBox::No)==QMessageBox::Yes) { QDesktopServices::openUrl(QUrl("file:///"+QDir::toNativeSeparators(pathsave))); //qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3