一、QT C++ 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 <QMainWindow>
#include <QLabel>
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中的方法,大家有疑问可以提问哦