简
在这篇帖子中我将详细讲述如何在Qt环境下使用已有Word模板文件创建新的文档,并对模板文档内容填充。目前,我只对替换文字和对表格进行操作进行了介绍,如何在文档插入图片未在本文中提及。
述
开发环境
本文中使用的开发环境是Qt5.10.0。由于本文中的实现方式是通过COM组件操作Word,需要在.pro文件中添加QT += axcontainer,在Qt4的版本中与Qt5是有点区别的,在Qt4中添加CONFIG += qaxcontainer。
从代码中看过程
多余的就不说了,具体过程看注释吧。
WordEngine.h
#ifndef WORDENGINE_H
#define WORDENGINE_H
#include <QObject>
#include <QAxObject>
#include <QAxWidget>
class WordEngine : public QObject
{
Q_OBJECT
public:
explicit WordEngine(QObject *parent = 0);
public slots:
bool open(const QString &file);//打开文档
void save(const QString &savePath);//保存并关闭文档
void replaceText(const QString &label,const QString &text);//替换文档中标签出的文字
void alterTableRowCount(const QString &tabel, const int rowCount);//在表个中添加新行
void fillTableCell(const QString &tabel,const QList<QStringList> &data);//填充表格内容
private:
QAxWidget *_word;//word主程序
QAxObject *_workDocument;//工作簿
bool _isOpen;//文档打开状态
QMap<QString,int> _tabelIndex;//文档中的表格索引,注意word中表格的索引值是从1开始的,这里根据不同的情况单独实现
};
#endif // WORDENGINE_H
Wo