#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QTextDocumentWriter>
#include <QTextStream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
initText();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::initText()
{
QString begin = QString::fromLocal8Bit("<HTML>"
"<HEAD></HEAD>"
"<BODY>"
"<TABLE CELLSPACING=0 cellpadding=10 COLS=8 BORDER=1 >"
"<TR>"
"<TD COLSPAN=8 ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=8 ""COLOR=RED>表格测试</TD></TR>"
"<TR>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4 > 序号 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 日期 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 飞机 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 大炮 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 火箭 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 轮船 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 汽车 </TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE><FONT SIZE=4> 我的自行车 </TD></TR>");
QString mid = QString("<TR>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%1</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%2</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%3</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%4</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%5</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%6</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%7</TD>"
"<TD ALIGN=CENTER VALIGN=MIDDLE >%8</TD></TR>");
QString end = QString("</TABLE></BODY></HTML>");
QString mid2 = mid.arg(1).arg(2).arg(3).arg(4).arg(5).arg(6).arg(7).arg(8);
QString mid3 = mid.arg("a").arg("b").arg("c").arg("d").arg("e").arg("f").arg("g").arg("h");
begin.append(mid2);
begin.append(mid3);
begin.append(end);
ui->textEdit->setText(begin);
}
void MainWindow::on_actionSaveAs_triggered()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("Save as..."),
QString(),
tr("EXCEL files (*.xls);;ODS files (*.ods);;ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)"));
if (fileName.isEmpty())
return;
if (! (fileName.endsWith(".xls", Qt::CaseInsensitive)||
fileName.endsWith(".odt", Qt::CaseInsensitive) ||
fileName.endsWith(".htm", Qt::CaseInsensitive) ||
fileName.endsWith(".html", Qt::CaseInsensitive)||
fileName.endsWith(".ods", Qt::CaseInsensitive)) )
fileName += ".xls"; // default
if (fileName.endsWith(".odt", Qt::CaseInsensitive)){
QTextDocumentWriter writer(fileName);
writer.write(ui->textEdit->document());
}else{
QFile file(fileName);
if (file.open(QFile::WriteOnly | QIODevice::Text))
{
QTextStream liu(&file);
liu.setCodec("UTF-8");
liu << ui->textEdit->document()->toHtml("UTF-8");
}
}
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void initText();
private:
Ui::MainWindow *ui;
private slots:
void on_actionSaveAs_triggered();
};
#endif // MAINWINDOW_H