注册 登录
编程论坛 VFP论坛

如何实现对一个工作表xls 2003 的导入成DBF

ls_y041 发布于 2022-01-06 13:22, 2712 次点击
我想重新来处理这个表的问题,请帮助一下,一步一步的来学习。
1.先把发料表进行导入DBF
2.对数据进行一下分类汇总。
只有本站会员才能查看附件,请 登录
19 回复
#2
吹水佬2022-01-06 15:57
1、搜索一下“EXCEL”,在VFP板块最近也有不少相关讨论贴,参考 https://bbs.bccn.net/viewthread.php?tid=506114&extra=&highlight=excel&page=2
2、在1的基础上进行是VFP的强项了
最好自己先写代码,一发现有问题就提出来讨论,逐个问题分别来解决,针对问题点到即止,就算是一个简单的能反映出问题的示例也好。
无需一开始就放出一大堆问题,令人无所适从,时间花费也是一个问题。
#3
ls_y0412022-01-06 16:36
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
xlsFile = cDefPath + "发料统计.xls"
WITH CREATEOBJECT("Excel.Application")
    .DisplayAlerts = 0
    .WorkBooks.Open(xlsFile)
    nRow = .CountA(.Range("A:A")) - 2
    nCol = .CountA(.Range("4:4"))
    arr  = .Cells(5,1).Resize(nRow,nCol).Value
    .WorkBooks.Close
    .Quit
ENDWITH
CREATE CURSOR tt( 序号  c(10),经销商简称 c(10),仓库代码 c(10),库位代码 c(10),工单号 c(10),车牌号 c(10),车系 c(10),领料人 c(10),零部件代码 C(10),零部件名称 C(30),零部件数量 n(6,2),;
零部件销售单价 n(6,2),零部件成本单价 n(6,2),维修类型 C(10))
INSERT INTO tt FROM ARRAY arr
SELECT * FROM tt
#4
ls_y0412022-01-06 16:37
第一步完成了。
第二步的数据分类汇总不会处理了


[此贴子已经被作者于2022-1-6 16:38编辑过]

#5
吹水佬2022-01-06 16:46
按什么分类、汇总什么?
#6
ls_y0412022-01-06 16:57
按工单号为分组 再对配件代码汇总零部件数量,当数量为0就不要这个记录了。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2022-1-6 17:05编辑过]

#7
mywisdom882022-01-06 17:17
为什么,不在VFP的DBF中处理玩后,再导出EXECL中呢,
#8
吹水佬2022-01-06 19:33
以下是引用ls_y041在2022-1-6 16:57:48的发言:

按工单号为分组 再对配件代码汇总零部件数量,当数量为0就不要这个记录了。

没见有“配件代码”
是按“工单号 + 零部件代码”分类汇总“零部件数量”吧

SET ENGINEBEHAVIOR 70
SELECT *,SUM(零部件数量) 汇总数量 FROM tt GROUP BY 工单号,零部件代码 INTO CURSOR tmp
SELECT * FROM tmp WHERE 汇总数量!=0
#9
ls_y0412022-01-06 20:58
一切ok,还差一步,就是把这个总表的数据,按每个工单号把数据保存到模板中,保存的文件名称“工单号+领料人+维修类型+牌照号”,当工单有两个领料人时做两个工作分别显示。
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2022-1-6 21:05编辑过]

#10
吹水佬2022-01-06 22:06
以下是引用ls_y041在2022-1-6 20:58:37的发言:

一切ok,还差一步,就是把这个总表的数据,按每个工单号把数据保存到模板中,保存的文件名称“工单号+领料人+维修类型+牌照号”,当工单有两个领料人时做两个工作分别显示。

这个就是填表,自己写好了,逐条逐格填写也可以了。
#11
ls_y0412022-01-07 10:53
如何在程序运行时把当前目录下的xls文件全部删除掉。
#12
laowan0012022-01-07 10:57
delete file
帮助文件里有详细说明
#13
ls_y0412022-01-07 12:10
感谢大家,如果会写就不问了。对数据在处理上不太会,问的有点乱。
#14
ls_y0412022-01-07 16:48
这个可以实现对指定的目录下,如何设置成对当前目录下的所有XLS文件,谢谢!
cDefPath = ADDBS(JUSTPATH(SYS(16)))


DELETE FILE cDefPath/*.xls

[此贴子已经被作者于2022-1-7 20:15编辑过]

#15
吹水佬2022-01-07 16:53
回复 14楼 ls_y041
3楼有设置当前路径
#16
shop12365com2022-01-08 09:51
用WPS文件另存一下,很简单 。
#17
ls_y0412022-01-08 10:04
基础没有打好,学习还是非常乱的,有这样的论坛还是太难得了。慢慢从头来学习一下这个还是非常有用的,感谢大家工作上的EXCEL比较多也想起来再学习vfp,不动手不知道哪里都是有坑的。
#18
laowan0012022-01-08 10:22
以下是引用ls_y041在2022-1-7 12:10:30的发言:

感谢大家,如果会写就不问了。对数据在处理上不太会,问的有点乱。


基础的东西还是要自己学习,中间遇到什么具体问题在这里多数都能得到解决方案,如果从头到尾都让别人完成就不太合适了。
不知道这活是领导派给你的还是你自己揽的,感觉有点勉强啊

有问题先搜索,多数问题都不是新问题。
之前已经有人走过的弯路,对后来的人都是可借鉴的经验。
坛子里有很多别人的代码,其实是挺有启发的。
另外,VFP的帮助其实是很有帮助的


[此贴子已经被作者于2022-1-8 10:27编辑过]

#19
ls_y0412022-01-09 15:01
感谢您的提示,把问题想的简单了。学习还是要学习的,方法对不对,就不说了,关注是一定的。
#20
自强不西2022-01-09 16:19
学以致用
1