procedure ved_vspom
local dadd:=ctod('31.12'+str(year(date()),4))
local n,i,j,fName:="V12.xls",v1,v2
local nana, oHoja1, oExcel, vr,jjj,vr1, nLet, spis,vr2
local godd, much:={}, mkvouch:={},vGood,vBad
Local nActual := 0, oMeter,oDlg99, oBmp1, oBmp2, oBrush, omma
local hItogo:=hash()
local mItog:={0,0}
local vsego,good
ferase(fName)
if file(fName)
return
ENDIF
n = EX_CreateChannel(fName)
psDefault=''
nana=' ¹3"'
ZNKZ=1
kod_usl=str(znkz,6)
name_usl=seek_KOD('SUSL',2,str(znkz,6),'QNUSL','')
name_usl=alltrim(oemtoansi(name_usl))
EX_CreateSheet(n, kod_usl, psDefault, 100, 300, 1, 05, 05, 05, 05, 1)
EX_SetCurrentStyle(n,2,1,.t., 0, 0)
EX_SetCurrentFont(n,'Arial Cyr',5,.t.,.t.,,7)
EX_SetCurrentStyleColor(n,0)
EX_SetCellText(n, 0, 0,nana)
EX_SetCellText(n,1, 1,name_usl+ "Ðàñïðåäåëåíèå ôàêòè÷åñêèõ ðàñõîäîâ âñïîìîãàòåëüíûõ ñòðóêòóðíûõ ïîäðàçäåëåíèé ñîãëàñíî âûïîëíåíûõ ïîêàçàòåëåé çà "+str(mgodi,4)+" ã.")
EX_SetCellText(n,2, 1,"")
* EX_SetMergeArea(n, 0, 0, 0, 15)
*EX_SetCellText(n, 3, 0, "Í")
EX_SetCellText(n, 3, 1, "Íàèìåíîâàíèå óñëîâèé îêàçàíèÿ ìåäèöèíñêîé ïîìîùè, îñíîâíûõ ñòðóêòóðíûõ ïîäðàçäåëåíèé")
EX_SetCellText(n, 3, 2, "Êîë. âûïîëåííûõ ïîêàçàòåëåé")
EX_SetCellText(n, 3, 3, "1 10 01 00")
EX_SetCellText(n, 3, 4, "1 10 02 01")
EX_SetCellText(n, 3, 5, "1 10 02 04")
EX_SetCellText(n, 3, 6, "1 10 02 05")
EX_SetCellText(n, 3, 7, "1 10 03 02")
EX_SetCellText(n, 3, 8, "1 10 03 03")
EX_SetCellText(n, 3, 9, "1 10 03 04")
EX_SetCellText(n, 3,10, "1 10 03 05")
EX_SetCellText(n, 3,11, "1 10 04 01")
EX_SetCellText(n, 3,12, "1 10 05 00")
EX_SetCellText(n, 3,13, "1 10 06 00")
EX_SetCellText(n, 3,14, "1 10 07 01")
EX_SetCellText(n, 3,15, "1 10 07 03")
EX_SetCellText(n, 3,16, "1 10 07 04")
EX_SetCellText(n, 3,17, "1 10 10 02")
EX_SetCellText(n, 3,18, "1 10 10 03")
EX_SetCellText(n, 3,19, "1 10 10 08")
EX_SetCellText(n, 3,20, "2 40 01 00")
EX_SetCellText(n, 3,21, "2 40 03 00")
EX_SetCellText(n, 3,22, "1 30 03 00")
EX_SetCellText(n, 3,23, "ÈÒÎÃÎ")
EX_SetColumnWidth(n, 0,0 )
EX_SetColumnWidth(n, 1,23 )
EX_SetColumnWidth(n, 2,8 )
EX_SetColumnWidth(n, 3,12 )
EX_SetColumnWidth(n, 4,12 )
EX_SetColumnWidth(n, 5,10 )
EX_SetColumnWidth(n, 6,12 )
EX_SetColumnWidth(n, 7,12 )
EX_SetColumnWidth(n, 8,12 )
EX_SetColumnWidth(n, 9,12 )
EX_SetColumnWidth(n,10,10 )
EX_SetColumnWidth(n,11,12 )
EX_SetColumnWidth(n,12,10 )
EX_SetColumnWidth(n,13,12 )
EX_SetColumnWidth(n,14,12 )
EX_SetColumnWidth(n,15,12 )
EX_SetColumnWidth(n,16,12 )
EX_SetColumnWidth(n,17,12 )
EX_SetColumnWidth(n,18,10 )
EX_SetColumnWidth(n,19,12 )
EX_SetColumnWidth(n,20,12 )
EX_SetColumnWidth(n,21,12 )
EX_SetColumnWidth(n,22,12 )
EX_SetColumnWidth(n,23,14 )
*EX_SetColumnWidth(n,21,15 )
EX_SetCurrentFont(n,'Arial Cyr',5,.f.,.f.,,7)
EX_SetCurrentStyleColor(n,0)
PRIVATE MAS[24]
DO FORM_VSPOM && ZRASP.PRG
SELE V_VSPOM
i=1
lastr=lastrec()
GO 1
FOR i=1 TO 13
*MAS[1]=STR(QCEX,2)
MAS[2]=alltrim(oemtoansi(QNAME))
MAS[3]=QCIKL
MAS[4]= Q0100
MAS[5]= Q0201
MAS[6]= Q0204
MAS[7]= Q0205
MAS[8]= Q0302
MAS[9]= Q0303
MAS[10]=Q0304
MAS[11]=Q0305
MAS[12]=Q0401
MAS[13]=Q0500
MAS[14]=Q0600
MAS[15]=Q0701
MAS[16]=Q0703
MAS[17]=Q0704
MAS[18]=Q1002
MAS[19]=Q1003
MAS[20]=Q1008
MAS[21]=Q4100
MAS[22]=Q4300
MAS[23]=Q3301
MAS[24]=QITOV
* EX_SetCellText(n, i+3, 0, MAS[1])
EX_SetCellText(n, i+3, 1, MAS[2])
EX_SetCellNumber(n, i+3, 2, MAS[3])
EX_SetCellNumber(n, i+3, 3, MAS[4])
EX_SetCellNumber(n, i+3, 4, MAS[5])
EX_SetCellNumber(n, i+3, 5, MAS[6])
EX_SetCellNumber(n, i+3, 6, MAS[7])
EX_SetCellNumber(n, i+3, 7, MAS[8])
EX_SetCellNumber(n, i+3, 8, MAS[9])
EX_SetCellNumber(n, i+3, 9, MAS[10])
EX_SetCellNumber(n, i+3,10, MAS[11])
EX_SetCellNumber(n, i+3,11, MAS[12])
EX_SetCellNumber(n, i+3,12, MAS[13])
EX_SetCellNumber(n, i+3,13, MAS[14])
EX_SetCellNumber(n, i+3,14, MAS[15])
EX_SetCellNumber(n, i+3,15, MAS[16])
EX_SetCellNumber(n, i+3,16, MAS[17])
EX_SetCellNumber(n, i+3,17, MAS[18])
EX_SetCellNumber(n, i+3,18, MAS[19])
EX_SetCellNumber(n, i+3,19, MAS[20])
EX_SetCellNumber(n, i+3,20, MAS[21])
EX_SetCellNumber(n, i+3,21, MAS[22])
EX_SetCellNumber(n, i+3,22, MAS[23])
EX_SetCellNumber(n, i+3,23, MAS[24])
* @ 23,0 SAY '5i,cex,pok,Si '
* ??i,V_USLUG->qCEX,MAS[1],V_USLUG->QPOK,V_USLUG->QSUM1,QNAME,ALIAS()
* INKEY(0)
SELE V_VSPOM
SKIP
NEXT
* ENDDO
USE
EX_SetCurrentFont(n,'Arial Cyr',5,.f.,.f.,,7)
EX_SetCurrentStyleColor(n,21)
EX_DrawTable(n, 0, 1, i+5, 23, 01, 01)
EX_SetMergeArea(n, 0, 0, 0, 23)
EX_SetMergeArea(n, 1, 1, 1, 23)
EX_SetMergeArea(n, 2, 1, 2, 23)
* EX_SetMergeArea(n, 3, 0, 3, 15)
EX_DestroyChannel(n)
if file(fName)
run(fName)
else
avarsoob('Íåò ôàéëà '+fName+'!!!')
endif
* inkey(0)
return
вот так формируется excel.