VS+qt---Excel、word读写操作

1、UI设计。

2、四个按钮的槽函数实现如下:
(1)Excel写入槽函数:

void WandE::on_pushButton()//Excel写入
{
	//创建一个Excel应用程序进程
	QAxObject *myexcel = new QAxObject("Excel.Application");

	//隐藏不显示文档窗体
	myexcel->dynamicCall("SetVisible(bool Visible)", "false");
	//屏蔽文档的警告消息框
	myexcel->setProperty("DisplayAlerts", false); 

	//获取工作薄集
	QAxObject *myworks = myexcel->querySubObject("WorkBooks");  
	//添加工作薄
	myworks->dynamicCall("Add");                     
	//获取当前活动工作薄
	QAxObject *mywork = myexcel->querySubObject("ActiveWorkBook"); 
	//获取电子表格集
	QAxObject *mysheets = mywork->querySubObject("Sheets");

	//添加一个表
	mysheets->dynamicCall("Add"); 
	//指向当前的活动表格
	QAxObject *sheet = mywork->querySubObject("ActiveSheet");
	//给表格命名
	sheet->setProperty("Name", "表格1号");       
	//指向C3单元格
	QAxObject *cell = sheet->querySubObject("Range (QVariant, QVariant) ", "C3"); 
	
	//从lineEdit控件获得数据
	QString  inStr = ui.lineEdit->text();    
	//向单元格写入内容
	cell->dynamicCall("SetValue(const QVariant&)", QVariant(inStr)); 

	mywork->dynamicCall("SaveAs(const QString&) ", QDir::toNativeSeparators("F:/work/we.xls"));
	mywork->dynamicCall("Close()"); //关闭
	myexcel->dynamicCall("Quit()");  //退出
}

(2)Excel读出槽函数:

void WandE::on_pushButton_2()//Excel读出
{
	QAxObject *myexcel = new QAxObject("Excel.Application");
	QAxObject *myworks = myexcel->querySubObject("WorkBooks");
	//QAxObject *mywork = myexcel->querySubObject("ActiveWorkBook");
	
	//打开文件
	//QAxObject *mywork = myworks->querySubObject("Open(QString, QVariant)", QDir::currentPath() + "/IMEI.xls"); 
	QAxObject *mywork = myworks->querySubObject("Open(QString, QVariant)", QString("F:/work/work1.xlsx"));

	//访问第一个工作表
	QAxObject * mysheet = mywork->querySubObject("WorkSheets(int)", 1); 
	QString Range = "A1:B2";
	//读取范围
	QAxObject *allEnvData = mysheet->querySubObject("Range(QString)", Range); 
	QVariant allEnvDataQVariant = allEnvData->property("Value");
	QVariantList allEnvDataList = allEnvDataQVariant.toList();
	QVariantList allEnvDataList_i = allEnvDataList[0].toList();
	QString data11 = allEnvDataList_i[0].toString(); //第i行第0列的数据
	QString data12 = allEnvDataList_i[1].toString();
	data11 = data11 + data12;

	ui.lineEdit_2->setText(data11);

	mywork->dynamicCall("Close()");
	myexcel->dynamicCall("Quit()");
}

(3) word写入槽函数:

void WandE::on_pushButton_3()//word写入
{
	QAxObject *myword = new QAxObject("Word.Application");
	myword->setProperty("Visible", false);
	QAxObject *mydocs=myword->querySubObject("Documents");
	mydocs->dynamicCall("Add(void)");
	QAxObject *mydoc = myword->querySubObject("ActiveDocument");

	QString str = ui.lineEdit_3->text();
	QAxObject *selection = myword->querySubObject("Selection");
	selection->dynamicCall("TypeText(const QString&)", str);

	mydoc->dynamicCall("SaveAs(const QString&) ", "F:/work/word1.doc");

	mydoc->dynamicCall("Close()");
	myword->dynamicCall("Quit()");
	delete myword;
}

(4) word读出槽函数实现:

void WandE::on_pushButton_4()//word读出
{
	QAxObject *myword = new QAxObject("Word.Application");
	myword->setProperty("Visible", false);
	QAxObject *mydocs = myword->querySubObject("Documents");
	mydocs->dynamicCall("Open(const QVariant&)", "F:/work/word2.doc");
	QAxObject *mydoc = myword->querySubObject("ActiveDocument");

	QAxObject *selection = mydoc->querySubObject("Range()");
	//然后获取选中的word文档内容
	QString str = selection->property("Text").toString();

	ui.lineEdit_4->setText(str);

	mydoc->dynamicCall("Close()");
	myword->dynamicCall("Quit()");
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值