在QT5中如何方便的应用Excel表格工具

  • 1. 未安装Qxlsx的程序效果
  • 2. 安装Perl(编译Qxlsx源码用)
    • 2.1 下载 `ActivePerl 5.28`
    • 2.2 安装 `ActivePerl 5.28`
  • 3. 下载并编译Qxlsx源码
    • 3.1 下载Qxlsx源码
    • 3.2 编译Qxlsx源码
  • 4. 将编译好的文件复制到Qt路径下
    • 4.1 `bin` 路径文件复制
    • 4.2 `include` 路径文件复制
    • 4.3 `lib` 路径文件复制
    • 4.4 `mkspecs` 路径文件复制

本篇文章讲述了如何在windows环境下为Qt5安装Qxlsx模块,以及Qxlsx模块的简单使用。

Perl+QtXlsx下载:链接:https://pan.baidu.com/s/1iTafxvbY7R3zojTexJBvPQ 
提取码:nb88

  1. 新建一个程序,在pro文件中加入:
QT  += xlsx
  1. 在界面中添加一个按钮,设置以下槽函数:
/*
 * @brief 点击自动生成按钮
 */
void Widget::on_Btn_clicked()
{
    //![0]
    QXlsx::Document xlsx("EXCEL模板.xlsx");
    //![0]

    //![1]
    xlsx.write("A1", "Hello Qt!");
    //![1]

    //![2]
    xlsx.saveAs("生成的Qxlsx表格.xlsx");
    //xlsx.save();
    //![2]
}

在未安装Qxlsx模块的情况下程序会报错:
在这里插入图片描述
现在我们开始安装Qxlsx模块!

2安装 ActivePerl 5.28

  1. 双击安装包:
    在这里插入图片描述
  2. 接受条款:
    在这里插入图片描述
  3. 选择典型安装:
    在这里插入图片描述
  4. 勾选以下选项:
    在这里插入图片描述
  5. 开始安装:
    在这里插入图片描述
  6. 等待安装完成:
    在这里插入图片描述
  7. 安装完成,重启,重启,马上重启电脑:
    在这里插入图片描述

3. 下载并编译Qxlsx源码

 编译Qxlsx源码

4. 将编译好的文件复制到Qt路径下

找到Qt安装路径:
在这里插入图片描述

4.1 bin 路径文件复制

在这里插入图片描述

4.2 include 路径文件复制

在这里插入图片描述

4.3 lib 路径文件复制

在这里插入图片描述

4.4 mkspecs 路径文件复制

复制构建目录下的 mkspecs\modules\qt_lib_xlsx.pri 到 msvc2017_64\mkspecs\modules 下:
在这里插入图片描述

  1. 使用QT5打开 qtxlsx.pro
    在这里插入图片描述
  2. 选择编译器
    在这里插入图片描述
  3. 选择编译方式:
    在这里插入图片描述
  4. 点击“ctrl+B”构建项目,注意是 构建!构建!构建! 不要“ctrl+R”运行
  5. 构建完成,有报错,但是不用管:
    在这里插入图片描述
    在这里插入图片描述
  6. 文件夹预览:
    在这里插入图片描述
  7. 在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要解析Excel表格,您可以使用Python的pandas库。pandas提供了一组用于读取和操作表格数据的函数和数据结构。 以下是一个简单的示例,展示如何使用pandas从Excel表格读取数据: ```python import pandas as pd # 读取Excel表格的数据 df = pd.read_excel('example.xlsx') # 打印表格的前5行 print(df.head()) ``` 在上面的示例,我们使用了pandas的`read_excel`函数来读取名为`example.xlsx`的Excel表格。然后,我们使用`head`函数来打印表格的前5行数据。 如果您需要更多的操作,例如选择特定的列或行,可以使用pandas的DataFrame数据结构来执行这些操作。以下是一个示例: ```python import pandas as pd # 读取Excel表格的数据 df = pd.read_excel('example.xlsx') # 选择特定的列 column_names = ['Name', 'Age'] selected_columns = df[column_names] # 选择特定的行 selected_rows = df[df['Age'] > 30] # 打印所选的数据 print(selected_columns) print(selected_rows) ``` 在上面的示例,我们首先使用`read_excel`函数来读取Excel表格的数据。然后,我们使用DataFrame的索引功能来选择我们感兴趣的列和行。最后,我们使用`print`函数打印我们选择的数据。 这只是pandas的一小部分功能,如果您需要更多的操作,可以参考pandas的官方文档。 ### 回答2: QT是一个跨平台的开发框架,可以轻松解析Excel表格。我们可以使用QAxObject类和COM接口来完成这个任务。 首先,我们需要在项目引入`#include <QAxObject>`来使用QAxObject类。然后,我们可以使用QAxObject类的`setControl()`方法来设置Excel应用程序的CLSID,用`new`关键字创建一个QAxObject对象。 接下来,我们可以使用QAxObject类的`setProperty()`方法来设置Excel应用程序的属性。例如,可以使用`setProperty("Visible", false)`将Excel应用程序设置为不可见状态,以便在后台解析Excel表格。然后,可以使用`dynamicCall()`方法调用Excel应用程序的`Workbooks`对象,通过`Open()`方法打开Excel表格。 打开表格后,我们可以使用QAxObject类的`querySubObject()`方法获取`Sheets`对象,并使用`dynamicCall()`方法调用该对象的`Item()`方法,通过索引获取指定的工作表。 获取工作表后,我们可以使用QAxObject类的`querySubObject()`方法获取`Range`对象,并使用`dynamicCall()`方法调用该对象的`Value()`方法,将表格数据存储在一个二维QVariant类型的数组。 最后,我们可以通过循环遍历二维数组,将每个单元格的值提取出来并进行处理。 完成Excel表格解析后,我们可以调用QAxObject类的`dynamicCall()`方法调用Excel应用程序的`Quit()`方法,关闭Excel应用程序。 总的来说,使用QT解析Excel表格可以很方便地处理表格数据,提取所需信息,并进行相应的操作。QT的跨平台性使得我们可以在不同操作系统上使用相同的代码来解析Excel表格,提高了开发效率。 ### 回答3: QT是一种开发框架,它提供了许多功能模块和工具,用于创建高性能、跨平台的应用程序。其一个常用的功能是解析Excel表格。 在QT,我们可以使用QAxObject类来实现解析Excel表格的功能。首先,我们需要通过QAxObject的构造函数创建一个Excel应用程序的实例。然后,我们可以使用该实例来打开一个Excel文件,通过QAxObject的setProperty函数来设置打开文件的路径。接下来,我们可以使用QAxObject的querySubObject函数来获取工作簿对象,并使用工作簿对象获取工作表对象。然后,我们可以使用工作表对象的range函数获取单元格区域,并使用QAxObject的dynamicCall函数来获取单元格的值。 例如,以下是一个使用QT解析Excel表格的简单示例代码: ```cpp #include <QAxObject> #include <QDebug> int main() { QAxObject* excel = new QAxObject("Excel.Application"); excel->dynamicCall("SetVisible(bool)", false); excel->setProperty("DisplayAlerts", false); QAxObject* workbooks = excel->querySubObject("Workbooks"); QAxObject* workbook = workbooks->querySubObject("Open(const QString&)", "C:/path/to/excel/file.xlsx"); QAxObject* worksheets = workbook->querySubObject("Worksheets"); QAxObject* worksheet = worksheets->querySubObject("Item(int)", 1); QAxObject* range = worksheet->querySubObject("Range(const QString&)", "A1:B2"); QVariant value = range->dynamicCall("Value"); qDebug() << value; workbook->dynamicCall("Close()"); excel->dynamicCall("Quit()"); delete excel; return 0; } ``` 上述代码首先创建一个Excel应用程序的实例,并设置不显示警告对话框。然后,打开一个Excel文件,并获取第一个工作表。接下来,通过指定单元格区域"A1:B2"来获取该区域的值,并将结果打印输出。 通过上述示例代码,我们可以看到,使用QT解析Excel表格是相对简单的。它提供了许多灵活而强大的功能,可以帮助我们轻松地处理和分析Excel表格的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值