Vba程序在水文年鉴刊印数据转换中的应用

2022-09-25

用Excel格式存储的水文资料成果具有表格形式多样、检索查询迅速、浏览打印方便快捷等诸多优点, 但在《水文年鉴》的刊印过程中, 印刷排版系统只能接受纯文本格式的数据文件, 因此年鉴刊印中将涉及水文资料成果由Excel格式到纯文本格式的转换工作。

从参加几年此项数据转换工作中, 自己逐渐摸索出利用Vba程序进行自动转换的方法, 实用性强、操作简单。

1 数据转换的思路

水文资料成果共分为水位、流量、泥沙、降雨等十几种表格文件。这些文件表格形式不一、项数不同, 因此转换前先按格式分类, 为不同格式的表格编制不同的转换程序, 相同格式的成果表使用同一程序。

1.1 单张表转换

首先利用vba程序建立一个用于保存数据的纯文本文件, 然后将Excel格式的水文数据成果文件打开, 找到相应的工作表, 读取表中的数据;利用输出命令将读出的成果数据按《中华人民共和国〈水文年鉴〉排版系统R1989-2003》要求的排版格式写入建好文本文件中, 成果数据全部存取结束后, 关闭Excel成果表和文本数据文件, 单张表转换结束。

1.2 多张表的连续转换

每一年的水文数据成果都由大量的Excel成果表 (簿) 组成, 如果每次只转换一张表, 其工作量也是很大的。因此应考虑多张表的连续自动转换。我们知道水文数据成果总共可以分成十几类成果表, 相同类别的成果表数据格式是基本相同的, 可以利用程序一次转换一种类型的成果表, 即省时又省力。

首先从河站名文件和测站一览表中读取含有某一项资料成果表的测站名称和测站站码, 按站码作为控制数据, 逐个成果表连续转换。

1.3 排版文本数据文件的形成

按《中华人民共和国〈水文年鉴〉排版系统R1989-2003》排版格式对文本文件的要求, 每一类成果形成一个文件。其顺序按流域水系从上游到下游, 也即测站一览表中的站序排列。

首先读取测站一览表中测站的顺序, 依站码读入单个文本数据文件, 连排拷贝, 最终形成排版系统要求的数据文件。

至此, 某一项目的水文资料成果数据转换结束。

2 数据转换程序举例

下面以转换逐日平均水位成果表为例说明日均值表类的转换过程。

程序中所用变量名可按规则自由确定, 路径名、单元格坐标由实际位置确定。

3 结语

随着水文信息化的不断发展, 应用计算机处理水文数据的工作将不断地加强和扩大。每一种应用软件在处理水文数据上都有某一方面的优势, 水文数据成果的存储格式也将多样化, 各种格式数据的应用和转换将时常遇到。本文就水文年鉴刊印过程中数据转换作一探讨, 希望能予同行有所裨益, 共同提高水文数据的处理工作。

摘要:水文资料整编成果多以Excel的表格方式存储, 在《水文年鉴》的刊印过程中, 印刷排版系统只接受纯文本格式的数据文件, 本文就两者之间的数据转换进行探讨, 并以Vba程序实例进行说明。

关键词:水文资料成果,Excel成果表,Vba程序,数据转换