注册 登录
编程论坛 VFP论坛

xls文件内容存到txt文件内,如何跳过xls文件的列名或跳过第一行

yuq 发布于 2022-09-06 22:10, 1728 次点击
xls文件内容存到txt文件内,如何跳过xls文件的列名或跳过第一行
10 回复
#2
吹水佬2022-09-07 07:27
AT()找到第一行换行位置,SUBSTR()去掉第一行
#3
yuq2022-09-07 09:28
回复 2楼 吹水佬
CREATE DBF hbwj (xm C(30),yxzjhm C(20))
adir(wjm, "C:\Users\11235\Desktop\合并文件\*.xls")
OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")
for i = 1 to alen(wjm,1)
    OEXCEL.WORKBOOKS.OPEN("C:\Users\11235\Desktop\合并文件\"+wjm(i,1))
    OEXCEL.DISPLAYALERTS = .F.
    OEXCEL.ACTIVEWORKBOOK.SAVEAS("C:\Users\11235\Desktop\合并文件\sj.TXT", -4158)
    OEXCEL.ACTIVEWORKBOOK.CLOSE
    OEXCEL.DISPLAYALERTS = .T.
    OEXCEL.QUIT
SELECT hbwj
APPEND FROM sj.TXT DELIMITED WITH TAB
endfor


麻烦给看一下怎么把当前打开文件的第一行跳过去
#4
吹水佬2022-09-07 09:53
随便给两个文件来测试,应该会简单些
#5
yuq2022-09-07 10:10
回复 4楼 吹水佬
只有本站会员才能查看附件,请 登录
#6
吹水佬2022-09-07 10:45
只有本站会员才能查看附件,请 登录

程序代码:
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
CREATE DBF hbwj (xm C(30),yxzjhm C(20))
adir(wjm, "*.xls")
OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")
OEXCEL.DISPLAYALERTS = .F.
for i = 1 to alen(wjm,1)
    OEXCEL.WORKBOOKS.OPEN(cDefPath + wjm(i,1))
    OEXCEL.ACTIVEWORKBOOK.SAVEAS(cDefPath+"sj.TXT", -4158)
    OEXCEL.ACTIVEWORKBOOK.CLOSE
    SELECT hbwj
    APPEND FROM sj.TXT FOR xm!="姓名" DELIMITED WITH TAB
ENDFOR
OEXCEL.QUIT
SELECT * FROM hbwj
#7
yuq2022-09-07 13:01
回复 6楼 吹水佬
这样虽然将列头去掉了,但是并不是严格意义上的跳过第一行呀
#8
csyx2022-09-07 13:29
CREATE DBF hbwj (xm C(30),yxzjhm C(20))
adir(wjm, "C:\Users\11235\Desktop\合并文件\*.xls")
OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")
for i = 1 to alen(wjm,1)
    OEXCEL.WORKBOOKS.OPEN("C:\Users\11235\Desktop\合并文件\"+wjm(i,1))
    OEXCEL.ActiveSheet.Rows(1).Delete()        && 删除首行
    OEXCEL.DISPLAYALERTS = .F.
    OEXCEL.ACTIVEWORKBOOK.SAVEAS("C:\Users\11235\Desktop\合并文件\sj.TXT", -4158)
    oExcel.ActiveWorkbook.Close(.f.)            && 不保存修改
    OEXCEL.DISPLAYALERTS = .T.
    SELECT hbwj
    APPEND FROM sj.TXT DELIMITED WITH TAB
endfor
    OEXCEL.QUIT


[此贴子已经被作者于2022-9-7 13:34编辑过]

#9
schtg2022-09-07 15:15
楼上两位的都可以得到相同的结果,高!
#10
吹水佬2022-09-07 17:50
以下是引用yuq在2022-9-7 13:01:36的发言:

这样虽然将列头去掉了,但是并不是严格意义上的跳过第一行呀

是不严格,所以要具体看看你的文件,有针对性的。
如果只是简单地跳过第一行,就要确保每个文件只是第一行要“跳过”才可确保“严格意义”。所以,“严格意义”就要先分析文件格式内容是否符合要求。

#11
yuq2022-09-09 23:09
非常感谢各位大牛答疑解惑!问题已解决
1