qt将tablewidget导出为excel

直接看下代码

	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~
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油吧,小杜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值