1
0
mirror of https://github.com/QtExcel/QXlsx.git synced 2025-01-30 05:02:52 +08:00
QXlsx/Copycat/MainWindow.cpp
2018-09-27 19:04:11 +09:00

92 lines
1.9 KiB
C++

#include <QtGlobal>
#include <QString>
#include <QFileDialog>
#include <QMessageBox>
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
xlsxDoc = NULL;
tabWidget = NULL;
ui->setupUi(this);
tabWidget = new QTabWidget(this);
}
MainWindow::~MainWindow()
{
// tabWidget->close();
delete ui;
if ( NULL != xlsxDoc )
{
delete xlsxDoc;
}
}
void MainWindow::on_action_Quit_triggered()
{
this->close();
}
void MainWindow::on_action_Open_triggered()
{
// open dialog
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Excel"), ".", tr("Excel Files (*.xlsx)"));
// tried to load xlsx
QXlsx::Document xlsxTmp(fileName);
if (!xlsxTmp.isLoadPackage())
{
QMessageBox msgBox;
QString alertMsg = QString("Failed to load file.\n %1").arg(fileName);
msgBox.setText(alertMsg);
msgBox.exec();
return;
}
xlsxTmp.deleteLater();
// clear xlsxDoc
if ( NULL != xlsxDoc )
{
delete xlsxDoc;
xlsxDoc = NULL;
}
// load new xlsx
xlsxDoc = new QXlsx::Document(fileName);
xlsxDoc->isLoadPackage();
tabWidget->clear();
// Removes all the pages, but does not delete them.
// Calling this function is equivalent to calling removeTab() until the tab widget is empty.
//
//for ( int ic = 0 ; ic < tabWidget->count() ; ic++ ) {
// tabWidget->removeTab( ic );
//}
foreach( QString curretnSheetName, xlsxDoc->sheetNames() ) {
QXlsx::AbstractSheet* currentSheet = xlsxDoc->sheet( curretnSheetName );
if ( NULL == currentSheet )
continue;
// XlsxTab* newSheet = new XlsxTab( this, currentSheet );
// TODO: append to xlsx pointer list
// tabWidget->addTab( newSheet );
}
}