| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2649 人关注过本帖
标题:如何按班级、按模板格式批量生成WORD表格
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册:2018-1-4
结帖率:97.48%
收藏
已结贴  问题点数:20 回复次数:12 
如何按班级、按模板格式批量生成WORD表格
现有 成绩汇总表.dbf、模板文件cjtjmb.doc,如何按班级、按模板格式批量生成WORD表格(各班成绩统计表)?请高手帮忙,万分感谢!!!
成绩汇总表.zip (6.64 KB)

成绩汇总表.dbf
图片附件: 游客没有浏览图片的权限,请 登录注册

模板文件cjtjmb.doc
图片附件: 游客没有浏览图片的权限,请 登录注册

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

搜索更多相关主题的帖子: 格式 生成 模板 表格 WORD 
2021-12-30 08:05
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1093
专家分:2690
注 册:2015-12-30
收藏
得分:0 
不管转成什么,还是先加工好dbf,之后就好办了
另外:转成excel不好吗?
2021-12-30 08:37
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册:2018-1-4
收藏
得分:0 
附件中含 成绩汇总表.dbf和模板文件 cjtjmb.doc
2021-12-30 08:54
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
收藏
得分:0 
判断WORD多少行
根据记录数来进行定位填充,可能分为多种情况。(一页或多页)


2021-12-30 09:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
回复 楼主 王咸美
看了一下你发问的贴,如果都看通透应该可成WORD的专家,填写WORD模板应该不成问题。
2021-12-30 10:54
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏(1)
得分:20 
可以做,一个班最多60人吗? 以下代码可以达到要求.
程序代码:
CLEAR 
CLOSE TABLES ALL 
PUBLIC cpath  as String  

LOCAL iArr1 as Integer ,iMax as Integer
cpath = 'c:\XIDE\Projects\'  &&  成绩表和模板文件所在的文件夹。
iMax = 60  &&  模板文件可装入人数的最大值。
USE (cpath + '成绩汇总表.DBF')  IN 0 
SELECT 班级 ,COUNT(*) as 人数 FROM 成绩汇总表 GROUP BY 班级 INTO ARRAY arrbanji
FOR iArr1 = 1 TO ALEN( arrbanji ,1)
    IF arrbanji[iArr1 ,2] > iMax THEN 
        WAIT  arrbanji[iArr1 ,1] + '' +  LTRIM(STR(arrbanji[iArr1 ,2])) + ;
         '人,人数超出模板文件限制,请重新制定模板。程序将跳过制作该班汇总表。' WINDOW AT  10 ,20 TIMEOUT  3
    ELSE 
        WAIT  arrbanji[iArr1 ,1] + '' +  LTRIM(STR(arrbanji[iArr1 ,2])) + ;
         '人,程序开始制作该班汇总表。。。' WINDOW AT  10 ,20 NOWAIT 
        SELECT 姓名,语文,数学,英语 FROM 成绩汇总表 INTO ARRAY arrcj where 班级 = arrbanji[iArr1 ,1]
        = MakeDoc(arrbanji[iArr1 ,1] ,@arrcj)
        RELEASE arrcj        
    ENDIF 
    
NEXT iArr1 

USE IN 成绩汇总表 
WAIT CLEAR 
MESSAGEBOX('制作完成,共输出' +  LTRIM(STR(ALEN( arrbanji ,1)))  + '个文件。',64,'成绩汇总表')
RELEASE arrbanji 


PROCEDURE MakeDoc(bjmc ,arrcj2)
LOCAL oApp as Object ,oDoc as Object ,oTab as Object 
LOCAL cWordFile as String ,cFileOut as String 
LOCAL iside ,iCol , iRow , ii as Integer
STORE 0 TO  iside ,iCol , iRow , ii 
cWordFile = cpath + 'cjtjmb.doc'  &&  模板文件
cFileOut = cpath + bjmc  &&  输出文件
oApp = CREATEOBJECT('Word.Application') 
oDoc = oApp.Documents.Open(cWordFile,0,.t.)
oTab = oDoc.Tables(1) 

For iside = 1 To 2
    For irow = 2 To oTab.Rows.Count
        IF ii < ALEN(arrcj2 ,1 ) THEN 
            For icol = 1 To 4
                oTab.cell(irow, icol + 4 * (iside - 1)).Range.Text = arrcj2(irow + 30 * (iside - 1) - 1, icol)         
            Next icol
            ii = ii + 1
        ELSE 
            EXIT 
        ENDIF 
    Next irow
Next iside


IF FILE(cFileOut) THEN 
    DELETE FILE &cFileOut 
ENDIF 
odoc.SaveAs2(cFileOut)
oDoc.Close()
oApp.Quit() 

ENDPROC 
2021-12-31 11:09
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1744
专家分:3333
注 册:2012-2-29
收藏
得分:0 
回复 6楼 厨师王德榜
好办法!
2022-01-01 07:29
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册:2018-1-4
收藏
得分:0 
Thank you!

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

2022-01-01 15:07
adonguo163
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-9-29
收藏
得分:0 
真是高手
2022-01-29 10:44
yuq
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2022-3-7
收藏
得分:0 
回复 6楼 厨师王德榜
可以标一下注释吗?让我们新手也学习、瞻仰一下
2022-03-13 10:36
快速回复:如何按班级、按模板格式批量生成WORD表格
数据加载中...
 
   



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

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