QT操作Excel
来源:互联网 发布:plsql数据库建表 编辑:程序博客网 时间:2024/06/05 08:57
利用QT操作Excel,其实只是想总结一下Excel早Qt中的用处,因为最近的项目正好在用到Excel,自己也是摸索了好久。
QFileInfo fileinfo(g_strSystemPath,"Cmaintetance.xls"); bool p1= fileinfo.exists(); if(p1) { ; } else { filename= QFileDialog::getSaveFileName(this, "保存", g_strSystemPath, "Excel 文件(*.xls *.xlsx)"); } if (filename!="") { qDebug()<<"coming excel"; QAxObject *excel = new QAxObject; if (excel->setControl("Excel.Application")) //连接Excel控件 { excel->dynamicCall("SetVisible (bool Visible)","false");//不显示窗体 excel->setProperty("DisplayAlerts", false);//不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示 QAxObject *workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合 workbooks->dynamicCall("Add()");//新建一个工作簿 QAxObject *workbook = excel->querySubObject("ActiveWorkBook");//获取当前工作簿 QAxObject *worksheet = workbook->querySubObject("Worksheets(int)", 1);//* sheet1的数据 QAxObject *cell11 = worksheet->querySubObject("Cells(int,int)", 1, 1); cell11->setProperty("Value", "仪器名称"); //设置单元格值 cell11->setProperty("RowHeight", 20); //设置单元格行高 cell11->setProperty("ColumnWidth", 10); //设置单元格列宽 cell11->setProperty("WrapText", true); //内容过多,自动换行 QAxObject *cell12 = worksheet->querySubObject("Cells(int,int)", 1, 2); cell12->setProperty("Value", "核酸"); //设置单元格值 cell12->setProperty("RowHeight", 20); //设置单元格行高 cell12->setProperty("ColumnWidth", 15); //设置单元格列宽 QAxObject *cell13 = worksheet->querySubObject("Cells(int,int)", 1, 3); cell13->setProperty("ColumnWidth", 15); //设置单元格列宽 QString merge_cell; merge_cell.append(QChar(2 - 1 + 'A')); //初始列 merge_cell.append(QString::number(1)); //初始行 merge_cell.append(":"); merge_cell.append(QChar(3 - 1 + 'A')); //终止列 merge_cell.append(QString::number(1)); //终止行 QAxObject *merge_range = worksheet->querySubObject("Range(const QString&)", merge_cell); merge_range->setProperty("MergeCells", true); //合并单元格
workbook->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(filename));//保存至fileName workbook->dynamicCall("Close()");//关闭工作簿 excel->dynamicCall("Quit()");//关闭excel delete excel; excel=NULL; if (QMessageBox::question(NULL,"完成","文件已经导出,是否现在打开?",QMessageBox::Yes|QMessageBox::No)==QMessageBox::Yes) { QDesktopServices::openUrl(QUrl("file:///" + QDir::toNativeSeparators(filename))); } } else { QMessageBox::warning(NULL,"错误","未能创建 Excel 对象,请安装 Microsoft Excel。",QMessageBox::Apply); } }
这个应该是一个可以使用的Excel例子,可以读取,可以写入,还可以设置Excel的单元格设置,Excel的设置是根据Microsoft Excel的VBA来设置的。
阅读全文
0 0
- QT操作Excel
- Qt操作excel类
- Qt操作excel
- QT EXCEL 操作
- QT操作Excel
- QT操作Excel
- QT操作Excel 二
- Qt操作excel
- Qt操作excel
- Qt操作excel
- QT 操作excel
- Qt之操作Excel
- Qt操作Excel文件
- Qt批量操作Excel
- Qt之操作Excel
- Qt之操作Excel
- QT 操作excel
- Qt QAxObject 操作Excel
- iOS静态库(配置二)
- OpenCV学习笔记
- 编程学习公众号
- 转载文章1
- JAVA多线程同步详解
- QT操作Excel
- 累加和校验函数
- Rancher upgrade webhook之CI/CD
- 用TCP/TP进行网际互连(5) ———— 多进程和多线程实现服务器端的并发处理
- Spring 装配Bean的几种方式
- Cordova使用实例cordova-plugin-app-version取app版本号
- c语言实现二叉树的插入、查找、删除、打印树
- java-exe-finished-with-non-zero-exit-value-1
- SQL 数据类型