直接看下代码
QString filepath = QFileDialog::getSaveFileName(this, tr("Save orbit"), ".", tr("(*.xlsx)"));
if (!filepath.isEmpty())
{
QAxObject *excel = new QAxObject(this);
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);//获取工作表集合的工作表1,即sheet1
QAxObject *cellA, *cellB, *cellC, *cellD, *cellE, *cellF, *cellG, *cellH, *cellI, *cellJ, *cellK
, *cellL, *cellM, *cellN, *cellO, *cellP;
int cellrow = 1;
QString A = "A" + QString::number(cellrow);
QString B = "B" + QString::number(cellrow);
QString C = "C" + QString::number(cellrow);
QString D = "D" + QString::number(cellrow);
QString E = "E" + QString::number(cellrow);
QString F = "F" + QString::number(cellrow);
QString G = "G" + QString::number(cellrow);
QString H = "H" + QString::number(cellrow);
QString I = "I" + QString::number(cellrow);
QString J = "J" + QString::number(cellrow);
QString K = "K" + QString::number(cellrow);
QString L = "L" + QString::number(cellrow);
QString M = "M" + QString::number(cellrow);
QString N = "N" + QString::number(cellrow);
QString O = "O" + QString::number(cellrow);
QString P = "P" + QString::number(cellrow);
cellA = worksheet->querySubObject("Range(QVariant, QVariant)", A);//获取单元格
cellB = worksheet->querySubObject("Range(QVariant, QVariant)", B);
cellC = worksheet->querySubObject("Range(QVariant, QVariant)", C);
cellD = worksheet->querySubObject("Range(QVariant, QVariant)", D);
cellE = worksheet->querySubObject("Range(QVariant, QVariant)", E);
cellF = worksheet->querySubObject("Range(QVariant, QVariant)", F);
cellG = worksheet->querySubObject("Range(QVariant, QVariant)", G);
cellH = worksheet->querySubObject("Range(QVariant, QVariant)", H);
cellI = worksheet->querySubObject("Range(QVariant, QVariant)", I);
cellJ = worksheet->querySubObject("Range(QVariant, QVariant)", J);
cellK = worksheet->querySubObject("Range(QVariant, QVariant)", K);
cellL = worksheet->querySubObject("Range(QVariant, QVariant)", L);
cellM = worksheet->querySubObject("Range(QVariant, QVariant)", M);
cellN = worksheet->querySubObject("Range(QVariant, QVariant)", N);
cellO = worksheet->querySubObject("Range(QVariant, QVariant)", O);
cellP = worksheet->querySubObject("Range(QVariant, QVariant)", P);
cellA->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(0)->text()));//设置单元格的值
cellB->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(1)->text()));
cellC->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(2)->text()));
cellD->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(3)->text()));
cellE->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(4)->text()));
cellF->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(5)->text()));
cellG->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(6)->text()));
cellH->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(7)->text()));
cellI->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(8)->text()));
cellJ->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(9)->text()));
cellK->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(10)->text()));
cellL->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(11)->text()));
cellM->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(12)->text()));
cellN->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(13)->text()));
cellO->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(14)->text()));
cellP->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->horizontalHeaderItem(15)->text()));
for (int i = 0; i < m_pDeployedListTableWgt->rowCount(); i++)
{
QString A = "A" + QString::number(i+2);
QString B = "B" + QString::number(i + 2);
QString C = "C" + QString::number(i + 2);
QString D = "D" + QString::number(i + 2);
QString E = "E" + QString::number(i + 2);
QString F = "F" + QString::number(i + 2);
QString G = "G" + QString::number(i + 2);
QString H = "H" + QString::number(i + 2);
QString I = "I" + QString::number(i + 2);
QString J = "J" + QString::number(i + 2);
QString K = "K" + QString::number(i + 2);
QString L = "L" + QString::number(i + 2);
QString M = "M" + QString::number(i + 2);
QString N = "N" + QString::number(i + 2);
QString O = "O" + QString::number(i + 2);
QString P = "P" + QString::number(i + 2);
cellA = worksheet->querySubObject("Range(QVariant, QVariant)", A);//获取单元格
cellB = worksheet->querySubObject("Range(QVariant, QVariant)", B);
cellC = worksheet->querySubObject("Range(QVariant, QVariant)", C);
cellD = worksheet->querySubObject("Range(QVariant, QVariant)", D);
cellE = worksheet->querySubObject("Range(QVariant, QVariant)", E);
cellF = worksheet->querySubObject("Range(QVariant, QVariant)", F);
cellG = worksheet->querySubObject("Range(QVariant, QVariant)", G);
cellH = worksheet->querySubObject("Range(QVariant, QVariant)", H);
cellI = worksheet->querySubObject("Range(QVariant, QVariant)", I);
cellJ = worksheet->querySubObject("Range(QVariant, QVariant)", J);
cellK = worksheet->querySubObject("Range(QVariant, QVariant)", K);
cellL = worksheet->querySubObject("Range(QVariant, QVariant)", L);
cellM = worksheet->querySubObject("Range(QVariant, QVariant)", M);
cellN = worksheet->querySubObject("Range(QVariant, QVariant)", N);
cellO = worksheet->querySubObject("Range(QVariant, QVariant)", O);
cellP = worksheet->querySubObject("Range(QVariant, QVariant)", P);
cellA->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i,0)->text()));//设置单元格的值
cellB->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 1)->text()));
cellC->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 2)->text()));
cellD->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 3)->text()));
cellE->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 4)->text()));
cellF->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 5)->text()));
cellG->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 6)->text()));
cellH->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 7)->text()));
cellI->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 8)->text()));
cellJ->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 9)->text()));
cellK->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 10)->text()));
cellL->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 11)->text()));
cellM->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 12)->text()));
cellN->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 13)->text()));
cellO->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 14)->text()));
cellP->dynamicCall("SetValue(const QVariant&)", QVariant(m_pDeployedListTableWgt->item(i, 15)->text()));
}
//关闭excel
workbook->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(filepath));//保存至filepath,注意一定要用QDir::toNativeSeparators将路径中的"/"转换为"\",不然一定保存不了。
workbook->dynamicCall("Close()");//关闭工作簿
excel->dynamicCall("Quit()");//关闭excel
delete excel;
excel = NULL;
}```
ヾ( ̄▽ ̄)Bye~Bye~