从 Excel 表转移数据到 VFP 表的编程实现方法
高进龙,崔尚森,王文林 (长安大学,陕西 西安 710054) 摘 要:把整个一个 Excel 表数据转换为 VFP 表并不难,难就难在把 Excel 表中某些行某些
列的数据转移到已有数据的某个 VFP 表中,而且可能还会遇到两表间相应数据列的名称、数据类 型、排列顺序不同的问题。作者用 VFP 编程,轻松实现了这一数据转移工作。本文将就这一程序 的设计思想和实现方法做简要介绍。 关键词:Excel 表,VFP 表,转移数据,编程实现 作者简介:高进龙(1964-) ,男,陕西华阴市人,长安大学地测教务办公室主任,讲师。
一、问题的提出
VFP(Visual Foxpro)是一种关系型数据库
管理系统,其强大的数据处理能力及其面向对 象的编程能力,使其得到数据库应用程序开发 人员的广泛使用。 而 Excel 则是一个优秀的 电子表格处理软件,在兼容性、操作界面、公 式运算、图表表现等方面有着独到的优势,成 为广大办公应用人员
常用的工具。因为两种软 件各有短长,所以在实际应用 中常会遇到两者之间数据的 转移问题。 把 整 个 VFP 表 转 换 为 Excel 表或者把整个 Excel 表 转换为 VFP 表的工作,两种
软件都提供了相应的转换功 能,一般用户很容易操作。但 是把 Excel 表中部分数据转移 到已存在的 VFP 表中的情况 就要复杂得多。两种表的数据 转移可能存在以下三个方面 的问题:一是 Excel 表中可能 存在某些行的数据不需要或 不能被转移,需要转移或者可 以转移的仅是其中较规范的 某些行;二是 Excel 表并非所 有列的数据,而只是某些列的数据需要被转移 到 VFP 表的相应数据列中,两表中相应列的 名称和顺序可能不一致;三是 Excel 表中与 VFP 表对应数据列的数据类型可能不一致。 因
此,对业已存在的这两类数据表间数据转移工 作,用手工完成非常麻烦和费时。 在工作实践中,作者运用 VFP 编程驱动 Excel 的能力,设计完成了从 Excel 到 VFP 的 数据转移程序,成功地解决了这一
问题。
二、
设计思路
综合考虑上述三个问题,程序设计宜采用
图1 程序构件展示
的方法是把 Excel 表中数据按单元格逐一转移 到 VFP 表中,所以,需要完成下列三项任务: (1)建立 Excel 表中要转移数据的列与 VFP 表中要接受数据的字段之间一一对应的 关系,这项工作等于给两表之间的数据转移牵
线搭桥, 是非常关键的一项任务 (如图 2 所示) 。 (2)读取 Excel 表中要转移数据的起止 行行号,从横向上确定要转移数据的范围。 Excel 表中一行数据(也可能是一行中的某些 列)对应 VFP 表中的一条记录。 (3)转移数据时要处理两表中数据
类型 不一致的问题,以及数值型数据小数位数不一 致而必须考虑的数据四舍五入问题。
之间的关联关系。用户在操作此项功能前,先 要把 Excel 表和 VFP 表平铺在桌面上 (如图 1 所示) 并分别点击鼠标到要建立关联的 Excel , 表列和 VFP 表字段列中使其被选中,然后再 点击“XL—VFP 勾通”按钮,
程序便会自动 在关联数据表中增加一条记录,保存两表间数 据的关联关系,依次建立两表中所有数据项之 间的关联关系,所有操作均在图1展示的界面
XL 表 ……… ………
列
关联表 XL DBF 列
DBF 表 ……… ……….
图 2 Excel-VFP 数据转移示意图
图 3 Excel-VFP 关联表
在考虑上述三项任务的实现方法时,还要 考虑用户操作的便捷性,直观性。本程序的所 有操作对象都展现在图 1 所示的桌面上,所有 操作无需键盘输入,只需点击鼠标。
中完成,直观便捷。 上述方法建立的两表间关联关系存储在 一个磁盘数据表中,可以被多次重复使用。此 关联表的内容与结构用图 3 所示的表单展示给 用户,其右上角的“?”按钮提供一个功能菜 单帮助用户操作此表,如用户不再重用此表中 关联数据时可以清除其中记录。 当用户不需要查看关联表的内容时,图 3 所示表单可以减缩为一个命令按钮