目录

前言

一、通过excel 添加数据源访问openGauss

1、查看Excel版本

2、下载 ODBC驱动

3、安装ODBC驱动

4、添加ODBC数据源

5、在excel中添加数据源(访问openGauss)

二、通过excel 的VBA(宏)访问openGauss

1、宏权限设置

2、添加“开发工具”

3、创建按钮事件,访问openGauss

4、附代码说明(Vba)

三、Excel 访问openGauss数据库 应用场景举例


前言

互联网是个快节奏的时代,不懂得运用工具,将时间浪费在琐碎的事务中,将会极大的影响工作效率。 例如我们在工作中处理表格和数据时会经常用到Excel。基于此,本文将简单介绍一下Excel 连接openGauss数据库的两种方式,欢迎交流。

通过excel 添加数据源访问openGauss

1、查看Excel版本

打开Excel程序, 文件——账户——关于excel,如截图。

2、下载 ODBC驱动

用户可以在华为云管理控制台下载GaussDB(DWS) 提供ODBC驱动程序也可以使用开源的ODBC驱动程序

  1. 登录华为云管理控制台——在控制台左边列表,单机服务列表——大数据——数据仓库服务GaussDB(DWS)
  2. 在左侧导航栏中,单击“连接管理”。

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: 一款高性能、高安全、高可靠的企业级开源关系型数据库。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐