Qt excel操作相关
#include <QDebug>
#include <QAxObject>
#include <QStandardPaths>
#include <QFileDialog>
#include <QVariant>
#include <QCoreApplication>
QAxObject *pApplication = NULL;
QAxObject *pWorkBooks = NULL;
QAxObject *pWorkBook = NULL;
QAxObject *pSheets = NULL;
QAxObject *pSheet = NULL;
ExcelImfo excel;
//初始化相关指针
void ExcelImfo::initExcelConfig()
{
pApplication = new QAxObject;
pWorkBooks = new QAxObject;
pWorkBook = new QAxObject;
pSheets = new QAxObject;
pSheet = new QAxObject;
}
//新建excel
void ExcelImfo::newExcel(QString &fileName)
{
pApplication->setControl("Excel.Application");
pApplication->setProperty("Visible", false); //不显示任何警告信息
pApplication->dynamicCall("SetVisible(bool)",false); //不显示窗体
pWorkBooks = pApplication->querySubObject("WorkBooks"); //获取工作簿集合
QFile file(fileName);
if(!file.exists())
{
pWorkBooks->dynamicCall("Add");
pWorkBook = pApplication->querySubObject("ActiveWorkBook");
#ifdef EXCEL_WORK_DEBUG
qDebug()<<"创建新文件"<<"printerData.xls";
#endif
}
else
{
pWorkBook = pWorkBooks->querySubObject("Open(const QString &)", fileName);
#ifdef EXCEL_WORK_DEBUG
qDebug()<<"打开文件"<<"printerData.xls";
#endif
}
pSheets = pWorkBook->querySubObject("Sheets");
pSheet = pSheets->querySubObject("Item(int)", 1);
}
//2.增加1个Worksheet
void ExcelImfo::appendSheet(const QString &sheetName,int cnt)
{
QAxObject *pLastSheet = pSheets->querySubObject("Item(int)", cnt);
pSheets->querySubObject("Add(QVariant)", pLastSheet->asVariant());
pSheet = pSheets->querySubObject("Item(int)", cnt);
pLastSheet->dynamicCall("Move(QVariant)", pSheet->asVariant());
pSheet->setProperty("Name", sheetName);
}
//3.向Excel单元格中写入数据
void ExcelImfo::setCellValue(int row, int column, const QString &value)
{
QAxObject *pRange = pSheet->querySubObject("Cells(int,int)", row, column);
pRange->dynamicCall("Value", value);
}
//5.保存Excel
void ExcelImfo::saveExcel(const QString &fileName)
{
pWorkBook->dynamicCall("SaveAs(const QString &)",
QDir::toNativeSeparators(fileName));
}
//6.释放Excel
void ExcelImfo::freeExcel()
{
if (pApplication != NULL)
{
pApplication->dynamicCall("Quit()");
delete pApplication;
pApplication = NULL;
}
}
Qt excel操作相关的更多相关文章
- Qt ------ excel 操作
写 excel // step1:连接控件 QAxObject* excel = new QAxObject(this); excel->setControl("Excel.Appli ...
- MFC -- Excel操作简介(基于VS2010)
一.添加与 Excel 操作相关的头文件 项目 -> 类向导,在右上方有一个下拉栏,选择其中的 类型库中的MFC类(T),即可看到下图所示界面,选择“文件”选项,然后在下方的位置选项中添加本地文 ...
- python中的excel操作
一. Excel在python中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到.测试的时候就从数据库中读取出来.这点是非常重要的! 存测试结果 二. Excel中 ...
- Qt QAxObject操作excel文件过程总结(转):
正好同事问道Qt下操作excel. 转自:http://blog.csdn.net/a156392343/article/details/48092515 配制方面: 1.确保Excel软件在本地服务 ...
- Qt之操作Excel
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件. ...
- Qt之excel 操作使用说明
学习背景: 适合熟悉些qt开发,但是不是深入了解的开发者学习.具体实现(qt 5.1版本),office2007 Excel做验证,Win 7(64位),如有讲解有误,欢迎斧正! 一.简单介绍 QAx ...
- C# 对 Excel 的相关操作
C# 对Excel的操作 学习自: 教练辅导 C# 对Excel的读取操作 我们需要额外添加引用: References 搜索Excel 这样我们的基础就添加完成了. 并且在using 中添加: us ...
- PyQt(Python+Qt)学习随笔:QTableWidgetItem项操作相关的flags、isSelected、checkState方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget中项操作相关的属性包括是否可用.是否可选中.是否可编辑.是否可复选.是否选中 ...
- Delphi Excel 操作大全
Delphi Excel 操作大全 (一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObj ...
- Excel报表开发(本节主要讲述导出到Excel操作)
一.Excel导入到GridView以及数据库操作比较简单,这儿不做过多讲解,需要注意的有二点: 1.设置IMEX=1将强制混合数据转换为文本. 2.解决Excel驱动程序默认读取8行:将" ...
随机推荐
- docker 安装 jFrog
docker run --name artifactory-oss-6.18.1 -d -p 8083:8081 docker.bintray.io/jfrog/artifactory-oss:6.1 ...
- EveryCircuit_v2.15汉化破解版apk下载
安卓手机扫码下载 大小 6.44M EveryCircuit(电子电路模拟器)是一个专为电子信息技术专业的人士所打造的软件,它能够让你轻松的了解到电子电路究竟是如何进行工作的. 下载地址:https ...
- VUE学习-自定义指令
自定义指令 有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令. <div id="directive-demo"> <input ...
- redis 单节点迁移到集群 redis-shake
1.迁移 1.1.同步到单节点 redis-shake下载 release-v2.1.2-20220329.tar.gz #redis cluster 某一个节点 服务器安装redis-shak ...
- 使用svg让页面自适应浏览器大小,整体等比缩放
网页代码: <!DOCTYPE html> <html> <head> <style> body { margin:0; padding:0; widt ...
- gcc_to_use
gcc 目录 gcc 概要 基本指令及功能(以gcc为例) gcc -gdb gcc -cmake 概要 GCC:GNU Compiler Collection(GUN 编译器集合),是GNU项目中符 ...
- 基于北斗gps设计的NTP网络时间服务器
基于北斗gps设计的NTP网络时间服务器 基于北斗gps设计的NTP网络时间服务器 京准电子科技官微--ahjzsz 随着5G等新型基础设施持续建设和发展,在未来万物互联的庞大信息网络中,跨路由节点之 ...
- Java集合-练习巩固
练习一 public class H1_Test { public static void main(String[] args) { H1_News h1News = new H1_News(&qu ...
- 【Linux】从零开始学Linux -01
总结自<鸟哥的linux私房菜> BIOS与BootLoader 一般而言,对于嵌入式系统,BootLoader是写在flash上,开机运行的最底层的引导软件,初始化主板的基本设置,为接收 ...
- SpringBoot + Quartz 集成
Quartz 应用启动加载集群配置 @Bean 注解交由 Spring BeanFactory 容器管理 @Bean public JobDetailFactoryBean testJobDetail ...