| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1362 人关注过本帖
标题:多个WORD、EXCEL统计数据合并
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:579
专家分:0
注 册:2018-1-4
结帖率:97.04%
收藏
已结贴  问题点数:20 回复次数:8 
多个WORD、EXCEL统计数据合并
如何合并多个WORD、EXCEL到DBF表文件中
同一文件夹下有“ 2月份杂工开支明细帐.doc”、“ 3月份杂工开支明细帐.doc”、“ 4月份杂工开支明细帐.xls”、“ 5月份杂工开支明细帐.xls”。这四个文件字段名不同,只有姓名字段相同,如何将这四个表格文件合并到Zagongtongji.dbf表文件中,请高手赐教,万分感谢!!!
数据.rar (90.96 KB)

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

最终用VFP代码生成如下表文件:
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 多个 文件 合并 EXCEL 月份 
2022-10-10 10:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:2 
各自转出DBF或TXT,再APPEND到Zagongtongji.dbf,再再统计:除草 栽树 施肥 修路 粉刷 其他 合计
2022-10-10 14:07
aqyejun
Rank: 4
等 级:贵宾
威 望:10
帖 子:136
专家分:113
注 册:2010-6-11
收藏
得分:2 
建议:首先统一每个月份的杂工开支明细帐的表字段值与Zagongtongji.dbf表一致,再逐个追加到temp表中,最后按照姓名字段分组汇总生成Zagongtongji.dbf表。

【独叶为舟】工作室
2022-10-11 10:37
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:302
专家分:764
注 册:2006-5-22
收藏
得分:14 
CLOSE DATABASES
CREATE CURSOR tmp(姓名 C(10),除草 N(10),栽树 N(10),施肥 N(10),修路 N(10),粉刷 N(10),其他 N(10),合计 N(10))
WorkPath=GETDIR("","","请选择待导入文件夹:")
IF !EMPTY(WorkPath)
    nFiles_doc=Adir(docArray,WorkPath+'*.doc')
    IF nFiles_doc>0
        FOR i=1 TO nFiles_doc
                         cWaitmesg="正在提取数据 ,请稍候......"+ALLTRIM(STR(i))+"/"+ALLTRIM(STR(nFiles_doc))+"----DOC"
                Wait Window cWaitmesg  Nowait At srow()/2,(scol()-len(cWaitmesg))/2
            docfile=WorkPath+docArray(i,1)
            dole=CREATEOBJECT("Word.Application")
            doc=dole.Documents.Open(docfile)
            FOR EACH tab IN doc.tables
                nRow=tab.rows.count  &&总行数
                nCol=tab.columns.count  &&总列数
                cstr = 'CREATE Table xxx ('+STRTRAN(STRTRAN(tab.Cell(1,1).Range.Text,CHR(7),'') ,CHR(13),'') + ' C(20)'
                FOR j=2 TO nCol
                    cstr=cstr+','+STRTRAN(STRTRAN(tab.Cell(1,j).Range.Text,CHR(7),'') ,CHR(13),'') + ' N(10)'
                ENDFOR
                cstr = cstr+')'
                &cstr
                FOR k=2 TO nRow        &&逐行读入临时表
                    cStr='INSERT INTO xxx VALUES (STRTRAN(STRTRAN(tab.Cell('+ALLTRIM(STR(k))+',1).Range.Text,CHR(7),""),CHR(13),"")'
                    FOR l=2 TO nCol
                        cStr=cStr+','+ALLTRIM(STR(VAL(tab.cell(k,l).Range.Text)))
                    ENDFOR
                    cstr = cstr+')'
                    &cstr
                ENDFOR
                USE IN xxx
                SELECT tmp
                    APPEND FROM xxx
                ERASE xxx.dbf
            ENDFOR
            doc.Close
            dole.Quit
        ENDFOR
    ENDIF
   
    nFiles_xls=Adir(xlsArray,WorkPath+'*.xls')
    IF nFiles_xls>0
        FOR i=1 TO nFiles_xls
            xlsfile=WorkPath+xlsArray(i,1)
            eole=CREATEOBJECT("Excel.application")
            eole.Workbooks.Open(xlsfile)
                         cWaitmesg="正在提取数据 ,请稍候......"+ALLTRIM(STR(i))+"/"+ALLTRIM(STR(nFiles_xls))+"----XLS"
                Wait Window cWaitmesg  Nowait At srow()/2,(scol()-len(cWaitmesg))/2
            nRow=eole.SHEETS(1).UsedRange.Rows.Count  &&有数据的总行数
            nCol=eole.SHEETS(1).UsedRange.Columns.Count  &&有数据的总列数
            cstr = 'CREATE Table xxx ('+eole.Cells(2,1).text + ' C(20),'
            FOR j=2 TO nCol
                cstr = cstr+eole.Cells(2,j).text + ' N(10),'
            ENDFOR
            cstr = left(cstr,LEN(cstr)-1)+")"
            &cstr
            arr = eole.cells(3,1).resize(nRow-2,nCol).value  &&将数据读入数组
            INSERT INTO xxx FROM ARRAY arr        &&& 将数组中的数据,追加到DBF表中
            USE IN xxx
            SELECT tmp
                APPEND FROM xxx
            ERASE xxx.dbf
            eole.ActiveWorkbook.Close
            eole.quit
        ENDFOR
    ENDIF
ENDIF
WAIT CLEAR
之后再做统计汇总

2022-10-11 17:33
wxzd123
Rank: 2
等 级:论坛游民
帖 子:328
专家分:58
注 册:2012-9-6
收藏
得分:0 
2022-10-11 18:46
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1545
专家分:3003
注 册:2012-2-29
收藏
得分:0 
高!
2022-10-12 05:27
王咸美
Rank: 1
等 级:新手上路
帖 子:579
专家分:0
注 册:2018-1-4
收藏
得分:0 
@fyyylyl 非常感谢!!!
2022-10-12 08:29
王咸美
Rank: 1
等 级:新手上路
帖 子:579
专家分:0
注 册:2018-1-4
收藏
得分:0 
请各位高手指点一下,下列语句提示:函数名缺少),如何修改,请赐教,非常感谢!!!
SELECT 姓名,SUM(除草) as 除草,SUM(栽树) as 栽树,SUM(施肥) as 施肥,SUM(修路) as 修路,SUM(粉刷) as 粉刷,SUM(其他) as 其他, Total(*) as 合计 FROM tmp GROUP BY 姓名 INTO TABLE Zagong
2022-10-12 15:33
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:2 
set engi 70

只求每天有一丁点儿的进步就可以了
2022-10-12 16:22
快速回复:多个WORD、EXCEL统计数据合并
数据加载中...
 
   



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

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