Qt C++实现Excel表格的公式计算

news/2025/1/12 23:41:09/

用Qt的QTableView+QStandardItemModel+QStyledItemDelegate实现类似Excel表格的界面,在parser 模块中提供解析表格单元格输入的公式。单元格编辑结束后按回车进行计算和更新显示。

效果如下:

 

支持的公式计算可以深度嵌套,目前parser模块中仅提供了+-*/^运算和类似Excel的sum, power函数,其他需要的函数可以自行参考现有的设计去添加,在现有的设计下添加起来也非常容易。

当前parser基于Qt的数据结构设计,如果要改为纯c++的数据结构实现,将对应的Qt数据结构如QMap替换成std::map即可。

parser提供了较为强大的公式解析能力,因此支持用户任意的公式嵌套调用。

输入:=1+A1/2+sum(1,1,sum(A1,2,power(A1,3)))/power(A2,2)

回车执行计算。

源码干货:

链接:https://pan.baidu.com/s/1mU9NbWsTBEJkR6pqI7Fj9A?pwd=8z93 
提取码:8z93


http://www.ppmy.cn/news/990185.html

相关文章

lucene、solr、es的区别以及应用场景

目录 1. Lucene:2. Solr:3. Elasticsearch: Lucene、Solr 和 Elasticsearch(ES) 都是基于 Lucene 引擎的搜索引擎,它们之间有相似之处,但也有一些不同之处。 Lucene 是一个低级别的搜索引擎库,它提供了一种用于创建和维护全文索引的 API&…

电脑重启后VScode快捷方式失效,找不到Code.exe

问题描述 下班回家关了部分程序就直接关机了,回家后重启电脑发现vscode的快捷方式就失效了,提示Code.exe已被移动或删除。 解决方法 查看你的vscode安装目录,Microsoft VS Code目录下大概率会存在一个名为_的文件夹,然后会发现…

数据结构:树的存储结构

学习树之前,我们已经了解了二叉树的顺序存储和链式存储,哪么我们如何来存储普通型的树结构的数据?如下图1: 如图1所示,这是一颗普通的树,我们要如何来存储呢?通常,存储这种树结构的数…

WPF实战学习笔记29-登录数据绑定,编写登录服务

添加登录绑定字段、命令、方法 修改对象:Mytodo.ViewModels.ViewModels using Mytodo.Service; using Prism.Commands; using Prism.Events; using Prism.Mvvm; using Prism.Services.Dialogs; using System; using System.CodeDom.Compiler; using System.Collec…

重新理解RocketMQ Commit Log存储协议

最近突然感觉:很多软件、硬件在设计上是有root reason的,不是by desgin如此,而是解决了那时、那个场景的那个需求。一旦了解后,就会感觉在和设计者对话,了解他们的思路,学习他们的方法,思维同屏…

C# XML 的读写以及和JSON对比

通过我们进行跨平台传输,我们需要把某一个平台特有的数据类型转化为一种通用的数据类型序列化和反序列化 通用形式有两种: 《1》JSON:是一种以键值形式组成 《2》XML:可扩展标记语言 XML文件格式要求: 《1》头部需要有…

Android 设备兼容性使用详解

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、设备兼容性分类二、硬件设备兼容三、软件 APP 兼容四、兼容不同语言五、兼容不同分辨率六、兼容不同屏幕方向布局七、兼容不同硬件 Feature八、兼容…

MySQL的JSON操作

官网地址 1. MySQL json介绍 As of MySQL 5.7.8, MySQL supports a native JSON data type defined by RFC 7159 that enables efficient access to data in JSON (JavaScript Object Notation) documents. Automatic validation of JSON documents stored in JSON columns. …