Qt creator使用QAxObject库函数将excel表格导入SqLite数据库中并显示在QTableView控件中


前言

Qt creator使用QAxObject库函数将excel表格导入SqLite数据库中并显示在QTableView控件中


提示:以下是本篇文章正文内容,下面案例可供参考

一、在工程文件中添加axcontainer模块

QT       += core gui sql network axcontainer

二、导入SqLite数据库并显示到QTableView控件上

代码如下(示例):

	QAxObject excel("Excel.Application");
    excel.setProperty("Visible", false); //隐藏打开的excel文件界面
    QAxObject *workbooks = excel.querySubObject("WorkBooks");

    QString file_path = QFileDialog::getOpenFileName();
    QAxObject *workbook = workbooks->querySubObject("Open(QString, QVariant)", file_path); //打开文件
    QAxObject * worksheet = workbook->querySubObject("WorkSheets(int)", 1); //访问第一个工作表
    QAxObject * usedrange = worksheet->querySubObject("UsedRange");
    QAxObject * rows = usedrange->querySubObject("Rows");
    int intRows = rows->property("Count").toInt(); //行数

    QString Range = "A1:D" +QString::number(intRows);
    QAxObject *allEnvData = worksheet->querySubObject("Range(QString)", Range); //读取范围
    QVariant allEnvDataQVariant = allEnvData->property("Value");
    QVariantList allEnvDataList = allEnvDataQVariant.toList();
    int i = 0;
    QProgressBar *p = new QProgressBar(this);
    p->setMinimum(0);
    p->setMaximum(intRows);
    for(i=1; i< intRows; i++)
    {
        QVariantList allEnvDataList_i =  allEnvDataList[i].toList() ;

        p->setValue(i);
        p->setGeometry(10,70,300,30);
        p->show();
        p->setOrientation(Qt::Horizontal);

		//此处为将数据插入到数据库,自己写的函数进行调用,如需+qq3406285193,~~
        SqlModel::insert_Singlepro_info(p_number,allEnvDataList_i[0].toString(),allEnvDataList_i[1].toString(),allEnvDataList_i[2].toString(),allEnvDataList_i[3].toString());

    }
    p->setValue(intRows);
    workbooks->dynamicCall("Close()");
    excel.dynamicCall("Quit()");

    if(QMessageBox::Ok == QMessageBox::question(this,"提示","导入成功,是否显示?",QMessageBox::Ok|QMessageBox::No))
    {
        p->hide();
        pro_model = new QSqlTableModel;
        //显示单项工程的细节
        pro_model->setTable("Singlepro_info");
        pro_model->setEditStrategy(QSqlTableModel::OnManualSubmit);

        pro_model->setFilter(QObject::tr("单项工程编号='%1'").arg(p_number));
        pro_model->select();

        pro_model->setHeaderData(0,Qt::Horizontal,tr("序号"));
        pro_model->setHeaderData(1,Qt::Horizontal,tr("单项工程编号"));
        pro_model->setHeaderData(2,Qt::Horizontal,tr("部位"));
        pro_model->setHeaderData(3,Qt::Horizontal,tr("物资名称"));
        pro_model->setHeaderData(4,Qt::Horizontal,tr("型号规格"));
        pro_model->setHeaderData(5,Qt::Horizontal,tr("用量"));

        ui->tableView->setModel(pro_model);
        ui->tableView->hideColumn(0);
        ui->tableView->hideColumn(1);


        ui->countLabel->setText(QString::number(i-1+count));
    }

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Qt creator使用QAxObject库函数将excel表格导入SqLite数据库中并显示在QTableView控件中,而Qt creator提供了大量能使我们快速便捷地处理数据的函数和方法,对于qt中的其他操作问题,请各位大神移步博主其他文章或是关注博主等待后续发布。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在QT Creator选择文件夹并将文件夹的所有文件展示在表格控件,你可以按照以下步骤进行: 1. 在QT Creator创建一个新的QT项目。 2. 在用户界面设计器,将一个表格控件(例如QTableWidget)拖放到窗口,用于展示文件列表。 3. 在窗口类的头文件添加必要的头文件和成员变量: ```cpp #include <QMainWindow> #include <QDir> #include <QStringList> #include <QTableWidgetItem> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; QDir folder; QStringList fileList; private slots: void on_pushButton_clicked(); }; ``` 4. 在窗口类的源文件实现构造函数、析构函数和按钮点击事件的槽函数: ```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; } void MainWindow::on_pushButton_clicked() { QString folderPath = QFileDialog::getExistingDirectory(this, tr("选择文件夹"), QString(), QFileDialog::ShowDirsOnly); if (!folderPath.isEmpty()) { folder.setPath(folderPath); fileList = folder.entryList(QDir::Files); ui->tableWidget->setRowCount(fileList.length()); ui->tableWidget->setColumnCount(1); for (int i = 0; i < fileList.length(); ++i) { QTableWidgetItem *item = new QTableWidgetItem(fileList.at(i)); ui->tableWidget->setItem(i, 0, item); } } } ``` 5. 在QT Creator的设计器,添加一个按钮控件,并将其连接到`on_pushButton_clicked()`槽函数。 6. 构建并运行应用程序,当你点击按钮时,将弹出一个文件夹选择对话框,选择一个文件夹后,文件夹的所有文件将会显示表格控件。 以上代码假设你已经在设计界面添加了一个名为`pushButton`的按钮和一个名为`tableWidget`的表格控件。你可以根据自己的界面设计进行调整。另外,记得在.pro文件添加必要的模块(如`widgets`)来支持表格控件使用
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值