VF中正确导入EXCEL表的几种方法_第1页
VF中正确导入EXCEL表的几种方法_第2页
VF中正确导入EXCEL表的几种方法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VF中正确导入EXCEL表的几种方法 一次在处理全县小学生毕业会考成绩时,由于各学校交的表格不一致,也不方便统计,为了统计方便、快速、准确无误,把EXCEL表格转换为VF的表,但在转换过程中,打开VFP,点击菜单的“文件”“导入”,将excel表格导入成VF的表时!出现了如下图的C00005异常代码! 经过认真思考,反复探索、多次实践,终于探索出正常将excel表格导入成VF的表的几种方法,以供大家分享。 (1)用向导导入。 现在的 xls 文件一般都是Excel 2000或更高版本做的。要用向导导入时,必须注意其格式,用VFP6.0和EXCEL2000,在VFP6.0里导入EXCEL2000表就会出现出现C00005代码异常提示。出现这种错误后,不要急,没有其它软件也不怕,你只要在Excel中打开先要导入的文件表,然后另存为 Excel 5.0格式的表格,再用向导导入刚才另存的Excel 5.0格式的表格就可以正确了。 (2)除了上面这种方法外,经过认真思考,还可以通过VF中表与文本文件之间的数据交换命令appe from 来实现转换。具体步骤如下,首先打开Excel文件,在另存对话框中选文本文件(制表符分隔)格式,然后保存;再进入VFP,打开数据表(自己先建立一个数据表);然后用APPE FROM 文本文件.TXT DELI WITH TAB将文本文件内容导入到自己新建的数据表中。 注意:自己所建的表中字段宽度要给宽一点,类型一律用字符型,否则给出现数据丢失。 (3)用低级文件控制函数转换TEXT文件到VF表中。 先将Excel文件另存为文本文件(制表符分隔);再用VF中的低级文件控制函数转换TEXT文件到VF表中。 首先看一下文本文件(制表符分隔)的格式:在WINDOWS文本文件格式中,每行文本的末尾包括两个不可见字符,即一个是回车符CHR(13)与另一个换行符CHR(10),在读取过程中,需要将这两个字符删除;文本文件中各项采用空格“ ”或换行符CHR(9)或逗号“,”分隔。 在低级文件控制函数中需要使用FOPEN()、FREAD()、FCLOSE()、FEOF()四个函数。FOPEN()函数来正确打开文件,FCLOSE()函数来关闭文件,FEOF()函数来判断文件是否结束,FREAD()函数来读取文件,FREAD()在读取过程中同时移动文件指针,不需要使用FSEEK()函数再来移动文件指针。 下面程序就是输入一个文本文件(含扩展名和路径)然后自动转换成VF中的表。 (此程序在VF6.0下调试通过) set talk offcleaclose allclea all*输入被转换的文本文件的文件名(含扩展名)accept 输入文件的路径和文件名(含扩展名) to abchdq1=fopen(&abc)*打开文本文件是否正确if hdq10=messagebox(打开文件错误!,0+48,错误)returnelseai=0zd1=(zd2=(kk=*读取第一条记录的项目个数和宽度,注意第一条记录不能为空,项目也不能为空 for i=1 to 100ab=aa+allt(str(i)&ab=*读入一项目的内容do whil .t.ctemp=fread(hdq1,1)if ctempchr(9) and ctemp#chr(13) and ctem”,”&ab=&ab+ctempai=ai+1elseexitendifenddo*判断项目内容是否为空if len(alltrim(&ab)#0zd1=zd1+dd+allt(str(i)+ char(+alltrim(str(2*len(&ab)+),zd2=zd2+dd+allt(str(i)+,kk=kk+ab+,endif*判断一行是否读结束if ctemp=chr(13)gh=fread(hdq1,1)exitendifendforzd1=subs(zd1,1,len(zd1)-1)+)zd2=subs(zd2,1,len(zd2)-1)+)kk=subs(kk,1,len(kk)-1)*根据变量zd1的内容在d盘根目录下建立dbf1表 create table d:dbf1 &zd1*在d盘根目录下的dbf1表中插入一条记录insert into dbf1&zd2 values(&kk)*继续读入其它记录内容do whil .t.*读入一条记录的内容for i=1 to 100ab=aa+allt(str(i)&ab=*读入一项的内容do whil .t.ctemp=fread(hdq1,1)if ctempchr(9) and ctemp#chr(13) and ctem”,” &ab=&ab+ctempelseexitendifenddo*一条记录结束if ctemp=chr(13)=fread(hdq1,1)exitendif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论