| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3700 人关注过本帖, 2 人收藏
标题:wps属性
只看楼主 加入收藏
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:273
专家分:227
注 册:2012-12-20
结帖率:91.18%
收藏(2)
已结贴  问题点数:20 回复次数:12 
wps属性
在VFP中,怎么应用 wps ,也就是WPS有些属性可用,或者VFP有升级版本,包含有WPS的一些属性。
搜索更多相关主题的帖子: 学院 元素 
2013-06-09 09:56
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:12 
没用过,参考下吧


1.创建et对象
Wps=Createobject("et.application")

2.添加新工作簿
Wps.Workbooks.Add

3.设置第1个工作表为激活工作表
Wps.Worksheets("sheet1").Activate

4.打开指定工作簿
Wps.Workbooks.Open("c:/book1.xls")

5.显示ET窗口
Wps.Visible=.T.

6.更改ET标题栏
Wps.Caption="VFP调用WPS"

7.给单元格赋值
Wps.cells(1,4).Value="第1行第4列"

8.设置指定列的宽度(单位:字符个数)
Wps.ActiveSheet.Columns(1).ColumnWidth=5

9.设置指定行的高度(单位:磅)
Wps.ActiveSheet.Rows(1).RowHeight=1 &&(设定行高为1磅,1磅=0.035厘米)
Wps.ActiveSheet.Rows("50:100").RowHeight=1 &&设置第50行至100行的高度

10.在第18行之前插入分页符
Wps.Worksheets("Sheet1").Rows(18).PageBreak=1

11.在第4列之前删除分页符
Wps.ActiveSheet.Columns(4).PageBreak=0

12.指定边框线宽度(Borders参数如下)
Wps.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3

13.设置四个边框线条的类型
Wps.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1
*(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚
、4-点虚、9-双细实线)

14.设置页眉
Wps.ActiveSheet.PageSetup.CenterHeader="报表1"

15.设置页眉(字体大小)
Wps.ActiveSheet.PageSetup.CenterHeader="&50报表1" &&'&'后面的50可以自定义,表示字体的大小

16.设置页脚
Wps.ActiveSheet.PageSetup.CenterFooter="第&P页"

17.设置页脚(字体大小)
Wps.ActiveSheet.PageSetup.CenterFooter="&28第&P页" &&'&'后面的28可以自定义,表示字体的大小

18.设置页眉到顶端边距为2厘米
Wps.ActiveSheet.PageSetup.HeaderMargin=2/0.035

19.设置页脚到底边距为3厘米
Wps.ActiveSheet.PageSetup.FooterMargin=3/0.035

20.设置顶边距为2厘米
Wps.ActiveSheet.PageSetup.TopMargin=2/0.035

21.设置底边距为4厘米
Wps.ActiveSheet.PageSetup.BottomMargin=4/0.035

22.设置左边距为2厘米
Wps.ActiveSheet.PageSetup.LeftMargin=2/0.035

23.设置右边距为2厘米
Wps.ActiveSheet.PageSetup.RightMargin=2/0.035

24.设置页面水平居中
Wps.ActiveSheet.PageSetup.CenterHorizontally=.T.

25.设置页面垂直居中
Wps.ActiveSheet.PageSetup.CenterVertically=.T.

26.设置页面纸张大小(1-窄行8?5?11 39-宽行14?11 9:A4)
Wps.ActiveSheet.PageSetup.Papersize=1

27.打印单元格网线
Wps.ActiveSheet.PageSetup.PrintGridlines=.T.

28.拷贝整个工作表
Wps.ActiveSheet.UsedRange.Copy

29.拷贝指定区域
Wps.ActiveSheet.Range("A1:E2").Copy

30.粘贴
Wps.WorkSheet("Sheet2").Range("A1").PasteSpecial

31.在第2行之前插入一行
Wps.ActiveSheet.Rows(2).Insert

32.在第2列之前插入一列
Wps.ActiveSheet.Columns(2).Insert

33.设置字体
Wps.ActiveSheet.Cells(2,1).Font.Name="黑体"

34.设置字体大小
Wps.ActiveSheet.Cells(1,1).Font.Size=25

35.设置字体为斜体
Wps.ActiveSheet.Cells(1,1).Font.Italic=.T.

36.设置整列字体为粗体
Wps.ActiveSheet.Columns(1).Font.Bold=.T.

37.清除单元格公式
Wps.ActiveSheet.Cells(1,4).ClearContents

38.打印预览工作表
Wps.ActiveSheet.PrintPreview

39.打印输出工作表
Wps.ActiveSheet.PrintOut

40.工作表另存为
Wps.ActiveWorkbook.SaveAs("c:/temp/test2.xls")

41.放弃存盘 && 避免出现保存对话框
Wps.ActiveWorkbook.saved=.T.

42.存盘
Wps.ActiveWorkbook.Save

43.关闭工作簿
Wps.Workbooks.Close

44.退出WPS ET
Wps.Quit
2013-06-09 10:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
楼主明显没搞清楚OLE是怎么回事。VFP创建了 OLE Control 对象,它就只从这个对象中调用里面的属性、方法、函数,是对象提供的,与VFP完全没有关系,不是VFP版本的问题,是WPS自身提供了什麽的问题,所以VFP能够使用比它生产日期晚得多的对象,就是这个道理。VFP调用Office 2010甚至2013的软件包,也是没问题的,不用升级。

WPS的制作,是力求兼容Office的,在大多数常用的功能上,都与Office一致。我没试过它的OLE功能,估计也差不多。

[ 本帖最后由 TonyDeng 于 2013-6-9 13:07 编辑 ]

授人以渔,不授人以鱼。
2013-06-09 13:03
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:273
专家分:227
注 册:2012-12-20
收藏
得分:0 
确实很深奥,很有用,二楼大师的都可以用,三楼大师的指出也很正常。
在系统只装   WPS中,et=createobject("excel.application")出错,但et=createobject("wps.application")可以。
在系统只装office中,et=createobject("wps.application")出错,但et=createobject("excel.application")可以。
能把不同系统整合,同时能用,vfp的应用就广了。我是在想和做,尝试这个,让大师们见笑了。
2013-06-09 13:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
两个都能装,两个都能用,同时用。

授人以渔,不授人以鱼。
2013-06-09 13:46
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
在系统中同时安装两套软件,CreateObject()哪个就用哪个,用两次CreateObject()启动两个不同的对象就可以同时用。其实我上面已经说得很明白,这是VFP在调用机器中安装的软件,与VFP无关,只要系统中存在,就可以调用,不管调用多少个,都是一样,正如Windows能够同时开启多个软件一样。

授人以渔,不授人以鱼。
2013-06-10 22:02
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:273
专家分:227
注 册:2012-12-20
收藏
得分:0 
做好的SETUP文件,在不同电脑中运行,事先不知安装了哪一套(EXCEL或WPS)。
如果没安装WPS而CreateObject()这个就出错。
怎样识别电脑安装了(EXCEL或WPS),从而准确用CreateObject()呢?请大师明示!谢谢!
2013-06-12 07:19
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
可以试试用on error命令后捕捉错误。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-06-12 07:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
检查CreateObject()的返回值,如果创建对象不成功,返回值不是对象类型。
o = CreateObject()
IF VARTYPE(o) != "O"
    && 创建对象不成功
ENDIF

授人以渔,不授人以鱼。
2013-06-12 09:14
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:273
专家分:227
注 册:2012-12-20
收藏
得分:0 
9楼方法好,但就是执行完     o = CreateObject("wps.application")    && 假如我电脑没安装 WPS
就出一句按任意键继续...    Press any key to continue...  
要是不出现这句就好了.
2013-06-12 09:28
快速回复:wps属性
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016689 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved