我把它放入我的程序中去后,死掉了,不知如何插入这块模块。请明示。多谢了。
filename=GETFILE("dbf")
&&随便别一个数据库
IF EMPTY(filename)
RETURN
ENDIF
USE &filename
filename=SUBSTR(filename,RAT("\",filename,1)+1)
filename=LEFT(filename,RAT(".",filename,1)-1)
pp=CREATEOBJECT("excel.application")
pp.workbooks.ADD
pp.worksheets("sheet1").ACTIVATE &&这里就是增加一个工作表,你可以打开多个数据表,然后增加多个工作表
hx=FCOUNT()
&&表的横向变量,即字段个数
*hx=3
&&&确定3个字段
sx=RECC()
&&表的坚向变量,即记录长度
sx1=1
GO TOP
FOR hx1=1 TO hx
&&这个循环打印字段名称
bl=FIELD(hx1)
pp.cells(3,hx1).VALUE=bl
&&字段名称显示在第三行。
ENDFOR
pp.cells.SELECT &&选择所有单元格
pp.Selection.NumberFormatLocal = "@"
&&将所有单元格设置成“文本”格式
DO WHILE sx1<sx+1 &&每条记录来一个循环,向excel中填充数据
FOR hx1=1 TO hx
&&从第四条开始填充数据
bl=FIELD(hx1)
pp.cells(sx1+3,hx1).VALUE=&bl
&& &bl的意思就是把相应字段值赋值给单元格
ENDFOR
SKIP+1
&&dbf表的数据指针指向下一条记录
sx1=sx1+1
ENDDO
*以下的一块内容引用了您的有关内容:
WITH pp.workbooks(1).worksheets(1)
GO TOP
lnDw=lqk.lqyxdm
FOR lnCnt=1 TO RECCOUNT('lqk')
GO lnCnt
.RANGE('A'+TRANSFORM(lnCnt)).VALUE=lqk.bmxh
.RANGE('B'+TRANSFORM(lnCnt)).VALUE=lqk.xm
.RANGE('C'+TRANSFORM(lnCnt)).VALUE=lqk.yxmc
.RANGE('D'+TRANSFORM(lnCnt)).VALUE=lqk.lqyxdm
IF lnDW!=lqk.lqyxdm
lcRange='A'+TRANSFORM(lnCnt)
.hpagebreaks.ADD(.RANGE(lcRange))
lnDw=lqk.lqyxdm
ENDIF
ENDFOR
ENDWITH
*!*
o.displayalerts=.f.
*!*
o.quit
RETURN
pp.cells(2,1)="日期:"+ALLT(DTOC(DATE()))
pp.cells.SELECT &&选择所有单元格
pp.SELECTION.FONT.SIZE=9 &&字体设置为9号字体
pp.cells(1,3).VALUE=(filename+"文件导出表")
&&设置表头标题
pp.cells(1,3).FONT.NAME="黑体"
pp.cells(1,3).FONT.SIZE=24
pp.CAPTION="EXCEL表单名"
pp.COLUMNS(1).COLUMNWIDTH=12
pp.COLUMNS("B:U").SELECT
pp.SELECTION.COLUMNWIDTH=7
pp.cells(1,1).SELECT
pp.APPLICATION.VISIBLE=.T.
*set talk on