VF中正确导入EXCEL表的几种方法.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VF中正确导入EXCEL表的几种方法

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 off clea close all clea all *输入被转换的文本文件的文件名(含扩展名) accept 输入文件的路径和文件名(含扩展名) to abc hdq1=fopen(abc) *打开文本文件是否正确 if hdq10 =messagebox(打开文件错误!,0+48,错误) return else ai=0 zd1=( zd2=( kk= *读取第一条记录的项目个数和宽度,注意第一条记录不能为空,项目也不能为空 for i=1 to 100 ab=aa+allt(str(i)) ab= *读入一项目的内容 do whil .t. ctemp=fread(hdq1,1) if ctempchr(9) and ctemp#chr(13) and ctem”,” ab=ab+ctemp ai=ai+1 else exit endif enddo *判断项目内容是否为空 if len(alltrim(ab))#0 zd1=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) exit endif endfor zd1=subs(zd1,1,len(zd1)-1)+) zd2=subs(zd2,1,len(zd2)-1)+) kk=subs(kk,1,len(kk)-1)  HYPERLINK / \t _blank  *根据变量zd1的内容在d盘根目录下建立dbf1表 create table d:\dbf1 zd1 *在d盘根目录下的dbf1表中插入一条记录 insert into dbf1zd2 values(kk) *继续读入其它记录内容 do whil .t. *读入一条记录的内容 for i=1 to 100 ab=aa+allt(str(i)) ab= *读入一项的内容 do whil .t

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档