vs+qt----生成word报表

1、UI设计。

 2、生成报表按钮的槽函数实现如下:

void OutWord::on_pushButton()
{
	QAxObject *myword = new QAxObject("Word.Application");
	myword->setProperty("Visible", false);
	QAxObject *mydocs = myword->querySubObject("Documents");
	mydocs->dynamicCall("Add(QString)", QString::fromLocal8Bit("F:/work/word2.dot"));
	QAxObject *mydoc = myword->querySubObject("ActiveDocument");

	QAxObject *bookmark_shebei = mydoc->querySubObject("Bookmarks(QVariant)", "shebei");
	if (!bookmark_shebei->isNull())
	{
		QString str_shebie = ui.lineEdit->text();
		bookmark_shebei->dynamicCall("Select(void)");                             //选中要选中的区域
		bookmark_shebei->querySubObject("Range")->setProperty("Text", str_shebie);
	}

	QAxObject *bookmark_wendu= mydoc->querySubObject("Bookmarks(QVariant)", "wendu");
	if (!bookmark_wendu->isNull())
	{
		QString str = ui.lineEdit_2->text();
		bookmark_wendu->dynamicCall("Select(void)");                             //选中要选中的区域
		bookmark_wendu->querySubObject("Range")->setProperty("Text", str);
	}

	QAxObject *bookmark_yiju = mydoc->querySubObject("Bookmarks(QVariant)", "yiju");
	if (!bookmark_yiju->isNull())
	{
		QString str = ui.lineEdit_3->text();
		bookmark_yiju->dynamicCall("Select(void)");                             //选中要选中的区域
		bookmark_yiju->querySubObject("Range")->setProperty("Text", str);
	}

	for (int i = 1;i < 4;i++)
	{
		QString s_xuhao = QString("xuhao%1").arg(i);
		qDebug() << s_xuhao;
		QString str = ui.tableWidget->item(i, 0)->text();
		QAxObject *bookmark = mydoc->querySubObject("Bookmarks(QVariant)", s_xuhao);
		bookmark->dynamicCall("Select(void)"); 
		bookmark->querySubObject("Range")->setProperty("Text", str);
	}

	for (int i = 1;i < 4;i++)
	{
		for (int j = 1;j < 4;j++)
		{
			QString s_csdata = QString("%1%2%3").arg("csdata").arg(i).arg(j);
			qDebug() << s_csdata;
			QString str = ui.tableWidget->item(i, j)->text();
			QAxObject *bookmark = mydoc->querySubObject("Bookmarks(QVariant)", s_csdata);
			bookmark->dynamicCall("Select(void)");
			bookmark->querySubObject("Range")->setProperty("Text", str);
		}
	}



	mydoc->dynamicCall("SaveAs(const QString&))", "F:/work/word1.doc");
	mydoc->dynamicCall("Close (boolean)", false);
	myword->dynamicCall("Quit()");
}

3、右侧QtableWidget组件的初始化函数如下:

void OutWord::InitUI()
{
	ui.tableWidget->setColumnCount(4);
	ui.tableWidget->setRowCount(4);

	QStringList qlist;
	qlist << QStringLiteral("序号") << QStringLiteral("测试数据1") << QStringLiteral("测试数据2") << QStringLiteral("测试数据3");
	ui.tableWidget->setHorizontalHeaderLabels(qlist);
	
	QTableWidgetItem *item_11 = new QTableWidgetItem("1");
	ui.tableWidget->setItem(1, 0, item_11);
	QTableWidgetItem *item_12 = new QTableWidgetItem("2");
	ui.tableWidget->setItem(2, 0, item_12);
	QTableWidgetItem *item_13 = new QTableWidgetItem("3");
	ui.tableWidget->setItem(3, 0, item_13);

	QTableWidgetItem *item_21 = new QTableWidgetItem("56");
	ui.tableWidget->setItem(1, 1, item_21);
	QTableWidgetItem *item_22 = new QTableWidgetItem("89");
	ui.tableWidget->setItem(2, 1, item_22);
	QTableWidgetItem *item_23 = new QTableWidgetItem("46");
	ui.tableWidget->setItem(3, 1, item_23);

	QTableWidgetItem *item_31 = new QTableWidgetItem("19");
	ui.tableWidget->setItem(1, 2, item_31);
	QTableWidgetItem *item_32 = new QTableWidgetItem("76");
	ui.tableWidget->setItem(2, 2, item_32);
	QTableWidgetItem *item_33 = new QTableWidgetItem("36");
	ui.tableWidget->setItem(3, 2, item_33);

	QTableWidgetItem *item_41 = new QTableWidgetItem("76");
	ui.tableWidget->setItem(1, 3, item_41);
	QTableWidgetItem *item_42 = new QTableWidgetItem("72");
	ui.tableWidget->setItem(2, 3, item_42);
	QTableWidgetItem *item_43 = new QTableWidgetItem("49");
	ui.tableWidget->setItem(3, 3, item_43);
}

4、运行效果

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
qt-vs-addin-1.2.4-opensource是一个开源的Qt集成开发环境插件。Qt是一种跨平台的应用程序开发框架,它允许开发者使用统一的代码库编写跨平台的应用程序。Qt提供了丰富的库和工具,使得开发者可以更方便地创建GUI应用程序、网络应用程序、嵌入式应用程序等。 而qt-vs-addin-1.2.4-opensource则是为了方便使用Visual Studio开发Qt应用程序而开发的插件。Visual Studio是一种常用的集成开发环境,它提供了强大的编辑器、调试器和其他开发工具。而通过qt-vs-addin-1.2.4-opensource插件,开发者可以在Visual Studio中直接使用Qt的功能,如自动生成Qt项目、添加Qt类、设计器支持等。 qt-vs-addin-1.2.4-opensource主要的特点包括: 1. 支持多个Visual Studio版本:这个插件可以与不同版本的Visual Studio(如2010、2012、2013等)兼容,方便开发者选择自己喜欢的开发环境。 2. 丰富的项目模板:插件提供了多种项目模板,包括Qt Widgets应用程序、Qt Quick应用程序等,可以帮助开发者快速创建项目并开始开发。 3. 代码自动补全:插件可以提供Qt类的代码自动补全功能,方便编写代码并减少出错。 4. 可视化设计器:插件还提供了可视化设计器,开发者可以通过拖放控件来快速设计界面。 5. 调试支持:插件可以与Visual Studio的调试器集成,方便开发者进行调试。 总体而言,qt-vs-addin-1.2.4-opensource是一个强大且易于使用的插件,它为开发者提供了更好的开发体验和效率,使得使用Qt开发跨平台应用程序更加便捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值