0
点赞
收藏
分享

微信扫一扫

QT tablewidget数据存储到excel中方法

小禹说财 2022-04-18 阅读 72
qtc++

一、QT tablewidget数据存储到excel中方法

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.引入相关库文件

代码如下(示例):

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QDesktopServices>
#include <QUrl>
#include <QDateTime>
#include <QFileDialog>
#include <QAxObject>
#include <QMessageBox>
#include <QTextEdit>
#include "qdebug.h"

2.在mainwindow.h中加一个信号槽

代码如下(示例):

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include
#include

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();

private slots:
void on_pushButton_clicked();
void on_pushButton_clicked2();

private:
Ui::MainWindow *ui;
QLabel *lab;
};
#endif // MAINWINDOW_H


3.在mainwindow.cpp中加相应的槽函数

代码如下(示例):
void MainWindow::on_pushButton_clicked2()
{
QString filePath = QFileDialog::getSaveFileName(this, “Save Data”, “untitle”,
"Microsoft Excel 2013(.xlsx)");
if (!filePath.isEmpty())
{
QAxObject
excel = new QAxObject(this);
excel->setControl(“ket.Application”);//wps
//excel->setControl(“Excel.Application”) //Excel
excel->dynamicCall(“SetVisible(bool Visible)”, false);
excel->setProperty(“DisplayAlerts”, false);
QAxObject* workbooks = excel->querySubObject(“WorkBooks”);
workbooks->dynamicCall(“Add”);
QAxObject* workbook = excel->querySubObject(“ActiveWorkBook”);
QAxObject* worksheets = workbook->querySubObject(“Sheets”);
QAxObject* worksheet = worksheets->querySubObject(“Item(int)”, 1);
int rowCount = ui->tableWidget->rowCount();
int columnCount = ui->tableWidget->columnCount();
for (int i = 1; i < rowCount + 1; ++i)
{
for (int j = 1; j < columnCount + 1; ++j)
{
//QAxObject* Range = worksheet->querySubObject(“Cells(int,int)”, i+1, j);
QAxObject* Range = worksheet->querySubObject(“Cells(int,int)”, i, j);
Range->dynamicCall(“SetValue(const QString &)”, ui->tableWidget->item(i-1 , j - 1)->text());
}
}
workbook->dynamicCall(“SaveAs(const QString &)”, QDir::toNativeSeparators(filePath));
if (excel != NULL)
{
excel->dynamicCall(“Quit()”);
delete excel;
excel = NULL;
}
QMessageBox::information(this, QStringLiteral(“提示”), “Exporting data successful”);
}
}

总结

以上就是用qt将tablewidget中的数据存储到excle中的方法,大家有疑问可以提问哦

举报

相关推荐

0 条评论