admin管理员组

文章数量:1531909

2024年6月18日发(作者:)

将excel文件转换成foxpro数据库文件

陆鹰、毕爱玲

作为常用的应用软件,excel不仅为我们提供了强大的统计计算功能,而且还提供了丰

富的文件格式转换功能,我们可以将excel电子表格文件转换成查询、统计、数据管理功

能更为强大的foxpro数据库文件。然而仅仅简单地按照excel软件的菜单和窗口中的提示

来进行转换,常常会造成转换后的大量数据丢失甚至无法在foxpro中使用的现象,在对多

列、多行数据较长的大数据量的excel文件(需要用数据库管理的数据常常如此)进行转

换时此问题尤为突出。笔者经过多次实践,发现将excel电子表格文件转换成foxpro数据

库文件而不丢失数据有规律可循。

excel电子表格文件与foxpro数据库文件转换前后的对应关系

excel电子表格文件中的第一行数据形成转换后的foxpro数据库文件的字段名,第二

行到最后一行形成foxpro数据库文件的全部记录,且数据库记录的顺序与电子表格文件的

行的顺序相同,即如果excel电子表格文件有n行,则转换后的foxpro数据库文件有n

-1条记录;excel电子表格文件的第2~n行对应着foxpro数据库文件的第1~n-1条

记录。与之相类似的是excel电子表格文件的列形成转换后的foxpro数据库文件的全部字

段项,并且一一对应。但excel文件列的排列顺序与foxpro数据库文件的字段的排列顺序

不一定完全相同。

对excel电子表格文件第一行的处理

excel电子表格文件中的第一行数据对转换后的foxpro数据库文件很重要。经笔者多

次实践发现,excel文件的每一列数据的宽度直接决定转换后的foxpro数据库文件的字段

长度。如果第一行的某列的字符宽度小于同一列后面其他行的数据宽度,则会造成转换后

的foxpro数据库文件对应该字段的数据不完整或丢失。因此,为了保证转换后数据的完整

性,对excel电子表格文件中的第一行数据进行适当的处理是必要的,可采用插入一定宽

度的字符(必须是foxpro数据库文件允许作为字段名的字符,最好用英文字母)使该栏内

的数据的字符长度等于或大于该列数据的最大宽度。最后,在完成转换后将数据库的字段

名称修改成所需的名称。

对excel电子表格文件列数据的处理

由于excel电子表格文件的列形成转换后的foxpro数据库文件的全部字段项,并且一

一对应,所以在转换过程中,excel会根据某一列前几行数据的类型来决定该列数据对应的

foxpro数据库文件的字段类型。如果某一列前几行数据均为数字而后面的行中还有其他类

型的字符,excel则将其转换成foxpro数据库文件的数值型字段,而将后面的含有其他字

符的数据不予转换赋予空值,造成数据丢失。解决的方法就是对excel电子表格文件中该

列的第二行数据前插入一字符(一般插入任意一英文字母)即可解决,在完成转换后再将

数据库的对应字段第一条记录改回原来的数据即可。

如果某一列前几行数据为只有年月的时间数据,excel则自动将其转换成foxpro数据

库文件的日期型字段,且自动为该时间数据加上1日作为完整的日期字段值。如某excel

电子表格文件中的第一行某列数据为‘1970年8月’,经转换成foxpro数据库文件的日

期型字段后变成‘70-08-01’(因foxpro系统的时间类型设置的不同形式可能有所不

同)。而通常由于foxpro数据库文件的日期型字段对数据的完整性要求,录入的数据必须

年月日全部录入方为有效,所以通常在foxpro数据库文件中对时间数据按字符型字段设置

属性。因此,为了保证转换后数据的准确性,也需对该列数据进行适当的处理,具体方法

本文标签: 文件数据数据库转换字段