Qt 调用 Microsoft Excel 组件生成 Excel 文档

这篇具有很好参考价值的文章主要介绍了Qt 调用 Microsoft Excel 组件生成 Excel 文档。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在.pro文件中添加模块:

QT += core gui axcontainer

参考界面:界面中只有一个 pushButton 按钮。
参考代码:
mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAxObject>
#include <QFile>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    // 点击 pushButton 按钮
    void on_pushButton_clicked();
private:
    // 生成 Microsoft Excel 官方接口文档以供参考
    void generateDoc(QAxObject *obj,const QString &docName);
private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

// 生成 Microsoft Excel 官方接口文档以供参考
void MainWindow::generateDoc(QAxObject *axObject, const QString &docName)
{
    // 生成 Microsoft Excel 接口官方接口文档
    QString doc = axObject->generateDocumentation();
    // 保存文档
    QFile file(docName);
    file.open(QIODevice::WriteOnly);
    file.write(doc.toLocal8Bit());
    file.close();
}
// 点击 pushButton 按钮
void MainWindow::on_pushButton_clicked()
{
    // "Excel.Application" 是 Windows 平台上的一个标识和访问 Microsoft Excel 的 COM 组件
    // 在注册表中的路径为:HKEY_CLASSES_ROOT\Excel.Application
    QAxObject axObject("Excel.Application");
    // 生成 Microsoft Excel 接口官方接口文档
    //generateDoc(&axObject,"Excel.html");
    // 设置 Excel 应用程序窗口的可见性(打开 Excel 程序)
    //axObject.dynamicCall("SetVisible(bool)", true);
    
    // 获取 Excel 中对工作簿集合的访问
    QAxObject *workbooks = axObject.querySubObject("Workbooks");
    // 生成工作簿集合接口文档
    //generateDoc(workbooks,"workbooks.html");
    
    // 获取 Excel 中对工作簿的访问
    QAxObject *workbook = workbooks->querySubObject("Add()");
    // 生成工作簿接口文档
    //generateDoc(workbook,"workbook.html");
    
    // 获取 Excel 中对 sheets 的访问
    QAxObject *sheets = workbook->querySubObject("Sheets");
    // 生成 sheets 接口文档
    //generateDoc(sheets,"sheets.html");
    
    // 获取 Excel 中对 sheet 的访问
    // 获取与工作表集合(sheets)中的第一个工作表(sheet)相关联的 QAxObject 对象的指针。
    // 索引从 1 开始计数,表示第一个工作表
    QAxObject *sheet = sheets->querySubObject("Item(QVariant)",1);
    // 生成 sheet 接口文档
    //generateDoc(sheet,"sheet.html");
    
    // 获取 Excel 中对 cells(单元格) 的访问
    QAxObject *cells = sheet->querySubObject("Cells");
    // 生成 cells 接口文档
    //generateDoc(cells,"cells.html");
    
    /*
        操作 Excel 表格中的单元格
    */
    // 插入 10行 10列测试数据
    for(int row = 1;row<=10;++row)
    {
        for(int column = 1;column<=10;++column)
        {
            cells->dynamicCall("SetItem(QVariant, QVariant, QVariant)",row,column,"测试数据");
        }
    }
    // 设置 Excel 工作簿的保存路径
    workbook->dynamicCall("SaveAs(QVariant)", "C:\\Users\\A\\Desktop\\data.xlsx");
    // 退出 Excel 程序
    axObject.dynamicCall("Quit()");
}

程序执行效果:会在桌面生成一个data.xlsx文档,打开此文档后显示如下信息:
Qt 调用 Microsoft Excel 组件生成 Excel 文档,Qt 实战,qt,microsoft,excel,wps

注意:若你的电脑安装的是 WPS ,没有安装 Office,那么使用 WPS 中的 Excel 也是完全没问题的,Qt 调用 WPS Excel 组件操作步骤 和 调用 Microsoft Excel 组件完全相同,除了在调用 WPS Excel 组件时将Office的QAxObject axObject(“Excel.Application”);更改为QAxObject axObject(“KET.Application”);文章来源地址https://www.toymoban.com/news/detail-605520.html

到了这里,关于Qt 调用 Microsoft Excel 组件生成 Excel 文档的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 Qt 生成 Word 和 PDF 文档的详细教程

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Qt 是一个跨平台的应用程序开发框架,除了用于创建图形界面应用程序外,还可以用来生成 Word 和 PDF 文档。本文

    2024年02月12日
    浏览(49)
  • Qt6之调用Windows下vc生成的动态链接库dll

    Qt是跨平台工具,显然能和windows的动态库一起使用。 在Windows操作系统上,库以文件的形式存在,并且可以分为动态链接库(DLL) 和静态链接库两种。动态链接库文控以.dll为后缀名,静态链接库文控以.lib为后缀名。不管是动态链接库还是静态链接库,都是向它们的调用者提供变

    2024年02月09日
    浏览(43)
  • C#调用Microsoft.Office.Interop.Excel时的常见操作功能

    using Microsoft.Office.Interop.Excel;//引用Microsoft.Office.Interop.Excel //声明一个Excel Application  Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application();                 //声明一个Excel Workbook                 Microsoft.Office.Interop.Excel.Workbook workbookData;            

    2024年02月12日
    浏览(50)
  • QT操作excel的两种方式 QT基础入门【Excel的操作】

    QT操作excel的方式有两种:QAxObject 和QtXlsx QAxObject是通过调用office或者wps组件来实现对excel图表的操作的。只有装office软件或者wps软件就可以实现,但是 如果只装了office软件,有时可以用有时不可以用; 如果只装wps软件,完全不能使用; 如果两个都装了,基本上结果不可控;

    2024年02月12日
    浏览(39)
  • QT使用QXlsx实现数据验证与Excel公式操作 QT基础入门【Excel的操作】

     准备环境:QT中使用QtXlsx库的三种方法 1、公式操作写单行公式

    2024年02月10日
    浏览(35)
  • QT使用QXlsx实现对Excel sheet的相关操作 QT基础入门【Excel的操作】

     准备环搭:QT中使用QtXlsx库的三种方法 1、查询打开的Excel中所有可用的工作表(Sheet)名称 功能说明:  查询Excel中所有的工作表(Sheet)名称; 返回值:  所有工作表的名称列表;

    2024年02月11日
    浏览(40)
  • 【QT】QT调用电脑摄像头并拍照

    建议搭配视频食用: 【【QT】QT调用电脑摄像头并拍照】 https://www.bilibili.com/video/BV1pc411G7qy/?share_source=copy_webvd_source=c0d9dd4e64b88e4dbf93ac009c2010dc 一、在pro文件中添加‘multimedia multimediawidgets’ 二、在ui界面创建一个widget并改名为camera用于展示摄像头内容和pushbutton 用于拍照,并右键

    2024年02月12日
    浏览(42)
  • QT操作Excel

    在具体操作之前,我们先了解一下excel的层次结构,如图所示,Application对象–Workbook对象–Worksheet对象–Range对象。 1个excel有一个Application对象,1个Application对象有多个workbook对象组成,这些workbook对象由workbooks对象统一管理,workbook对象下包含若干个worksheet,这些worksheet对象

    2024年02月11日
    浏览(44)
  • 一个基于Excel模板快速生成Excel文档的小工具

    DocumentGenerator是一个Excel快速生成工具,目标以后还能实现Word、pdf等的文件的生成。该程序独立运行,可通过HTTP接口调用其生成接口。 典型使用场景为如下: 使用者编写模板文件 使用者准备模板文件的填充JSON数据内容 使用者通过网络接口调用该程序服务完成模板数据自动

    2024年02月08日
    浏览(41)
  • word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)

    批量生成word文档是让人无比厌恶但有时又不得不做的事情。比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有“姓名”、“学院”和“专业”不同,其他内容都相同的word文档以供打印(事实上直接生成pdf是更好的选择,这个以后有心情可以弄一下)。 要实

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包