Qt利用QAxObject操作word--主要添加页眉或页脚

QAxWidget *word=new QAxWidget("Word.Application", 0);
    word->setProperty("Visible", false);
    // 获取所有的工作文档
    QAxObject * documents = word->querySubObject("Documents");
    // 以文件template.doc为模版新建一个文档
    documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("C:/Users/Acharya/Desktop/test.docx"));
    // 获取当前激活的文档
    QAxObject *document=word->querySubObject("ActiveDocument");

    QAxObject *ActiveWindow = word->querySubObject("ActiveWindow");
    QAxObject *ActivePane = ActiveWindow->querySubObject("ActivePane");
    QAxObject* view = ActivePane->querySubObject("View");
    QString name = view->property("Type").toString();
    {
        QVariant tmp;
        tmp = 3;
        view->setProperty("Type", tmp);
        QString name1 = view->property("Type").toString();
        qDebug() << name1;
    }
    //  开启页眉编辑(页眉属性值:9,页脚属性值:10-- 具体属性值在VB宏中可以查看)
    {
        QVariant tmp;
        tmp = 9;
        view->setProperty("SeekView", tmp);
        QString name1 = view->property("SeekView").toString();
        qDebug() << name1;
    }
     QAxObject *selection = word->querySubObject("Selection");
     selection->dynamicCall("TypeText(QVariant&)", "页眉页眉");
     // 退出页眉编辑,自行处理
    // 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序
    document->dynamicCall("SaveAs (const QString&)", QString("C:\\Users\\Acharya\\Desktop\\test1.doc"));
    document->dynamicCall("Close (boolean)", false);
    word->dynamicCall("Quit()");

群:676977101

个人博客:www.10sxj.com

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要使用QAxObject操作XLSX文件,需要先在Qt项目中添加ActiveQt模块,然后使用QAxObject类来加载Excel应用程序并打开XLSX文件。下面是一个简单的示例: ```cpp #include <QAxObject> #include <QDebug> void readXlsxFile(QString filePath) { QAxObject* excel = new QAxObject("Excel.Application"); excel->setProperty("Visible", false); // 隐藏Excel应用程序 QAxObject* workbooks = excel->querySubObject("Workbooks"); QAxObject* workbook = workbooks->querySubObject("Open(const QString&)", filePath); QAxObject* worksheet = workbook->querySubObject("Worksheets(int)", 1); // 打开第1个工作表 int maxRow = worksheet->property("UsedRange").toRect().bottomRight().y(); int maxColumn = worksheet->property("UsedRange").toRect().bottomRight().x(); for (int i = 1; i <= maxRow; ++i) { for (int j = 1; j <= maxColumn; ++j) { QAxObject* cell = worksheet->querySubObject("Cells(int,int)", i, j); QString value = cell->dynamicCall("Value2()").toString(); // 读取单元格的值 qDebug() << value; cell->clear(); delete cell; } } workbook->dynamicCall("Save()"); excel->dynamicCall("Quit()"); delete worksheet; delete workbook; delete workbooks; delete excel; } ``` 在上面的示例中,我们首先使用QAxObject加载Excel应用程序,然后打开XLSX文件并打开第一个工作表。接着,我们遍历所有单元格并读取它们的值。最后,我们保存工作簿并退出Excel应用程序。 需要注意的是,使用QAxObject操作Excel可能会导致内存泄漏问题,因此需要小心处理。另外,由于Excel应用程序是一个COM组件,因此在使用QAxObject之前需要确保Excel已经正确安装在计算机上。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值