标题:将多个excel表中sheet导入dbf中
只看楼主
杂七杂八
Rank: 1
等 级:新手上路
帖 子:217
专家分:7
注 册:2018-2-20
结帖率:96%
已结贴  问题点数:20 回复次数:12 
将多个excel表中sheet导入dbf中
操作环境:vfp6.0 excel2007
有多个excel表,表名按“部门+考勤表+年月”格式命名,每个表中有三个sheet1(考勤表)、sheet2(考勤汇总表)、sheet3(调休汇总表),表头及列数均固定,现求:
1、将所有表中的考勤表(sheet1)黄颜色部分数据分别导入考勤表.dbf中
2、将所有表中的考勤汇总表(sheet2)黄颜色部分数据分别导入考勤汇总表.dbf中
3、将所有表中的调休汇总表(sheet3)黄颜色部分数据分别导入调休表.dbf中
注:每个excel中sheet1和sheet3人数多少不一,有增减,人数不确定(sheet2与sheet2行数是一致的)
新建文件夹.rar (28.91 KB)

谢谢大佬帮助!
搜索更多相关主题的帖子: 考勤 汇总 表中 导入 dbf 
2022-06-29 18:58
杂七杂八
Rank: 1
等 级:新手上路
帖 子:217
专家分:7
注 册:2018-2-20
得分:0 
有多个excel表,表名按“部门+考勤表+年月”格式命名:有二十几个这样的表格
2022-06-29 19:21
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:273
专家分:594
注 册:2012-9-21
得分:5 
法一:如果用历遍文件逐表导入,需要比较多的时间进行调试,要耗费一定的精力。
法二:楼主利用部门来区分,将相同部门的数据 粘到同一张表上,全部简化为三个表,再导入到自由表中
建议部门繁多用自由表来管理将 那么查找更新管理报表将省时省力更省心。这是VFP的强项
2022-06-29 22:53
杂七杂八
Rank: 1
等 级:新手上路
帖 子:217
专家分:7
注 册:2018-2-20
得分:0 
回复 3楼 zhken
你好,谢谢!
我是先在EXCEL中拼好,然后再另存为DBF文件,一直是这样弄的。
在拼的过程中要粘贴出错的,想有没有直接转的,假若不能的话先将每一个表格转为三个dbf,然后再来合并也可以。
谢谢!
2022-06-30 05:20
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:5 
回复 楼主 杂七杂八
建议采用3楼的第一种方法,20几张表,不会用太长时间的哈。
2022-06-30 06:34
a57598587
Rank: 2
等 级:论坛游民
威 望:4
帖 子:29
专家分:29
注 册:2022-1-24
得分:0 
抛砖引玉:
思路一、 既然表头和列都是固定的 ,看你黄色的数据都是除去表头之外的 数据  这样按你的思路 完全可以用vfp控制xls 将数据直接导入数据库中  (dbf) 其实 只需要导入 一个表数据即可 就是考勤表 ,而考勤汇总表和休假总表看似都是可以从考勤表中得出的  所以 另外两个表看似没必要进行导出操作
思路二、既然你想用vfp对xls进程操作,看你的流程需要每个月都要汇总的,为什么不从根本上解决问题呢?就是从开始就抛开xls文件统计,直接用vfp制作一个考勤软件  各个考勤点使用分支的客户端,你那里直接根据需要显示明细和汇总的数据,不是更高效么?
我认为用vfp完全可是实现上面两个思路的。只是需要费些时间写代码而已。

一管之见。
2022-06-30 09:09
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
给你做了一个简单的示范,只读取了第一个表,其它的,你可以仿照着写.
示范.rar (30.71 KB)
2022-06-30 16:38
杂七杂八
Rank: 1
等 级:新手上路
帖 子:217
专家分:7
注 册:2018-2-20
得分:0 
回复 7楼 厨师王德榜
2022-06-30 19:48
杂七杂八
Rank: 1
等 级:新手上路
帖 子:217
专家分:7
注 册:2018-2-20
得分:0 
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
CREATE CURSOR tt (编号 c(10),姓名 c(10),出生年月 c(10),语文 I, 数学 I,英语 I)
oExcel = CREATEOBJECT('Excel.Application')
oExcel.DisplayAlerts = 0
FOR i=1 TO ADIR(aXLS,"*.xls")
    sh = oExcel.WorkBooks.Open(cDefPath + aXLS[i,1]).ActiveSheet
    sh.Rows("1:2").Delete
    row1 = oExcel.CountA(sh.Columns(1))
    row2 = oExcel.CountA(sh.Columns(7))
    arr1 = sh.Cells(1,1).Resize(row1,6).Value  
    arr2 = sh.Cells(1,7).Resize(row2,6).Value  
    INSERT INTO tt FROM ARRAY arr1
    INSERT INTO tt FROM ARRAY arr2
    oExcel.WorkBooks.Close
ENDFOR
oExcel.Quit
SELECT * FROM tt
这是吹版的代码(多个excel合并到dbf的帖子中看见的)我想对原表excel不作变动,怎样改能为我所用,求救
2022-06-30 20:30
talkrobin
Rank: 2
等 级:论坛游民
帖 子:38
专家分:19
注 册:2022-5-15
得分:0 
厉害,又学习了点知识.
2022-06-30 22:41



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




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

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