标题:VFP9 关于STRTOFILE()函数
只看楼主
jsfchqf
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-19
结帖率:50%
已结贴  问题点数:20 回复次数:12 
VFP9 关于STRTOFILE()函数
我有一个EXCEL文档,里面有员工工号这一栏,形式如下:
1991038    俞根红
1982015    俞桃红
1991060    钱明往
LS135    黄亚琼
LS136    李素芳
LS140    胡爱红
1973009    李如彩
1994052    韩林兰
LS161    俞饶红
LS162    徐党儿
LS064    徐党兔
LS165    徐年章
1991055    周鹤明
LS170    王雪年
1994058    宋国梅
1994064    金小林
1991061    李永红
LS172    王巧扣
在转换时,部分工号转不出来为空,主要是前面带字母的工号都转出后都为空,有没有什么办法解决

搜索更多相关主题的帖子: 办法 转换 为空 函数 VFP9 
2021-01-23 12:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
上传EXCEL文档,最后要转换为何种文档格式

坚守VFP最后的阵地
2021-01-23 12:45
jsfchqf
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-19
得分:0 
回复 楼主 jsfchqf
生成DBF文档
2021-01-23 13:25
jsfchqf
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-19
得分:0 
回复 3楼 jsfchqf
人员名单.rar (7.03 KB)
2021-01-23 14:32
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
另存为文本文件再APPEND
2021-01-23 15:05
jsfchqf
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-19
得分:0 
回复 4楼 jsfchqf
我是这样的做的,可是有些记录的工号部分就是空值,主要是前面有LS字母的记录显示为空,不知道是什么原因,是不是因为一种为数字型,一种为字符型
2021-01-23 15:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 6楼 jsfchqf
应该不会有问题,具体怎样做的,给代码看看
2021-01-23 15:27
jsfchqf
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-19
得分:0 
回复 7楼 吹水佬
      
CLEAR
SET TALK OFF
SET SAFETY OFF
M_FILE=GETFILE("XLSX","电子表格")      
cExcel = JUSTFNAME(M_File)
M_FILEPATH=ADDBS(JUSTPATH(M_file))    &&所打开文件所在的文件路径
DBF_FILE=SUBSTR(cexcel,1,LEN(cExcel)-4)
IF M_FILE=" "
    =MESSAGEBOX("请输入待导入的电子子表格文件!",0+48,"提示")
    RETURN
ELSE
    IF JUSTEXT(M_FILE)#"XLS"
        =MESSAGEBOX("你选择的不是EXCEL格式文档!",0+48,"提示")
        RETURN
    ENDIF
ENDIF


cHDR = "YES"   
cSheet = "[sheet1$A:AB]"

cSQL = "SELECT * FROM " + cSheet
cConn = "Provider=Microsoft.ACE.OLEDB.12.0;"+"Extended Properties='Excel 12.0;HDR="+cHDR+";IMEX=1';"+ "Data Source=" + cExcel

    ** EXCEL2003及之前版本
**    cConn = "Provider=Microsoft.Jet.OLEDB.4.0;"+ "Extended Properties='Excel 8.0;HDR="+cHDR+";IMEX=1';"+ "Data Source=" + cExcel
   
    SET DEFAULT TO &M_FILEPATH
    oConn = CREATEOBJECT("ADODB.Connection")
    oConn.Open(cConn)
    oRs = CREATEOBJECT("ADODB.Recordset")
    oRs.Open(cSQL, oConn, 1, 3, 1)
    oRs.MoveFirst

    USE e:\gz\jj_stru

    COPY STRUCTURE TO &M_FILEPATH\&DBF_FILE
    USE &DBF_FILE IN 2
    zap   

cStr = oRs.GetString()
STRTOFILE(cStr, "tmp.txt")
SELECT 2
APPEND FROM tmp.txt DELIMITED WITH TAB
SELECT * FROM &DBF_FILE
oRs.Close
oConn.Close
CLOSE  ALL
RETURN

以是是我的代码
附件是生成的txt文件,工号中出现了空值
tmp.txt (3.05 KB)
2021-01-23 16:08
jsfchqf
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-19
得分:0 
回复 8楼 jsfchqf
ld_gz202012.rar (12.61 KB)
2021-01-23 16:11
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 

接口文件不规范,同一列各元素的数据类型不一样。
如工号,既然用到字母和数字组合,统一定义为文本类型就OK。
或者试试用Excel.Application来处理
2021-01-23 18:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504703-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.101538 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved