在WPS表格里制作连接到openGauss的实时刷新报表
前言
其实我的数据库启蒙,是在一家甲方公司。
当时一进这家公司,就见到了通过连接数据库自动刷新的excel表。当时学会了这招就一发不可收拾,制作出各种自动刷新的报表。
想象一下,有些高管不喜欢打开各种复杂的业务系统或者报表系统,一上班就直接打开桌面上的可刷新表格文件,就能看到昨日的报表数据以及今日的实时数据。
当年智能手机还未普及,没有移动端报表,每晚的值班经理需要查询当日数据编辑短信发送给高管,也是在电脑上用EXCEL直接刷出数据,而且提前在EXCEL里写好了公式,拼接成了短信文本内容,复制粘贴到飞信就把业绩短信发出去了,多少年来一直都是这么用的,只是后来改成了粘贴到微信发送。
在当时,这也算是极低成本的半自动化了,好不惬意!
当时连接的主要是Oracle数据库,现在突然想起,是不是我们的国产数据库也可以这样连接呢?
原理
其实原理很简单,就是在windows的odbc数据源中配置好对应的数据库连接,然后在excel或者wps表格中选择导入数据/odbc数据源,选择需要的表及字段,或者直接写个sql查询也行,就可以把数据返回到表格中。当数据库中的数据发生变化时,只需要在表格中点击刷新或者或者设置刷新频率即可
步骤
安装ODBC驱动
下载好后,解压,根据使用的wps或msoffice是64位还是32位版本,执行对应的安装程序(目测大多数人安装的都是32位版本),一路“next”就行了。
不知道自己安装的是32还是64位的,可以把程序打开,到任务管理器里找到对应的程序,会有显示
添加ODBC数据源
- 依次打开
控制面板-管理工具-ODBC Data Sources (32-bit) - 点击右边的添加按钮,找到 PostgreSQL Unicode,双击
- 然后填写连接信息,并点击Test
- 提示连接成功,确定,点击SAVE保存,会弹出安全提示,意思就是连接信息会保存在系统注册表里,不安全,问是否继续,点"是"(本篇不讨论安全问题,请自行斟酌)
- 然后就可以看到数据源里多了一个刚刚新建的数据源
在WPS中引用数据源
- 新建一个空白表格
- 点击 数据 - 导入数据,选择ODBC DSN
- 选择刚刚新建的数据源,确定,下一步
- 选择需要的表,并将需要的字段移到右边,点击下一步
- 选择手工输入连接语句,点击下一步
- 预览没有问题,点击完成
- 选择数据需要存放的开始单元格,点击确定
- 数据就放回到表格中了
验证数据刷新
- 在数据库中执行sql修改数据,比如让所有人的工资翻倍
update scott.emp set sal=sal*2 where 1=1;
windows端gsql下载 (支持sha256)https://obs.myhuaweicloud.com/dws/download/dws_8.1.x_gsql_for_windows.zip
2. 在表格数据区域点击鼠标右键,刷新数据
3. 可以看到数据都变更了
配置数据自动刷新
- 在表格数据区域点击鼠标右键,点击数据区域属性
- 设置刷新频率,并勾选打开文件时刷新数据
总结
本篇只举了个最简单的例子,实际上,新建多个查询,结合表格的公式,并调整表格的样式,是可以制作出相当精美的报表的,而且只用做一次,以后一直都能用,数据都是可以实时从数据库中获取的。
另外,以上操作在MSOFFICE中的EXCEL也是类似的,只是EXCEL还有个MSQUERY的程序,可以可视化编辑多表的关联关系,有兴趣的可以自己尝试一下。
作者:DarkAthena
openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于AbstractProcessor扩展MapStruct自动生成实体映射工具类
作者:京东物流 王北永 姚再毅 1 背景 日常开发过程中,尤其在DDD过程中,经常遇到VO/MODEL/PO等领域模型的相互转换。此时我们会一个字段一个字段进行set|get设置。要么使用工具类进行暴力的属性拷贝,在这个暴力属性拷贝过程中好的工具更能提高程序的运行效率,反之引起性能低下、隐藏细节设置OOM等极端情况出现。 2 现有技术 直接set|get方法:字段少时还好,当字段非常大时工作量巨大,重复操作,费时费力。 通过反射+内省的方式实现值映射实现:比如许多开源的apache-common、spring、hutool工具类都提供了此种实现工具。这种方法的缺点就是性能低、黑盒属性拷贝。不同工具类的处理又有区别:spring的属性拷贝会忽略类型转换但不报错、hutool会自动进行类型转、有些工具设置抛出异常等等。出现生产问题,定位比较困难。 mapstruct:使用前需要手动定义转换器接口,根据接口类注解和方法注解自动生成实现类,属性转换逻辑清晰,但是不同的领域对象转换还需要单独写一层转换接口或者添加一个转换方法。 3 扩展设计 3.1 mapstruct介绍 本扩展组件基于maps...
- 下一篇
感受Vue3的魔法力量
近半年有幸参与了一个创新项目,由于没有任何历史包袱,所以选择了Vue3技术栈,总体来说感受如下: • setup语法糖<script setup lang="ts">摆脱了书写声明式的代码,用起来很流畅,提升不少效率 • 可以通过Composition API(组合式API)封装可复用逻辑,将UI和逻辑分离,提高复用性,view层代码展示更清晰 • 和Vue3更搭配的状态管理库Pinia,少去了很多配置,使用起来更便捷 • 构建工具Vite,基于ESM和Rollup,省去本地开发时的编译步骤,但是build打包时还是会编译(考虑到兼容性) • 必备VSCode插件Volar,支持Vue3内置API的TS类型推断,但是不兼容Vue2,如果需要在Vue2和Vue3项目中切换,比较麻烦 当然也遇到一些问题,最典型的就是响应式相关的问题 响应式篇 本篇主要借助watch函数,理解ref、reactive等响应式数据/状态,有兴趣的同学可以查看Vue3源代码部分加深理解, watch数据源可以是ref (包括计算属性)、响应式对象、getter 函数、或多个数据源组成的数组 impo...
相关文章
文章评论
共有0条评论来说两句吧...