Qt/C++学习系列之Excel使用记录

前言

在项目中解析条目达50多条,并且都需要将对应的结果进行显示。为了将结果显示的更加清晰,考虑采用QTableWidget进行表格设置,而在使用过程中遇到一些问题,进行简单的记录。


The process was ended forcefully.

在Excel中,简单的定义了两行表格,使用QStringList定义表格的表头,第二行中在一开始的使用过程中,没有使用QTableWidgetItem进行定义。在保存的时候,使用QAxObject进行数据的获取。

cpp 复制代码
QStringList str= QStringList()<< "序号"<< "输入";
  • str_cq是定义了一个QStringList,设置表头。
cpp 复制代码
QTableWidgetItem *columnHeader = new QTableWidgetItem(str_cq[col]);
  • QTableWidgetItem 是表示单元格的类,new QTableWidgetItem(str_cq[col]) 表示创建一个新的 QTableWidgetItem 对象,并用 str_cq[col] 的值初始化这个对象。
cpp 复制代码
QAxObject* danyuange3=sheet->querySubObject("Cells (int,int)", i, j);
  • QAxObject:表示 Qt 中用于访问 ActiveX 对象的类,这里用于操作 Excel 的单元格。
  • querySubObject 方法获取 Cells 对象的指针,Cells(int, int) 是 Excel 的方法,用于根据行和列索引获取单元格。i和j就是行和列的索引。 这里要注意:excel的行列是从1开始。

通过断点,一句一句跑,以及询问AI,得到一些提示。 在使用Qt以及Excel表格存储中会遇到的问题,我总结了关键点:

  • 软件问题:程序可能出现了严重错误,导致崩溃。可能是软件本身存在漏洞。
  • 系统资源不足:系统可能没有足够的内存或CPU资源供进程继续运行。
  • 用户中断:用户可能通过任务管理器等工具手动结束了进程。

解决方式

断点查语句

在感觉可能出现问题的地方进行断点检查,通过Debug的形式进行问题排查。

  • 模块化查询 例如:串口通讯是否有问题或解析是否有问题,通过大方向排除,来缩小范围。

  • 函数查询 在缩小范围后,可以检查函数的输入、输出是否正确;

  • 具体语句 确认某个函数后,进行逐句排查。

问题

确认问题,在读取单元格时,单元格没有初始化的数据,可能会造成读到数据无法写入。 因此在初始化单元格后,最好将列表设置的行列中都填入数据,放置出现未定义的空单元格的存储。

cpp 复制代码
QTableWidgetItem *emptyItem = new QTableWidgetItem("\\");

这里我在表格初始化就直接定义了"\"。


总结

本文仅仅简单介绍了在使用单元格时,保存出现的问题,同时把自己的解决思路也写进来,提供一些问题的解决思路。

相关推荐
sinat_267611913 天前
Trae AI 进行 Android 从0 到 1的一键开发
kotlin·android studio·trae
阆遤4 天前
利用TRAE对nanobot进行安全分析并优化
python·安全·ai·trae·nanobot
Molesidy5 天前
【VSCode】VSCode或者Trae的扩展文件夹以及用户设置文件夹的路径更改到指定位置
ide·编辑器·trae
yosh'joy!!5 天前
下载Trae使用
ai·trae
豆包MarsCode5 天前
只需一个指令,让 OpenClaw 安排 TRAE 干活
trae
sugar15695 天前
Trae快速构建自己项目的docker镜像
docker·容器·trae
sugar15696 天前
Trae 添加项目规则,快速完成crmeb项目本地开发环境搭建
docker·容器·trae
欧简墨6 天前
kotlin Android Extensions插件迁移到viewbinding总结
android·trae
arbboter7 天前
【AI编程】约束即设计:AI时代的人机边界重构
ai编程·ai工作流·人机协作·trae·声明式执行·流程编排
进击的雷神9 天前
Trae AI IDE 完全指南:从入门到精通
大数据·ide·人工智能·trae