vfp控制excel全功略(转贴)

流星尔 2003-08-06 11:52:44
在VFP中全面控制Excel

[返回]

  VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:

  1.创建Excel对象

  eole=CREATEOBJECT(′Excel.application′)

  2.添加新工作簿

  eole.Workbooks.add

  3.设置第3个工作表为激活工作表

  eole.Worksheets(″sheet3″).Activate

  4.打开指定工作簿

  eole.Workbooks.Open(″c:\temp\ll.xls″)

  5.显示Excel窗口

  eole.visible=.t.

  6.更改Excel标题栏

  eole.Caption=″VFP应用程序调用Microsoft Excel″

  7.给单元格赋值

  eole.cells(1,4).value=XM(XM为数据库字段名)

  8.设置指定列的宽度(单位:字符个数)

  eole.ActiveSheet.Columns(1).ColumnWidth=5

  9.设置指定行的高度(单位:磅)

  eole.ActiveSheet.Rows(1).RowHeight=1/0.035

  (设定行高为1厘米,1磅=0.035厘米)

  10.在第18行之前插入分页符

  eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1

  11.在第4列之前删除分页符

  eole.ActiveSheet.Columns(4).PageBreak=0

  12.指定边框线宽度(Borders参数如下)

  ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3

  13.设置四个边框线条的类型

  eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1

  (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)

  14.设置页眉

  eole.ActiveSheet.PageSetup.CenterHeader=″报表1″

  15.设置页脚

  eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″

  16.设置页眉到顶端边距为2厘米

  eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035

  17.设置页脚到底边距为3厘米

  eole.ActiveSheet.PageSetup.FooterMargin=3/0.035

  18.设置顶边距为2厘米

  eole.ActiveSheet.PageSetup.TopMargin=2/0.035

  19.设置底边距为4厘米

  eole.ActiveSheet.PageSetup.BottomMargin=4/0.035

  20.设置左边距为2厘米

  veole.ActiveSheet.PageSetup.LeftMargin=2/0.035

  21.设置右边距为2厘米

  eole.ActiveSheet.PageSetup.RightMargin=2/0.035

  22.设置页面水平居中

  eole.ActiveSheet.PageSetup.CenterHorizontally=.t.

  23.设置页面垂直居中

  eole.ActiveSheet.PageSetup.CenterVertically=.t.

  24.设置页面纸张大小(1-窄行8511 39-宽行1411)

  eole.ActiveSheet.PageSetup.PaperSize=1

  25.打印单元格网线

  eole.ActiveSheet.PageSetup.PrintGridlines=.t.

  26.拷贝整个工作表

  eole.ActiveSheet.UsedRange.Copy

  27.拷贝指定区域

  eole.ActiveSheet.Range(″A1:E2″).Copy

  28.粘贴

  eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial

  29.在第2行之前插入一行

  eole.ActiveSheet.Rows(2).Insert

  30.在第2列之前插入一列

  eole.ActiveSheet.Columns(2).Insert

  31.设置字体

  eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″

  32.设置字体大小

  eole.ActiveSheet.Cells(1,1).Font.Size=25

  33.设置字体为斜体

  eole.ActiveSheet.Cells(1,1).Font.Italic=.t.

  34.设置整列字体为粗体

  eole.ActiveSheet.Columns(1).Font.Bold=.t.

  35.清除单元格公式

  eole.ActiveSheet.Cells(1,4).ClearContents

  36.打印预览工作表

  eole.ActiveSheet.PrintPreview

  37.打印输出工作表

  eole.ActiveSheet.PrintOut

  38.工作表另为

  eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)

  39.放弃存盘

  eole.ActiveWorkbook.saved=.t.

  40.关闭工作簿

  eole.Workbooks.close

  41.退出Excel

  eole.quit

  以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及中文Windows 98。

...全文
1394 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
刚刚l 2010-06-09
  • 打赏
  • 举报
回复
IF EMPTY(TRIM(thisformset.filepath))
MESSAGEBOX( "请先选择要导入的excel文件! ",0, "提示 ")
RETURN
ENDIF
这个判断是什么为空?
thisformset.filepath 这句是什么意思?请问
[Quote=引用 34 楼 liujianjun_ 的回复:]
如何从excel读取数据

***建立一个excel对象*******
LOCAL hb1 as excel.application
csheetname=TRIM(thisform.text2.value)&&读取用户要读取excel的sheet名

***读取数据源所在的EXCEL文件名****
IF EMPTY(TRIM(thisformset.……
[/Quote]
HsyPrg 2003-10-25
  • 打赏
  • 举报
回复
我用VFP7做了一个通用程序,通过设置EXCEL模板文件和一个DBF格式的设置文件可以
自动将数据转换为EXCEL文件,功能强大灵活,有没有人想要啊?
csyw 2003-10-23
  • 打赏
  • 举报
回复
mark
wzhgsww 2003-09-22
  • 打赏
  • 举报
回复
up
su413 2003-09-18
  • 打赏
  • 举报
回复
太好了,谢谢!
小菲1215 2003-09-06
  • 打赏
  • 举报
回复
老大,怎么用啊,我在第一句就不行了
LOCAL hb1 as excel.application
什么找不到别名啊
小菲1215 2003-09-05
  • 打赏
  • 举报
回复
太好了,我正不知道怎么办呢,老大,太感谢你了
rida 2003-08-26
  • 打赏
  • 举报
回复
同意 xiolig(凌霄)

把模板做好了,只要向模板中写数据就可以了。那些复杂的格式手工一次做好,应当比写
代码控制来得快。考虑到模板文件的安全性,可以放在表的备注字段中,用的时候读出来。

不过如果有谁可以写个控件把vfp设计好的报表能原格式地导到Excel中,那就太好了。
谁做出来我可以用10,000分相谢。
xiolig 2003-08-25
  • 打赏
  • 举报
回复
用 VFP + EXCEL 做报表,我倾向于在 EXCEL 中进行主要的格式调整:
把报表做成模板形式,用特定的符号或单元格注释等形式进行模板描述,如:
&name: 以符号 & 开始一个原义字段,如姓名
*Page: 以符号 * 表示一个特定内容,如页号
当然,可能还需要在名称后增加一定的内容进行更多的描述,如奇/偶页等,因为要增加程序的语法分析难度,也不便于用户掌握,不宜太复杂。
对于表头、表体等区域的划分及其它描述,我建议使用专门的行(列)进行描述,不妨把首行(列)设计成专门的描述区,并把它们隐藏起来。
最后,在进行软件发布时,要在软件说明书中简要注明模板文件的格式要求。
流星尔 2003-08-22
  • 打赏
  • 举报
回复
access中是一样的。
专程vb的语法就行。
sbwgi 2003-08-22
  • 打赏
  • 举报
回复
请问一下,怎样在ACCESS中实现导入,导出EXCEL呢?
流星尔 2003-08-20
  • 打赏
  • 举报
回复
那就要自己写代码控制了。
采用第一种方式。
fatestest 2003-08-20
  • 打赏
  • 举报
回复
我原本是用 report form to file(.xls)直接把生成的报表转成EXCEL格式,但默认中的EXCEL格式是报表中的所有数据和字段名都在一个格中,比较的乱,我想把它定一下位
流星尔 2003-08-20
  • 打赏
  • 举报
回复
to tanyx:
你可以开帖子,把资料给大家共享一下,狐友门感谢你
流星尔 2003-08-20
  • 打赏
  • 举报
回复
打开excel,工具-宏-录制新宏,然后开始操作,操作完毕以后,点停止录制,然后编辑宏,就可以看到代码
流星尔 2003-08-20
  • 打赏
  • 举报
回复
HB1.workbooks.open("c:\aa.xls")
fatestest 2003-08-20
  • 打赏
  • 举报
回复
我现就是想先保存我那个报表的文件,然后在打开它进行设置,但是就是不知道这个命令怎么写,
流星尔 2003-08-19
  • 打赏
  • 举报
回复
to foxer:
如果在excel里可以操作的话,在VFP里也就可以控制,你可以在EXCEL里录制宏,记录下代码。
unlist 2003-08-19
  • 打赏
  • 举报
回复
TO Liujianjun
请问怎样可以在EXCEL里录制宏,记录下代码
能举例吗
tanyx 2003-08-19
  • 打赏
  • 举报
回复
我还有Access全攻略呢,要不要啊?
加载更多回复(39)

2,722

社区成员

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

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