嵌入式Qt开发—Excel表格数据导出

有一个嵌入式Excel表格数据导出的需求:应用软件运行于嵌入式Linux平台上,在设备运行过程中,存储了许多数据,这些数据想以表格的形式导出。考虑到Windows平台的普遍性,需要将数据以excel表格形式导出,故选择了一个开源库:QtXlsxWriter,本文主要记录其编译构建过程。

从下列地址https://github.com/dbzhang800/QtXlsxWriter获取安装包,将源码包解压缩,目录结构如下图所示:

 

example目录下存放的是示例Demo。

src目录下存放的是xlsx的源码。

tests目录下存放的是测试工程。

QtXlsxWriter可以通过QtCreator来编译构建,所以我们打开安装在linux平台上的QtCreator,然后使用QtCreator打开QtXlsxWriter项目(选择源码目录下的xxx.pro文件)。选择对应的编译构建套件后,如下图所示:

 

点击项目管理视图中的顶级目录,单击右键,选择“构建”,即可构建QtXlsxWriter:

 编译成功后,将在源码目录的同级下创建构建输出目录,该目录结构如下图所示:

 

  • bin :用于存放二进制文件。(该目录为空)
  • examples:示例Demo的编译构建输出目录。
  • include:该目录存放关于QtXlsxWriter的头文件

 

  • lib:该目录用于存放QtXlsxWriter的库目录:

 

  • mkspecs:该目录是Qt的模块化标识目录,用于向Qt开发环境添加Xlsx:

 

  • tests:该目录用于存放测试工程。

在上述目录中,includelibmkspecs目录是比较重要的目录。在搭建QtXlsxWriter开发环境时需要使用到。

将构建完成后的目录下的bin、include、lib、mkspecs、src目录拷贝到Qt的安装目录下,以在QtCreator中可以使用Qt+=xlsx加载模块

然后可以编译构建一个demo示例来测试一下。本文以chart为例,其代码如下:

#include <QtCore>
#include "xlsxdocument.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"

using namespace QXlsx;

int main()
{
    //![0] 创建xlsx文档对象。向单元格总写入数据
    Document xlsx;
    for (int i = 1; i < 10; ++i) {
        xlsx.write(i, 1, i * i * i); // A1:A9
        xlsx.write(i, 2, i * i); // B1:B9
        xlsx.write(i, 3, i * i - 1); // C1:C9
    }
    //![0]

    //![1]创建图表
    Chart *pieChart = xlsx.insertChart(3, 3, QSize(300, 300));
    pieChart->setChartType(Chart::CT_Pie);
    pieChart->addSeries(CellRange("A1:A9"));
    pieChart->addSeries(CellRange("B1:B9"));
    pieChart->addSeries(CellRange("C1:C9"));

    Chart *pie3DChart = xlsx.insertChart(3, 9, QSize(300, 300));
    pie3DChart->setChartType(Chart::CT_Pie3D);
    pie3DChart->addSeries(CellRange("A1:C9"));

    Chart *barChart = xlsx.insertChart(23, 3, QSize(300, 300));
    barChart->setChartType(Chart::CT_Bar);
    barChart->addSeries(CellRange("A1:C9"));

    Chart *bar3DChart = xlsx.insertChart(23, 9, QSize(300, 300));
    bar3DChart->setChartType(Chart::CT_Bar3D);
    bar3DChart->addSeries(CellRange("A1:C9"));

    Chart *lineChart = xlsx.insertChart(43, 3, QSize(300, 300));
    lineChart->setChartType(Chart::CT_Line);
    lineChart->addSeries(CellRange("A1:C9"));

    Chart *line3DChart = xlsx.insertChart(43, 9, QSize(300, 300));
    line3DChart->setChartType(Chart::CT_Line3D);
    line3DChart->addSeries(CellRange("A1:C9"));

    Chart *areaChart = xlsx.insertChart(63, 3, QSize(300, 300));
    areaChart->setChartType(Chart::CT_Area);
    areaChart->addSeries(CellRange("A1:C9"));

    Chart *area3DChart = xlsx.insertChart(63, 9, QSize(300, 300));
    area3DChart->setChartType(Chart::CT_Area3D);
    area3DChart->addSeries(CellRange("A1:C9"));

    Chart *scatterChart = xlsx.insertChart(83, 3, QSize(300, 300));
    scatterChart->setChartType(Chart::CT_Scatter);
    // Will generate three lines.
    scatterChart->addSeries(CellRange("A1:A9"));
    scatterChart->addSeries(CellRange("B1:B9"));
    scatterChart->addSeries(CellRange("C1:C9"));

    Chart *scatterChart_2 = xlsx.insertChart(83, 9, QSize(300, 300));
    scatterChart_2->setChartType(Chart::CT_Scatter);
    // Will generate two lines.
    scatterChart_2->addSeries(CellRange("A1:C9"));

    Chart *doughnutChart = xlsx.insertChart(103, 3, QSize(300, 300));
    doughnutChart->setChartType(Chart::CT_Doughnut);
    doughnutChart->addSeries(CellRange("A1:C9"));
    //![1]

    //![2]将xlsx文档对象保存为Book1.xlsx文件。
    xlsx.saveAs("Book1.xlsx");
    //![2]
    
    //保存为Book2.xlsx文件。
    Document xlsx2("Book1.xlsx");
    xlsx2.saveAs("Book2.xlsx");
    return 0;
}

选中项目管理视图中的example目录,依次展开,选择chart目录,右键单击,选中“构建”选项,即可对chart示例演示进行构建。

然后在chart的编译构建目录下,将生成如下文件:

 

 

 以上过程是在Ubuntu18.04下进行,如果想让QtXlsxWriter运行于嵌入式linux平台上,只需要在QtCreator中选择编译构建套件时,选择对应的交叉编译套件,在编译完成后,将构建出的库文件复制到Linux的链接库目录下(一般为/usr/lib),则可以在嵌入式Linux平台上使用QtXlsxWriter了。
 

要安装Hyper-V,首先需要启用Hyper-V功能。在Windows操作系统中,可以通过以下步骤来安装Hyper-V: 1. 打开开始菜单,找到Hyper-V管理器并打开。\[1\] 2. 在Hyper-V管理器中,右键点击服务器,选择Hyper-V设置。 3. 在Hyper-V设置中,可以更改虚拟机磁盘和虚拟机的默认文件夹。请注意,这两个文件夹并不是同一个目录。 4. 在Hyper-V设置中,还可以进行虚拟交换机的设置,以便虚拟机之间进行网络通信。\[1\] 5. 安装完成后,可以开始创建和配置虚拟机。可以使用Hyper-V提供的功能来创建虚拟硬盘驱动器、虚拟交换机和其他虚拟设备,并将它们添加到虚拟机中。\[2\] 总结起来,安装Hyper-V的步骤包括启用Hyper-V功能、进行Hyper-V设置、创建和配置虚拟机。具体的步骤可以根据操作系统版本和个人需求进行调整。\[3\] #### 引用[.reference_title] - *1* *3* [Hyper-V的安装和基本使用方法](https://blog.youkuaiyun.com/qq_16051405/article/details/121121119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [虚拟机Hyper-V的安装以及使用教程](https://blog.youkuaiyun.com/T_an90/article/details/127023779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值