翻译文,原文链接
//导出btn槽函数
void MainWindow::SlotExport()
{
QString filepath = QFileDialog::getSaveFileName(this, tr("Save as..."),QString(), tr("EXCEL files (*.xls);;HTML-Files (*.txt);;"));
//获取需要保存的文件路径及文件名称
QTableWidget* m_pTable = ui->tableWidget;//表对象
if (filepath != "")
{
int row = m_pTable->rowCount();
int col = m_pTable->columnCount();
QList<QString> list;
//添加列标题
QString HeaderRow;
for (int i = 0; i < col; i++)
{
HeaderRow.append(m_pTable->horizontalHeaderItem(i)->text() + "\t");
}//得到所有列名称,并用“\t”隔开
list.push_back(HeaderRow);
for (int i = 0; i < row; i++)
{
QString rowStr = "";
for (int j = 0; j < col; j++){
rowStr += m_pTable->item(i, j)->text() + "\t";
}
list.push_back(rowStr);
}//获取各行各列的数据加到链表中,链表对象为每一行的所有数据
QTextEdit textEdit;
for (int i = 0; i < list.size(); i++)
{
textEdit.append(list.at(i));
}//将得到的每一行数据添加到TextEdit对象中
QFile file(filepath);
if (file.open(QFile::WriteOnly | QIODevice::Text))
{
QTextStream ts(&file);
ts.setCodec("GB2312");//设置编码方式
ts << textEdit.document()->toPlainText();
file.close();
}
QMessageBox::information(this, "Tips", "Data Export Success!", QMessageBox::Ok);//提示导出成功
}
}