qt通过QAxObject操作word插入表格及数据,图片生成文档

简单示例–图片路径–文件路径替换,表格文字我都换了,,样式还有待提高

		/*直接操作word文档,插入表格,字段,图片等*/
		QString HeadPath = HeadFilePath + "/" + insdata.RPolitName +"--"+ QDateTime::currentDateTime().toString("yyyy-MM-dd") +".docx";
		//创建word文档
		QAxObject* pWordWidget = new QAxObject();
		bool flag = pWordWidget->setControl("Word.Application");//初始化COM对象, 新建一个word应用程序
		if (!flag)
		{
   
			flag = pWordWidget->setControl("kwps.Application");//尝试用wps打开
			if (!flag)
				return;
		}
		pWordWidget->setProperty("Visible", false);//设置为可见, false则不会在界面打开显示
		QAxObject* pDocuments = pWordWidget->querySubObject("Documents");//获取所有的工作文档(返回一个指向QAxObject包含的COM对象)
		if (!pDocuments)
			return;

		QAxObject* pDocument = pDocuments->querySubObject("Add()");
		//先创建一个文档
		QAxObject* pActiveDocument = pWordWidget->querySubObject("ActiveDocument");//获取当前激活的文档
		//插入文字
		QAxObject* pSelection = pWordWidget->querySubObject("Selection"); //设置排版方式
		//QAxObject* pSelection = pDocument->querySubObject("Range"); //Selection
		if (!pSelection)
			return;
		pSelection->querySubObject("PageSetup")->setProperty("Orientation", "wdOrientPortrait");
		pSelection->dynamicCall("setStyle(WdBuiltinStyle)", "wdStyleTitle");//设置标题
		pSelection->querySubObject("Font")->setProperty("Name", ("宋体"));//设置字体
		pSelection->querySubObject("Font")->setProperty("Size", 20);//设置字体大小
		pSelection->dynamicCall("TypeText(const QString&)", ("222222222"));
		pSelection->dynamicCall("InsertAfter(const QString&)", "\n");
		pSelection->dynamicCall("TypeParagraph(void)");//插入回车

		//第一项 222222222
		pSelection->dynamicCall("setStyle(WdBuiltinStyle)", "wdStyleHeading1");//设置标题1
		pSelection->querySubObject("Font")->setProperty("Name", ("宋体"));//设置字体
		pSelection->querySubObject("Font")->setProperty("Size", 16);//设置字体大小
		pSelection->dynamicCall("TypeText(const QString&)", ("1.222222222"));
		pSelection->dynamicCall("TypeParagraph(void)");//插入回车
		/*插入表格**************************************以下飞行基本信息表格********************************************************/
		//222222222
		pSelection->dynamicCall("setStyle(WdBuiltinStyle)", "wdAlignParagraphCenter");//居中
		pSelection->querySubObject("Font")->setProperty("Name", ("宋体"));//设置字体
		pSelection->querySubObject("Font")->setProperty("Size", 14);//设置字体大小
		pSelection->dynamicCall("TypeText(const QString&)", +(" 222222222: "));
		pSelection->dynamicCall("TypeParagraph(void)");//插入回车
		//插入表格
		QAxObject* pRangef = pSelection->querySubObject("Range");
		QAxObject* pTablefs = pActiveDocument->querySubObject("Tables");
		QAxObject* pTablef = pTablefs->querySubObject("Add(QVariant, int, int)", pRangef->asVariant(), 12, 2); //map.size 行,2列
		pTablef->setProperty("Style", "网格型");
		pTablef->dynamicCall("AutoFitBehavior(WdAutoFitBehavior)", 2);//表格自动拉伸 0固定 1根据内容调整 2根据窗口调整
		pTablef->setProperty("VerticalAlignment", 1);//上下居中
		//设置格式
		int rows = 0;
		int nColumn = 0;
		for (rows < 12; rows++;)
		{
   
			for (nColumn < 2; nColumn++;)
			{
   
				pTablef->querySubObject("Cell(Long, Long)", rows + 1, nColumn)->querySubObject("Range")
					->querySubObject("ParagraphFormat")
					->dynamicCall("Alignment", "wdAlignParagraphCenter");//居中
				pTablef->querySubObject("Cell(Long, Long)", rows + 1, nColumn)->querySubObject("Range")
					->querySubObject("Font")
					->setProperty("Color"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值