EXCEL连接openGauss实操

225 阅读4分钟

前言

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

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

1、查看Excel版本

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

20230322-556d6216-a593-4d06-82e4-fb422af11547_.png

2、下载 ODBC驱动

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

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

3)在“下载驱动程序”区域,选择一个驱动下载。

20230322-2ac2baaf-4888-43dd-908d-bf3e144b61ec_.png

**ODBC驱动:**选择相应的版本,然后单击“下载”可以下载与集群版本匹配的ODBC驱动。单击“历史版本”可根据操作系统和集群版本下载相应版本的ODBC驱动,建议按集群版本进行下载。

本次测试下载的是 “Microsoft Windows x86_64”驱动,其支持在以下系统中使用:

  • Windows 7及以上。
  • Windows Server 2008及以上。

**特别说明:**Windows驱动只支持32位版本,可以在32或64位操作系统使用,但是应用程序必须为32位。

3、安装ODBC驱动

将下载的ODBC驱动解压,选则32位的进行安装。

20230322-1fa6d615-e5d4-4085-868c-2d5c98cd6852_.png

20230322-b0e1ac35-2280-43be-bcf2-bbe9e8916385_.png

**安装过程:**以管理员身份运行,然后一路点“Next”,直到 Finish 即可。

20230322-6261d32c-d158-47d9-9443-2d1aab23c442_.png

4、添加ODBC数据源

**依次打开:**控制面板-管理工具-ODBC Data Sources (32-bit)。

20230322-c0b60328-0e68-4f6d-a701-fac4c40c5035_.png

点击右边的添加按钮,找到 PostgreSQL Unicode,双击,填写连接信息(如下截图),点击Test。

20230322-c83272af-1bd1-400c-b463-1066af47c541_.png

提示成功后,点击保存(Save)。

20230322-da73c999-fddf-40c1-b36a-80d41e9d4be0_.png

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

**依次点击:**数据——其他来源——来自数据连接向导。

20230322-56793aca-044e-4d29-aa4a-73dad02ba1c4_.png 选择“ODBC DSN”

20230322-9159ac23-2f1d-44c4-aaad-6f8b287ab22f_.png

选择数据库和表

20230322-21acbdda-b5a2-4acf-a517-417c2b621129_.png

20230322-f4c36969-ed1e-4237-9603-30304495946f_.png

点“完成”,进到导入数据界面

20230322-9339eb71-fedf-4970-9b86-fe32a1a9ca12_.png 点“属性” 按钮,进入“使用状况”选项卡,可设置数据刷新的规则。

20230322-db5e078c-4417-4cf7-ab85-6d74061f82cd_.png

进入“定义”选项卡,可进行编辑,获取相应的数据:

20230322-e4374b02-e53e-47f2-8744-012b35f10ada_.png

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

1、宏权限设置

打开excel 程序, 进入文件——选项——信任中心——信任中心设置:

  • 起启用所有宏
  • 信任对VBA工程对象模型的访问

20230322-ab9dc13b-6f1f-468a-a6f1-5c8879c67aef_.png

2、添加“开发工具”

打开excel 程序, 进入文件——选项——自定义功能区

选择“开发工具” 打√。

20230322-e821ba00-5b84-4ff2-a5d7-ba0ab2ad4372_.png 3、创建按钮事件,访问openGauss

添加“连接openGauss” 按钮,通过如下截图过程进入宏的编辑界面:

20230322-d3725d67-cc4e-4a1d-ba0e-a8be2954eaa9_.png

20230322-ed31ed5f-ccc8-45de-b392-1cc659e1b336_.png

20230322-f95ee415-f29a-48ba-a232-b6fd3d6aa88c_.png

编写Vba脚本,访问openGauss数据库:

20230322-25348228-a54f-4d13-827c-0353a535f60f_.png

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、实现自动化业务报表展示等。