Qt 操作Excel-读取Excel 数据

本文介绍Qt操作Excel的两种主要方式,一是通过Qt+QAxObject依赖MicrosoftExcel进行读写,二是利用第三方库QXlsx。文章详细展示了如何将QXlsx以源码形式集成到项目中,并提供了具体的代码示例,演示了如何读取Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         Qt 操作Excel 有两种方式: 一种使用 Qt + QAxObject操作Excel,这种方式运行的主机需要安装Microsoft Excel,Qt 利用QAxObject com接口操作Microsoft Excel 软件实现Excel 读写;第二种就是用第三的库实现Excel 读写。常用的库和使用限制如下:

这里使用QXlsx  下载地址如下:https://github.com/QtExcel/QXlsx

      使用第三方开源库,一般有两种方法:一种编译成静态库,新建项目直接调用静态库,好处每次创建项目都不需要重复编译开源库;另外一种方式就是以源码的方式加入自己的项目工程,这样每次都会重新开源库源码。

     这里以源码形式加入项目工程测试,下载代码解压后将QXlsx 源码目录,并在自己的项目文件pro加入路径即可:

QXLSX_PARENTPATH=./QXlsx
QXLSX_HEADERPATH=./QXlsx/header/
QXLSX_SOURCEPATH=./QXlsx/source/
include(QXlsx/QXlsx.pri)

 测试代码如下:

#include "xlsxdocument.h"
#include "xlsxchartsheet.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"
#include "xlsxrichstring.h"
#include "xlsxworkbook.h"
using namespace QXlsx;

void MainWindow::readxlsx()
{
    Document xlsxR("1.xlsx");
    if ( xlsxR.load() ) // load excel file
    {
        qDebug() << "[debug] success to load xlsx file.";
        int row, col;
        QVariant var1, var2;
        Cell* cell;
        QXlsx::Workbook *workBook = xlsxR.workbook();
        QXlsx::Worksheet *workSheet = static_cast<QXlsx::Worksheet*>(workBook->sheet(0));
        qDebug() << "rowCount = "<< workSheet->dimension().rowCount() << "colCount = "<< workSheet->dimension().columnCount();
        for(row = 2; row < workSheet->dimension().rowCount(); row++)
        {
            cell = xlsxR.cellAt(row, 1); // get cell pointer.
            if ( cell != NULL )
            {
                var1 = cell->readValue(); // read cell value (number(double), QDateTime, QString ...)
            }

            cell = xlsxR.cellAt(row, 2); // get cell pointer.
            if ( cell != NULL )
            {
                var2 = cell->readValue(); // read cell value (number(double), QDateTime, QString ...)
            }
            qDebug()<<"row:"<<row<<var1.toDate().toString("yyyy/MM/dd")<< var2.toFloat();
        }
    }
    else
    {
        qDebug() << "failed to load xlsx file.";
    }
}

Excel 原始数据及读取的数据截图

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值