请教lygcw9602及各位高手转EXCEL问题

yjrryyx 2012-07-27 08:13:47
SET DATE YMD
SET CENTURY ON
CDBFFILE = GETFILE("dbf")
IF EMPTY(CDBFFILE)
RETURN
ENDIF
SELECT * FROM JUSTSTEM(CDBFFILE) INTO CURSOR FOXTABLE
CEXCELFILE = PUTFILE("保存为(&N):",JUSTSTEM(CDBFFILE)+".xls","xls")
IF EMPTY(CEXCELFILE)
RETURN
ENDIF
SELECT FOXTABLE
OEXCELSHEET = GETOBJECT("","Excel.Sheet")
IF NOT TYPE("oExcelSheet") = "O"
= MESSAGEBOX("Excel对象创建失败,程序将中止!",16,"Error")
RETURN
ENDIF
OEXCEL = CREATEOBJECT("excel.application")
WITH OEXCEL
.WORKBOOKS.ADD
.SHEETS("Sheet1").SELECT
.SHEETS("Sheet1").NAME = "sample"
.VISIBLE = .F.
.DISPLAYALERTS = .F.
.CELLS.SELECT
WITH .SELECTION.FONT
.NAME = "宋体"
.SIZE = 10
ENDWITH
ENDWITH
DLINE_S = "A1:"+CHR(ASC("A")+FCOUNT()-1)+"1"
WITH OEXCEL
.CELLS(1, 1).VALUE = "江北大学物理系人员花名册"
.ACTIVESHEET.RANGE(DLINE_S).MERGE
.ACTIVESHEET.ROWS(1).ROWHEIGHT = 40
.RANGE(DLINE_S).SELECT
WITH .SELECTION
.FONT.NAME = "宋体"
.FONT.SIZE = 24
.FONT.BOLD = .T.
.HORIZONTALALIGNMENT = 3
.VERTICALALIGNMENT = 2
ENDWITH
ENDWITH
ROW = 2
JLS = TRANSFORM(RECCOUNT()+ROW)
RECROW = TRANSFORM(ROW+1)
ROW_BROWSE = 30
OEXCEL.ACTIVESHEET.ROWS(ROW).ROWHEIGHT = 24
OEXCEL.ACTIVESHEET.ROWS('&RECROW.:&JLS').ROWHEIGHT=20
DLINE_S = "A"+TRANSFORM(ROW)+":"+CHR(ASC("A")+FCOUNT()-1)+TRANSFORM(ROW)
OEXCEL.ACTIVESHEET.RANGE(DLINE_S).BORDERS(3).LINESTYLE = 9
FOR I = 1 TO FCOUNT()
OEXCEL.ACTIVESHEET.COLUMNS(I).COLUMNWIDTH = IIF(LEN(FIELD(I)) > FSIZE(FIELD(I)),LEN(FIELD(I)),FSIZE(FIELD(I)))
OEXCEL.CELLS(ROW, I).VALUE = FIELD(I)
OEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(ROW, I).HORIZONTALALIGNMENT = 3
ENDFOR
OEXCEL.RANGE(DLINE_S).SELECT
OEXCEL.SELECTION.BORDERS(-4107).LINESTYLE = 1
SCAN
IF MOD(RECNO(),ROW_BROWSE) = 1
DLINE_X = "A"+TRANSFORM(RECNO())+":"+CHR(ASC("A")+FCOUNT()-1)+TRANSFORM(RECNO())
ENDIF
FOR I = 1 TO FCOUNT("FOXTABLE")
MFIELD = FIELD(I)
WAIT WINDOW NOWAIT TRANSFORM(RECNO())+"/"+TRANSFORM(RECCOUNT())
OEXCEL.CELLS(RECNO()+ROW,I).VALUE=&MFIELD
ENDFOR
IF MOD(RECNO(),ROW_BROWSE) = 0
DLINE_X = "A"+TRANSFORM(RECNO()+ROW)+":"+CHR(ASC("A")+FCOUNT()-1)+TRANSFORM(RECNO()+ROW)
OEXCEL.ACTIVESHEET.RANGE(DLINE_X).BORDERS(4).LINESTYLE = 9
ENDIF
IF RECNO() = RECCOUNT()
DLINE_X = "A"+TRANSFORM(RECCOUNT()+ROW)+":"+CHR(ASC("A")+FCOUNT()-1)+TRANSFORM(RECCOUNT()+ROW)
OEXCEL.ACTIVESHEET.RANGE(DLINE_X).BORDERS(4).LINESTYLE = 9
ENDIF
ENDSCAN
OEXCEL.ACTIVESHEET.PAGESETUP.CENTERHORIZONTALLY = .T.
OEXCEL.ACTIVESHEET.PAGESETUP.PRINTTITLEROWS = "$1:$2"
OEXCEL.ACTIVESHEET.PAGESETUP.CENTERFOOTER="第"+"&P"+"页共"+"&N"+"页"
OEXCEL.VISIBLE = .T.
OEXCEL.ACTIVESHEET.PRINTPREVIEW
OEXCEL.VISIBLE = .F.
OEXCEL.ACTIVEWORKBOOK.SAVEAS(CEXCELFILE)
OEXCEL.WORKBOOKS.CLOSE
OEXCEL.QUIT
RELEASE OEXCEL
WAIT CLEAR
= MESSAGEBOX("转换完毕!",64,"OK")


请教lygcw9602及各位高手如何用上述代码转出到EXCEL时0不显示,宏是:ActiveWindow.DisplayZeros = False
不知如何嵌入到上述代码中
...全文
141 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjrryyx 2012-07-27
  • 打赏
  • 举报
回复
不错,谢谢!
十豆三 2012-07-27
  • 打赏
  • 举报
回复
如:
OEXCEL = Createobject("excel.application")
With OEXCEL
.WORKBOOKS.Add
.SHEETS("Sheet1").Select
.SHEETS("Sheet1").Name = "sample"
.Visible = .F.
.DISPLAYALERTS = .F.
.ActiveWindow.DisplayZeros = .F.
.CELLS.Select
With .Selection.Font
.Name = "宋体"
.Size = 10
Endwith
Endwith
OEXCEL.Visible=.T.
= Messagebox("输入几个0看一下效果!",64,"OK")
OEXCEL.WORKBOOKS.Close
OEXCEL.Quit
Release OEXCEL
十豆三 2012-07-27
  • 打赏
  • 举报
回复
既然宏代码都知道了,将 False 改为 .F.即可

.DISPLAYALERTS = .F.
之后加代码
.ActiveWindow.DisplayZeros = .F.

2,726

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧