项目中原来有使用QT的QAxObject使用OfficeExcel的组件导出Excel报告文件的功能,由于项目要求导出PDF功能比较急,如果使用其他样式需要重新组织格式等,花费较多时间,因此考虑将原来的Excel报告直接导出PDF,
1搜索QT导出PDF的资料,遇到几个WORD导出PDF,遇到ExportAsFixedFormat这个函数,按照网页上的参数试了一下不行,坑,可能是word导出到pdf跟Excel不一样,
2 经过仔细搜索,找到ExportAsFixedFormat(Excel)函数的参数说明,根据参数实现
-
- axCurWorkBook->querySubObject("ExportAsFixedFormat(QVariant, QVariant)",
- 0, pdfpath);
其中axCurWorkBook是最终导出成Excel的QAxObject对象,pdfpath是保存的PDF文件的路径
0是函数的指定的PDF格式.
函数具体参见:https://docs.microsoft.com/zh-cn/office/vba/api/excel.workbook.exportasfixedformat
PS:日期:2020-4-27
3 由于之前导出的PDF格式按照默认纸张导出 很多列都分开了,因此测试Excel的功能,发现可以设置内容为一页,然后再导出到Excel就可以了,方法是:
- //另存为pdf
- QAxObject* pagecfg = axResultSheet->querySubObject("PageSetup");
- //设置工作表 区域为1页
- pagecfg->setProperty("Zoom", false);
- pagecfg->setProperty("FitToPagesWide", 1);
- pagecfg->setProperty("FitToPagesTall", 1);
- delete pagecfg;
-
- axResultSheet->dynamicCall("ExportAsFixedFormat(QVariant, QVariant)",
- 0, pdfpath);
我是通过录制宏分析,然后在官网网址查看说明得到的.https://docs.microsoft.com/zh-cn/office/vba/api/excel.pagesetup.fittopageswide