欢迎来到天天文库
浏览记录
ID:47474464
大小:60.42 KB
页数:9页
时间:2020-01-11
《利用QT生成Word文档》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、前段时间因一个项目的需要,需要用Qt生成Word报告,网上查阅并借鉴了相关资料终于解决了基本的问题。本文档中主要是基本数据的填充、数据表格和图片几种类型,所以是用word模板(.dot)和书签进行操作。(网上看有种方法是利用宏来进行操作,表示不是很懂,哈哈)。一、主要方法1、根据报告要求,设计word模板,定义好需要插入数据的标签,调好其他固定内容的格式。(以保证数据插入后文档内容排列有序)2、编写word操作接口类,主要包括:打开、关闭、保存、插入文本、插入图片、插入表格、相关格式调整函数3、编写生成报告界面类,调
2、用接口函数生成word文档。二、接口函数WordEngine.h文件[cpp] viewplain copy1.#ifndef WORDENGINE_H 2.#define WORDENGINE_H 3.#include 4.#include 5.#include 6.class WordEngine : public QObject 7.{ 8. Q_OBJECT 9.public: 10. WordEngine(); 1
3、1. ~WordEngine(); 12. 13. /// 打开Word文件,如果sFile路径为空或错误,则打开新的Word文档 14. bool Open(QString sFile, bool bVisible = true); 15. 16. void save(QString sSavePath); 17. 18. void close(bool bSave = true); 19. 20. bool replaceText(QString sLabel
4、,QString sText); 1. bool replacePic(QString sLabel,QString sFile); 2. //插入一个几行几列表格 3. QAxObject *insertTable(QString sLabel,int row,int column); 4. //插入一个几行几列表格 并设置表头 5. QAxObject *insertTable(QString sLabel,int row,int column,QStringList he
5、adList); 6. //设置列宽 7. void setColumnWidth(QAxObject *table,int column, int width); 8. void SetTableCellString(QAxObject *table, int row,int column,QString text); 9. 10.private: 11. 12. QAxObject *m_pWord; //指向整个Word应用程序 13. QAxObject
6、 *m_pWorkDocuments; //指向文档集,Word有很多文档 14. QAxObject *m_pWorkDocument; //指向m_sFile对应的文档,就是要操作的文档 15. 16. QString m_sFile; 17. bool m_bIsOpen; 18. bool m_bNewFile; 19.}; 20. 21.#endif // WORDENGINE_H WordEngine.cpp文件[cpp] viewplain copy1.#
7、include "WordEngine.h" 2.#include "qt_windows.h" 3.WordEngine::WordEngine() 4.{ 5. m_pWord = NULL; 6. m_pWorkDocuments = NULL; 7. m_pWorkDocument = NULL; 8. 9. m_bIsOpen = false; 10. m_bNewFile = false; 11. 12. HRESULT result = OleI
8、nitialize(0); 13. 14. if (result != S_OK && result != S_FALSE) 15. { 1. qDebug()<
此文档下载收益归作者所有