目录
前言
互联网是个快节奏的时代,不懂得运用工具,将时间浪费在琐碎的事务中,将会极大的影响工作效率。 例如我们在工作中处理表格和数据时会经常用到Excel。基于此,本文将简单介绍一下Excel 连接openGauss数据库的两种方式,欢迎交流。
一、通过excel 添加数据源访问openGauss
1、查看Excel版本
打开Excel程序, 文件——账户——关于excel,如截图。
2、下载 ODBC驱动
用户可以在华为云管理控制台下载GaussDB(DWS) 提供ODBC驱动程序(也可以使用开源的ODBC驱动程序)。
- 登录华为云管理控制台——在控制台左边列表,单机服务列表——大数据——数据仓库服务GaussDB(DWS)。
- 在左侧导航栏中,单击“连接管理”。
3)在“下载驱动程序”区域,选择一个驱动下载。
ODBC驱动:选择相应的版本,然后单击“下载”可以下载与集群版本匹配的ODBC驱动。单击“历史版本”可根据操作系统和集群版本下载相应版本的ODBC驱动,建议按集群版本进行下载。
本次测试下载的是 “Microsoft Windows x86_64”驱动,其支持在以下系统中使用:
- Windows 7及以上。
- Windows Server 2008及以上。
特别说明:Windows驱动只支持32位版本,可以在32或64位操作系统使用,但是应用程序必须为32位。
3、安装ODBC驱动
将下载的ODBC驱动解压,选则32位的进行安装。
安装过程:以管理员身份运行,然后一路点“Next”,直到 Finish 即可。
4、添加ODBC数据源
依次打开:控制面板-管理工具-ODBC Data Sources (32-bit)。
点击右边的添加按钮,找到 PostgreSQL Unicode,双击,填写连接信息(如下截图),点击Test。
提示成功后,点击保存(Save)。
5、在excel中添加数据源(访问openGauss)
依次点击:数据——其他来源——来自数据连接向导。
选择“ODBC DSN”
选择数据库和表
点“完成”,进到导入数据界面
点“属性” 按钮,进入“使用状况”选项卡,可设置数据刷新的规则。
进入“定义”选项卡,可进行编辑,获取相应的数据:
二、通过excel 的VBA(宏)访问openGauss
1、宏权限设置
打开excel 程序, 进入文件——选项——信任中心——信任中心设置:
- 起启用所有宏
- 信任对VBA工程对象模型的访问
2、添加“开发工具”
打开excel 程序, 进入文件——选项——自定义功能区
选择“开发工具” 打√。
3、创建按钮事件,访问openGauss
添加“连接openGauss” 按钮,通过如下截图过程进入宏的编辑界面:
编写Vba脚本,访问openGauss数据库:
4、附代码说明(Vba)
-
Sub 连接openGauss()
-
-
-
-
-
-
Dim cn As Object
'定义数据链接对象 ,保存连接数据库信息
-
-
Dim rs As Object
'定义记录集对象,保存数据表
-
-
-
-
Set cn =
CreateObject(
"ADODB.Connection")
'创建数据链接对象
-
-
Set rs =
CreateObject(
"ADODB.RecordSet")
'创建记录集对象,用于接收数据查询获得的结果集
-
-
-
-
Dim strCn As String
'字符串变量
-
-
Dim strSQL As String
'字符串变量
-
-
-
-
strCn =
"DSN=openGauss;DATABASE=postgres;SERVER=192.168.52.3;PORT=26000;UID=omm2;SSLmode=disable;ReadOnly=0"
'定义数据库链接字符串
-
-
-
-
-
-
strSQL =
"SELECT id,name,age,address,salary FROM company1"
'设置SQL语句
-
-
-
-
cn.Open strCn
'打开连接
-
-
-
-
rs.Open strSQL, cn
'读取数据库中的数据
-
-
-
-
Dim i As Integer, sht As Worksheet
'i为整数变量;sht 为excel工作表对象变量,指向某一工作表
-
-
-
-
i =
1
-
-
-
-
Set sht = ThisWorkbook.Worksheets(
"Sheet2")
-
-
-
-
'循环读取数据并将数据显示到excel中
-
-
-
-
Do
While
Not rs.EOF
'当数据指针未移到记录集末尾时,循环下列操作
-
-
-
-
sht.Cells(i,
1) = rs(
"id")
'把当前记录的字段1的值保存到sheet1工作表的第i行第1列
-
-
-
-
sht.Cells(i,
2) = rs(
"name")
'把当前字段2的值保存到sheet1工作表的第i行第2列
-
-
-
-
sht.Cells(i,
3) = rs(
"age")
'把当前字段3的值保存到sheet1工作表的第i行第3列
-
-
-
-
sht.Cells(i,
4) = rs(
"address")
'把当前字段4的值保存到sheet1工作表的第i行第4列
-
-
-
-
sht.Cells(i,
5) = rs(
"salary")
'把当前字段5的值保存到sheet1工作表的第i行第5列
-
-
-
-
rs.MoveNext
'把指针移向下一条记录
-
-
-
-
i = i +
1
'i加1,准备把下一记录相关字段的值保存到工作表的下一行
-
-
-
-
Loop
'循环
-
-
-
-
rs.Close
'关闭记录集,至此,程序将把某数据表的字段1和字段2保存在excel工作表sheet1的第1、2列,行数等于数据表的记录数
-
-
-
-
-
-
-
-
-
-
End
Sub
三、Excel 访问openGauss数据库 应用场景举例
1、实现自动化实时监控相关数据,例如:跑批作业状态表、某项实时数据阈值监测等。
2、实现自动化业务报表展示等。
openGauss: 一款高性能、高安全、高可靠的企业级开源关系型数据库。
转载:https://blog.csdn.net/GaussDB/article/details/128846832