主题:如何在vfp中调用excel实现图、表的制作(之二)
言归正传。接下来谈谈vfp调用excel生成统计图形的问题。初学者可能以为这会是件很难的事情,其实还是很简单的,不必担心。你最好用一点儿数据自己先在excel中试试如何生成一个统计图:打开Excel输入一组数据,例如从A1-A5,从上往下输入100,200,150,223,152这五个数据,然后用鼠标点击A1不放拖至A5,这样就把A1-A5选中了。接着点击’图表向导’快捷键,在’图表类型’中选择’柱形图’,’子图表类型’就选择第一个,按’下一步’,在下一窗口中的’系列产生在:’选择’列’,因为我们的数据是从上往下按列摆放的。接着按’下一步’,进入新的窗口,在’图表标题’栏输入:各生产车间产量柱形图;在分类(X)轴栏输入:车间;在’数值(Y)轴’输入:产量。点击’下一步’,在’图表位置’窗口选中’将图表作为其中的对象插入’,点击’完成’按钮即可看见生成的柱形图形。
我们从vfp调用excel生成图表的角度来简单了解一下excel中的一些基本概念:
一.对象层次:(由高到低)
Application对象:它在excel对象结构中处于顶层。形象地说,双击Excel图表就相当于创建了一个Application对象。
↓
Workbooks对象:即工作簿对象(集),启动Excel后点击’新建’或’打开’快捷键就相当于创建或打开了一个Workbook。
↓
Worksheets对象:即工作表(集)。启动Excel后工作表集会自动默认含有sheet1、sheet2和sheet3这三个工作表。
Charts对象: 图表(集),与Worksheets对象同级
↓
Cells对象:表格(集),即我们看到的一个个格子。
Range对象: 是格子的一个范围,如上面的A1-A5,与Cells对象同级
二.VBA(Visual Basic Application):它是一种面向对象的程序语言,内嵌于Excel,Excel的各项功能都可以直接使用VBA进行操作。只不过Excel提供的各种菜单、快捷键和可视部件使一般人在操作上更容易接受,而VBA是用其代码来实现操作的,可以这么说Excel中的各项功能用VBA编程也无所不能。
三.宏:宏是一个指令集合,它可以使Excel自动完成用户指定的动作组合。而且宏的录制和执行也比较简单,并不需要用户具有任何编程经验或VB编辑器使用经历。最好大家能在Excel中(如用上面提到的数据)自行尝试一下怎样录制宏以及如何执行所录制的宏。
VBA采用与Visual Basic基本一致的语法结构,要学好也不容易。对VBA有深入了解欲望的朋友请参考有关书籍。不过用vfp调用excel需要掌握的VBA知识所幸不太多。
下面我们就来实际地看一段代码并把它敲入电脑并运行之,体会一下成功的喜悦并稍微有点成就感。
eole=CreateObject("excel.application")
eole.Workbooks.Add
xlSheet=eole.Sheets(1)
xlSheet.Cells(1,1).value="一车间"
xlSheet.Cells(1,2).value=100
xlSheet.Cells(2,1).value="二车间"
xlSheet.Cells(2,2).value=200
xlSheet.Cells(3,1).value="三车间"
xlSheet.Cells(3,2).value=150
xlSheet.Cells(4,1).value="四车间"
xlSheet.Cells(4,2).value=223
xlSheet.Cells(5,1).value="五车间"
xlSheet.Cells(5,2).value=152
fanwei="A1:B5"
XlSheet.Range(fanwei).select
eole.Charts.Add
eole.ActiveChart.Location(2,"Sheet1")
eole.ActiveChart.SetSourceData(Xlsheet.Range(fanwei),2)
eole.ActiveChart.ChartType = 51 && 换成55再试试
eole.ActiveChart.HasLegend=.T.
With eole.ActiveChart
.HasTitle = .T.
.ChartTitle.Characters.Text = '各生产车间产量柱形图'
.Axes(1).HasTitle = .T.
.Axes(1).AxisTitle.Characters.Text = '车间'
.Axes(2).HasTitle = .T.
.Axes(2).AxisTitle.Characters.Text = "产量"
EndWith
eole.DisplayAlerts=.F.
fname="c:\abc.xls"
eole.ActiveWorkbook.Saveas(fname)
eole.quit
rele eole,XlSheet
eole=CreateObject("Excel.application")
eole.Workbooks.Open(fname)
eole.visible=.T.
rele eole
return
进入vfp,在命令框内打入:modify command tx.prg ,然后敲入以上代码,核对无误后按Ctrl+w存盘,用do tx 运行。如果不成功可能是代码打错或你的微机未安装MS Excel。若因打错代码而失败请重启一下操作系统再试。代码是什么含义下回再说。 待续...
我们从vfp调用excel生成图表的角度来简单了解一下excel中的一些基本概念:
一.对象层次:(由高到低)
Application对象:它在excel对象结构中处于顶层。形象地说,双击Excel图表就相当于创建了一个Application对象。
↓
Workbooks对象:即工作簿对象(集),启动Excel后点击’新建’或’打开’快捷键就相当于创建或打开了一个Workbook。
↓
Worksheets对象:即工作表(集)。启动Excel后工作表集会自动默认含有sheet1、sheet2和sheet3这三个工作表。
Charts对象: 图表(集),与Worksheets对象同级
↓
Cells对象:表格(集),即我们看到的一个个格子。
Range对象: 是格子的一个范围,如上面的A1-A5,与Cells对象同级
二.VBA(Visual Basic Application):它是一种面向对象的程序语言,内嵌于Excel,Excel的各项功能都可以直接使用VBA进行操作。只不过Excel提供的各种菜单、快捷键和可视部件使一般人在操作上更容易接受,而VBA是用其代码来实现操作的,可以这么说Excel中的各项功能用VBA编程也无所不能。
三.宏:宏是一个指令集合,它可以使Excel自动完成用户指定的动作组合。而且宏的录制和执行也比较简单,并不需要用户具有任何编程经验或VB编辑器使用经历。最好大家能在Excel中(如用上面提到的数据)自行尝试一下怎样录制宏以及如何执行所录制的宏。
VBA采用与Visual Basic基本一致的语法结构,要学好也不容易。对VBA有深入了解欲望的朋友请参考有关书籍。不过用vfp调用excel需要掌握的VBA知识所幸不太多。
下面我们就来实际地看一段代码并把它敲入电脑并运行之,体会一下成功的喜悦并稍微有点成就感。
eole=CreateObject("excel.application")
eole.Workbooks.Add
xlSheet=eole.Sheets(1)
xlSheet.Cells(1,1).value="一车间"
xlSheet.Cells(1,2).value=100
xlSheet.Cells(2,1).value="二车间"
xlSheet.Cells(2,2).value=200
xlSheet.Cells(3,1).value="三车间"
xlSheet.Cells(3,2).value=150
xlSheet.Cells(4,1).value="四车间"
xlSheet.Cells(4,2).value=223
xlSheet.Cells(5,1).value="五车间"
xlSheet.Cells(5,2).value=152
fanwei="A1:B5"
XlSheet.Range(fanwei).select
eole.Charts.Add
eole.ActiveChart.Location(2,"Sheet1")
eole.ActiveChart.SetSourceData(Xlsheet.Range(fanwei),2)
eole.ActiveChart.ChartType = 51 && 换成55再试试
eole.ActiveChart.HasLegend=.T.
With eole.ActiveChart
.HasTitle = .T.
.ChartTitle.Characters.Text = '各生产车间产量柱形图'
.Axes(1).HasTitle = .T.
.Axes(1).AxisTitle.Characters.Text = '车间'
.Axes(2).HasTitle = .T.
.Axes(2).AxisTitle.Characters.Text = "产量"
EndWith
eole.DisplayAlerts=.F.
fname="c:\abc.xls"
eole.ActiveWorkbook.Saveas(fname)
eole.quit
rele eole,XlSheet
eole=CreateObject("Excel.application")
eole.Workbooks.Open(fname)
eole.visible=.T.
rele eole
return
进入vfp,在命令框内打入:modify command tx.prg ,然后敲入以上代码,核对无误后按Ctrl+w存盘,用do tx 运行。如果不成功可能是代码打错或你的微机未安装MS Excel。若因打错代码而失败请重启一下操作系统再试。代码是什么含义下回再说。 待续...