QT实现Word读写
在windows环境下,我们可以通过ActiveQt实现Office自动化,相当于VB的VBA功能。
实现的环境是MinGW+QT4.8.5(好像4.7以上才支持QAx)
在以下这个网址可以看到所有的OFFICE方法:
http://msdn.microsoft.com/en-us/library/aa272160%28v=office.11%29.aspx
以下是一个实例:
#include <QtGui/QApplication>
#include <QAxWidget>
#include <QAxObject>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//隐式的打开一个word应用程序
QAxWidget word("Word.Application");
word.setProperty("Visible", false);
//获取所有工作文档
QAxObject * documents = word.querySubObject("Documents");
//创建一个word文档
documents->dynamicCall("Add (void)");
//获取当前激活的文档
QAxObject * document = word.querySubObject("ActiveDocument");
//写入文件内容
QAxObject *selection = word.querySubObject("Selection");
selection->dynamicCall("TypeText(const QString&)","hello world");
//设置保存
QVariant newFileName("C:/test.doc"); //存放位置和名称
QVariant fileFormat(1); //文件格式
QVariant LockComments(false);
QVariant Password("123456"); //设置打开密码
QVariant recent(true);
QVariant writePassword("");
QVariant ReadOnlyRecommended(false);
document->querySubObject("SaveAs(const QVariant&, const QVariant&,const QVariant&, const QVariant&, const QVariant&, const QVariant&,const QVariant&)", newFileName, fileFormat, LockComments, Password, recent, writePassword, ReadOnlyRecommended);
//关闭文档
document->dynamicCall("Close (boolean)", true);
//退出
word.dynamicCall("Quit (void)");
return 0;
}
注意在.pro文件中需要添加语句:CONFIG += qaxcontainer
- 上一篇: 【MySQL】使用JDBC时,无法连接远程MySQL数据库
- 下一篇: Web性能优化方法