不管转成什么,还是先加工好dbf,之后就好办了
另外:转成excel不好吗?										
					
	
	
	
	       程序代码:
程序代码: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