搜档网
当前位置:搜档网 › 从Excel表转移数据到VFP表的编程实现方法

从Excel表转移数据到VFP表的编程实现方法

从Excel表转移数据到VFP表的编程实现方法
从Excel表转移数据到VFP表的编程实现方法

从Excel表转移数据到VFP表的编程实现方法

高进龙,崔尚森,王文林

(长安大学,陕西西安710054)

摘要:把整个一个Excel表数据转换为VFP表并不难,难就难在把Excel表中某些行某些列的数据转移到已有数据的某个VFP表中,而且可能还会遇到两表间相应数据列的名称、数据类型、排列顺序不同的问题。作者用VFP编程,轻松实现了这一数据转移工作。本文将就这一程序的设计思想和实现方法做简要介绍。

关键词:Excel表,VFP表,转移数据,编程实现

作者简介:高进龙(1964-),男,陕西华阴市人,长安大学地测学院教务办公室主任,讲师。

一、问题的提出

VFP(Visual Foxpro)是一种关系型数据库管理系统,其强大的数据处理能力及其面向对象的编程能力,使其得到数据库应用程序开发人员的广泛使用。而Excel则是一个优秀的电子表格处理软件,在兼容性、操作界面、公式运算、图表表现等方面有着独到的优势,成为广大办公应用人员常用的工具。因为两种软件各有短长,所以在实际应用

中常会遇到两者之间数据的

转移问题。

把整个VFP表转换为

Excel表或者把整个Excel表

转换为VFP表的工作,两种

软件都提供了相应的转换功

能,一般用户很容易操作。但

是把Excel表中部分数据转移

到已存在的VFP表中的情况

就要复杂得多。两种表的数据

转移可能存在以下三个方面

的问题:一是Excel表中可能

存在某些行的数据不需要或

不能被转移,需要转移或者可

以转移的仅是其中较规范的

某些行;二是Excel表并非所

有列的数据,而只是某些列的数据需要被转移到VFP表的相应数据列中,两表中相应列的名称和顺序可能不一致;三是Excel表中与VFP表对应数据列的数据类型可能不一致。因此,对业已存在的这两类数据表间数据转移工作,用手工完成非常麻烦和费时。

在工作实践中,作者运用VFP编程驱动Excel的能力,设计完成了从Excel到VFP的数据转移程序,成功地解决了这一问题。

二、设计思路

综合考虑上述三个问题,程序设计宜采用

的方法是把Excel表中数据按单元格逐一转移到VFP表中,所以,需要完成下列三项任务:

(1)建立Excel表中要转移数据的列与VFP表中要接受数据的字段之间一一对应的

关系,这项工作等于给两表之间的数据转移牵图1程序构件展示

线搭桥,是非常关键的一项任务(如图2所示)。

(2)读取Excel表中要转移数据的起止行行号,从横向上确定要转移数据的范围。Excel表中一行数据(也可能是一行中的某些列)对应VFP表中的一条记录。

(3)转移数据时要处理两表中数据类型不一致的问题,以及数值型数据小数位数不一致而必须考虑的数据四舍五入问题。

在考虑上述三项任务的实现方法时,还要考虑用户操作的便捷性,直观性。本程序的所有操作对象都展现在图1所示的桌面上,所有操作无需键盘输入,只需点击鼠标。

三、实现方法

本程序设计了一张表单,在表单顶部设置了五个按钮、两个文本框,下部设置了一个表格控件(如图1下半部所示`),它们将完成下列五个步骤的工作:

1、打开数据表

指打开已存在的VFP数据表,打开的VFP 表会显示在表单下部的表格控件中。此表被打开,一是为了直观地向用户展示表的结构及数据,二是为了在建立与Excel表关联关系时供用户用鼠标选择相关的列。

2、打开Excel表

指打开要转移数据的Excel表。首先利用VFP系统自带的函数创建一个Excel应用对象,并借助该对象的方法打开Excel表,以后VFP程序还要调用该对象的方法和属性完成对Excel表的各种操作。

3、XL—VFP勾通

即建立Excel表中列与VFP表中对应字段之间的关联关系。用户在操作此项功能前,先要把Excel表和VFP表平铺在桌面上(如图1所示),并分别点击鼠标到要建立关联的Excel 表列和VFP表字段列中使其被选中,然后再点击“XL—VFP勾通”按钮,程序便会自动在关联数据表中增加一条记录,保存两表间数据的关联关系,依次建立两表中所有数据项之间的关联关系,所有操作均在图1展示的界面

中完成,直观便捷。

上述方法建立的两表间关联关系存储在一个磁盘数据表中,可以被多次重复使用。此关联表的内容与结构用图3所示的表单展示给用户,其右上角的“?”按钮提供一个功能菜单帮助用户操作此表,如用户不再重用此表中关联数据时可以清除其中记录。

当用户不需要查看关联表的内容时,图3所示表单可以减缩为一个命令按钮排列在打开“Excel表”按钮之右。

4、确定起止行号

读取Excel表中需要转移数据的起、止行行号,并记入表单顶部的两个文本框中。行号的读取可以用鼠标先点击Excel表中起始行的任意一个列的单元格使其得到焦点,然后再点击存放起始行号的文本框,程序通过调用Excel应用对象的相关属性读取起始行号并存入文本框中。终止行的读取方法与之相同。当然也可以直接在文本框中输入起止行号。

5、数据转移

上述四个步骤完成后,便可点击表单右上部的“Xl→Vfp”按钮,进行数据的转移工作。

“Xl→Vfp”按钮的click

事件代码按照关

图3 Excel-VFP关联表

图2 Excel-VFP数据转移示意图

联表(图3所示)中记录的两表间数据项的关联关系,按照一行一个记录的方式,将Excel 表每一行中相关单元格的数据逐一复制到VFP表中对应的字段中,复制过程还可能要转换数据类型以及对数值型数据做小数位数的调整工作。

四、主要代码

1、打开Excel表的代码:

excel_name=getfile('xls','Excel文件')

if empt(excel_name)

retu

endif

#define True 1

XLApp = createobject("Excel.Application")

XLApp.visible = True

XLApp.Workbooks.Open(excel_name)

thisform.refresh

2、建立XL表数据与VFP表数据关联关系的代码:

if type('xlapp') = 'U' ;

or empt(thisform.VfpGrid. recordsource)

retu

endif

this.forecolor = rgb(255,0,0)

nXlColumn = xlapp.activecell.column

nXlColumn1 = int(nXlColumn/26)

nXlColumn2 = mod(nXlColumn,26)

sAZ= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

do case

case nXlColumn1 > 26

messagebox('xl列值太大!')

retu

case nXlColumn1= 0

nXlColumn1 = ''

nXlColumn2 = subs(sAZ, nXlColumn2,1)

case nXlColumn1>0 and nXlColumn2>0 nXlColumn1 = subs(sAZ,nXlColumn1,1) nXlColumn2 = subs(sAZ,nXlColumn2,1)

case nXlColumn1>0 and nXlColumn2 = 0 nXlColumn1 = subs(sAZ,nXlColumn1-1,1) nXlColumn2 = 'Z'

endcase

sele xltovfp

loca for vfp字段= cFieldname

if !found()

loca for empt(alltrim(vfp字段))

if !found()

appe blank

endif

endif

sele(tabname)

repl xltovfp.vfp字段with cFieldname,; xltovfp.值类型with type(cFieldname),; xltovfp.xl列with nXlColumn1 + nXlColumn2 do case

case xltovfp.值类型= 'C'

repl xltovfp.常量值with &cFieldname

case xltovfp.值类型= 'N'

repl xltovfp.常量值with;

str(&cFieldname,18,6)

case xltovfp.值类型= 'D'

repl xltovfp.常量值with DtoC(&cFieldname) endcase

thisform.gridcontainer.xlvfpgrid.setfocus

=inkey(0.1)

this.forecolor = rgb(0,128,128)

3、由XL表向VFP表导入数据的代码:

this.forecolor = rgb(255,0,0)

sAZ= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' for i = thisform.txtrow1.value;

to thisform.txtrow2.value

nXLrow = i

sele(tabname)

appe blank

sele xltovfp

scan

if empt(vfp字段)

loop

endif

cXlcolumn = alltrim(xl列)

do case

case len(cXlcolumn) = 0

nXlcolumn = 0

case len(cXlcolumn) = 1

nXlcolumn = at(cXlcolumn,sAZ)

case len(cXlcolumn) = 2

nXlcolumn=26*at(left(cXlcolumn,1),sAZ); + at(right(cXlcolumn,1),sAZ)

endcase

cVfpcolumn = alltrim(vfp字段)

cConstant = alltrim(常量值)

cDataType = alltrim(值类型)

sele(tabname)

if empt(cXlcolumn)

if !empt(cConstant)

do case

case cDataType = 'C'

repl &cVfpcolumn with cConstant

case cDataType = 'N'

repl &cVfpcolumn with val(cConstant)

case cDataType = 'D'

repl &cVfpcolumn with CtoD(cConstant)

endcase

endif

else

xlCellV alue = XlApp.ActiveSheet.Cells[nXlrow,nXlcolumn].value if type('xlCellV alue') <> cDataType

do case

case type('xlCellV alue') = 'N';

and cDataType = 'C'

cDecimal = alltrim(str((xlCellvalue - int(xlCellV alue))*10000))

do while right(cDecimal,1) = '0'

cDecimal = left(cDecimal,len(cDecimal)-1)

enddo

nDecimal = len(cDecimal)

nInteger = len(alltrim(str(int(xlCellV alue))))

repl &cVfpcolumn with str(xlCellV alue,nInteger+nDecimal+1,nDecimal)

case type('xlCellV alue') = 'N' and cDataType = 'D'

xlCellV alue = str(xlCellV alue,8)

repl &cVfpcolumn with CtoD(subs(xlCellV alue,1,4); +'/'+subs(xlCellV alue,5,2)+'/'+subs(xlCellV alue,7,2)) case type('xlCellV alue') = 'C' and cDataType = 'N'

repl &cVfpcolumn with val(alltrim(xlCellV alue)) case type('xlCellV alue') = 'C' and cDataType = 'D' repl &cVfpcolumn with CtoD(alltrim(xlCellV alue)) case type('xlCellV alue') = 'D' and cDataType = 'C' repl &cVfpcolumn with DtoC(xlCellV alue)

endcase

else if cDataType = 'C'

repl &cVfpcolumn with alltrim(xlCellV alue)

else

repl &cVfpcolumn with xlCellV alue

endif

endif

endif

sele xltovfp

endscan

endfor

=inkey(0.2)

this.forecolor = rgb(0,128,128)

thisform.vfpgrid.setfocus

4、记录起止行号的文本框控件代码(两个文本框代码相同):

this.value=iif(!type('xlapp')='U',xlapp.selection.row,1) thisform.refresh

五、结束语

本程序经过两年多的使用,证明其操作简便、易学易用,在处理从Excel表到VFP表的数据转移工作方面灵活、快捷、高效。作为VFP应用系统很实用的一个组成部分,给日常的数据管理工作带来了很大的便利。

参考文献:

[1] 李加福等. Visual FoxPro6.0中文版入门与提高[M]. 北京. 清华大学出版社. 1999年6月.

[2] 焦赞康. 在VFP中全面控制Excel. 中国计算机报[J]. 1999.7.

[3] 何咏明. VFP与Excel交互编程. 计算机世界报第01期C14、C15.

[4] 张夏林,汪新庆,王兴. 编程实现VFP6.0操纵Word灵活打印特殊格式的报表. 电脑编程技巧与维护[J]. 2001年2月. 第2期.

The method of achieved by programming to transfer data from

Excel-table to VFP-table

Gao Jinlong,Cui Shangsen,Wang Wenlin

(Chang’an University,Xi’an China 710054)

Abstract:It’s not difficult to wholly transfer data to a VFP-table from a Excel-table, the difficult point is to transfer some rows of data or some columns in a row of data from a Excel-table to a existing VFP-table. And that it’s possible to appear such as the name of the columns, the type of the data, the order of the columns is different in the two class tables. The author of this paper easily achieved this work by VFP programming.

KeyWords:Excel-table, VFP-table, transfer of data, achieved by programming

Excel如何利用透视表制作汇总报表

Excel如何利用透视表制作汇总报表 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟! 篇一:Excel数据透视表和透视图的制作Excel2007数据透视表和透视图的制作Excel2007 数据透视是一种可以快速汇总大量数据的交互式方法。使用数据透视表可以深入分析数值数据,并且可以回答一些预计不到的数据问题。数据透视表是针对以下用途特别设计的:以多种友好方式查询大量数据;对数值数据进行分类汇总,按分类和子分类对数据进行汇总,创建自定义计算和公式;展开或折叠要关注结果的数据级别,查看感兴趣区域摘要数据的明细;将行移动到列或将列移动到行,以查看源数据的不同汇总;对最有用和最关注的数据子集进行筛选、排序、分组和有条件地设置格式。 1.数据透视表的创建

设某Excel2007 工作表如图1所示。可以看出,数据显得有些杂乱,通过数据透视表,我们可很方便地查看到想要的数据。下面,我们一起来创建数据透视表。图1 原始台账第1步打开“数据透视表”设置框首先,在有数据的区域内单击任一单元格(如C5),以确定要用哪些数据来创建数据透视表。接着,单击“插入”,切换到该工具面板之下;然后,单击“数据透视表”,如图2所示。图2 打开“数据透视表”设置框第2步选择摆放位置首先,从弹出的对话框看,它已确定出了要用哪些数据区域来创建数据透视表。本例为“Sheet1!$A$1:$E$16”,这正是我们所需,不用修改。接着,选择要将数据透视表摆放到什么位置,在“放置数据透视表的位置”下进行选择即可。考虑到本例的数据很少,可选择本工作表,这样,还可随时查看到源数据。这里选择“现有工作表”,单击“位置”后的展开按钮,如图3所示。图3 选择数据透视表的摆放

excel2019数据透视表如何排序

excel2019数据透视表如何排序 篇一:excel2019之数据透视表和数据透视图技巧 本章导读 利用数据透视表可以快速汇总大量数据并进行交互,还可以深入分析数值数据,并回答一些预计不到的数据问题。使用Excel数据透视图可以将数据透视表中的数据可视化,以便于查看、比较和预测趋势,帮助用户做出关键数据的决策。 8 数据透视表和数据透视图实战技巧 数据透视表基本操作实战技巧 使用数据透视表可以汇总、分析、浏览和提供摘要数据。掌握了数据透视表的额基本操作,可以为数据分析打下基础。 数据透视表应用实战技巧 如果要分析相关的汇总值,尤其是在要合计较大的数字列表并对每个数字进行多种比较时,使用数据透视表会很容易。 数据透视图操作实战技巧 数据透视图是提供交互式数据分析的图表,用户可以更改数据,查看不同级别的明细数据,还可以重新组织图表的布局。 8.1 数据透视表基本操作实战技巧 例1 利用数据透视表可以快速汇总大量数据并进行交互,还可以深入分析数值数据,并

回答一些预计不到的数据问题。其创建方法如下: 打开工作表,选中数据区域中任意单元格,单击“插入”选项卡“表”组中“数据透视表”按钮下方的下拉按钮,在弹出的下拉菜单中选择“数据透视表”选项,如下图所示。 再次单击折叠按钮,展开对话框,其他选项保持默认,如下图所示。 在“创建数据透视表”对话框的“选择放置数据透视表的位置”选项区中选中“新工作表”单选按钮,则 在创建数据透视表的同时新建新工作表;若选中“现有工作表”单选按钮,可在所选位置创建数据透视表。 弹出“创建数据透视表”对话框,单击“表/区域”文本框右侧的折叠按钮,选择数据区域,如下图所示。 单击“确定”按钮,在新工作表中创建数据透视表,此时,新工作表中将显示“数据透视表字段列表”任务窗格,如下图所示。 在“数据透视表字段列表”任务窗格的“选择要添加到报表的字段”选项区中选中要在数据透视表中显示的字段,如下图所示。 在“选择要添加到报表的字段”列表中选中需要显示字段,此时的数据透视表如下图所示。 例2 用户可根据不同的需求,创建不同的透视表,方法如下:在表格中选择任意单元格,单击“插入”选项卡“表”组中“数据透视表”按钮下方的下拉按钮,在弹出的下拉菜单中选择“数据透视表”选项,弹出“创建数据透视表”对话框,如下图所示。

vfp直接读取EXCEL文件示例

vfp直接读取EXCEL文件示例 vfp直接读取EXCEL文件的示例(转)。 M_File=GETFILE('xls','订单文件') IF M_File="" =MESSAGEBOX("请选择待导入的收订单文件!",0+48,"提示") RETURN ELSE IF JUSTEXT(M_FILE)#"XLS" &&获得文件扩展名 =MESSAGEBOX("您选择的不是EXCEL文档!",0+48,"提示") RETURN ENDIF ENDIF USE 图书订单表 ZAP myexcel=createobject('excel.application') &&创建一个对象 myexcel.visible=.f.&&不可见 bookexcel=myexcel.workbooks.open(M_File) &&打开指定文件 o_SheetName=https://www.sodocs.net/doc/223677196.html,&&获取当前激活工作表的名称UsedRange =bookexcel.worksheets(o_SheetName).UsedRange&&返回工作表中可使用的区域,UsedRange表的属性 o_rows=UsedRange.rows.count&&汇总行 o_cols=UsedRange.columns.count&&汇总列 IF o_rows<=1 =MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示") ELSE FOR i=2 TO o_rows m1=myexcel.cells(i,1).value &&书号 m2=myexcel.cells(i,2).value &&书名 m3=myexcel.cells(i,3).value &&出版社 m4=myexcel.cells(i,4).value &&作者 m5=myexcel.cells(i,5).value &&定价 m6=myexcel.cells(i,6).value &&数量 APPEND BLANK REPLACE 书号WITH m1,书名WITH m2,出版社WITH m3,作者WITH m4,定价WITH m5,数量WITH m6 ENDFOR ENDIF myexcel.workbooks.close&&关闭工作区 myexcel.quit&&关闭excel brow

在VFP中直接来控制Excel

Example: SET DEFAULT TO c:\ clear oleapp=createobject("excel.application") oleapp.visible=.t. && 显示Excel oleapp.workbooks.add **设单元格的值(报表标题): oleapp.cells(1,1).value="aaa" oleapp.cells(1,2).value="bbb" oleapp.cells(1,3).value="ccc" oleapp.cells(1,4).value="ddd" oleapp.cells(1,5).value="eee" **打开表并取得记录数 USE c:\bank\data\zyb.dbf SHARED jl=reccount()-1 &&记录数 **将表中的记录数据放到Excel工作簿的单元格中 for i=0 to jl go i+1 &&第i+1条记录 oleapp.cells(2+i,1).value=zyb.bh oleapp.cells(2+i,2).value=zyb.xm oleapp.cells(2+i,3).value=zyb.kl oleapp.cells(2+i,4).value=1+1 endfor oleapp.activeworkbook.saveas("C:\Documents and Settings\Administrator\桌面\KL.xls") * oleapp.activeworkbook.saveas(?) ********************************************************* 利用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.x ls″) 5.显示Excel窗口 eole.visible=.t. 6.更改Excel标题栏 eole.Caption=″VFP应用程序调用Microsoft Excel″ 7.给单元格赋值 eole.cells(1,4).value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数)

VFP全面控制EXCEL(完全版)

1.创建Excel对象 oExcel=Createobject("Excel.application") 2.添加新工作簿 oExcel.Workbooks.Add 3.设置第3个工作表为激活工作表 oExcel.Worksheets("sheet3").Activate 4.打开指定工作簿 oExcel.Workbooks.Open("c:\temp\ll.xls") 5.显示Excel窗口 oExcel.Visible=.T. 6.更改Excel标题栏 oExcel.Caption="VFP应用程序调用Microsoft Excel" 7.给单元格赋值 oExcel.cells(1,4).Value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数) oExcel.ActiveSheet.Columns(1).ColumnWidth=5 9.设置指定行的高度(单位:磅) oExcel.ActiveSheet.Rows(1).RowHeight=1&&(设定行高为1磅,1磅=0.035厘米) oExcel.ActiveSheet.Rows("50:100").RowHeight=1 &&设置第50行至100行的高度 10.在第18行之前插入分页符 oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 11.在第4列之前删除分页符 oExcel.ActiveSheet.Columns(4).PageBreak=0 12.指定边框线宽度(Borders参数如下) ole.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3 13.设置四个边框线条的类型 oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1 (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线) 14.设置页眉 oExcel.ActiveSheet.PageSetup.CenterHeader="报表1" 15.设置页眉(字体大小) oExcel.ActiveSheet.PageSetup.CenterHeader="&50报表1" &&'&'后面的50可以自定义,表示字体的大小 16.设置页脚 oExcel.ActiveSheet.PageSetup.CenterFooter="第&P页" 17.设置页脚(字体大小) oExcel.ActiveSheet.PageSetup.CenterFooter="&28第&P页" &&'&'后面的28可以自定义,表示字体的大小 18.设置页眉到顶端边距为2厘米 oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035 19.设置页脚到底边距为3厘米 oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035

Excel数据透视表的日常应用技巧

Excel数据透视表的日常应用技巧 各位读友大家好!你有你的木棉,我有我的文章,为了你的木棉,应读我的文章!若为比翼双飞鸟,定是人间有情人!若读此篇优秀文,必成天上比翼鸟! 篇一:Excel使用技巧之数据透视表Excel使用技巧之数据透视表对于Excel来说,如何处理所记录的数据是至关重要的。在这里,我想向各位同事推荐“数据透视表”这个数据处理的“大杀器”!在Excel 2007版本里,“数据透视表” 就是“插入”选项卡中的第一个功能,可见其使用频率之高(见图1)。数据透视表的官方解释是:使用数据透视表可以轻松排列和汇总复杂数据,并可以进一步查看详细情况。也就是说,它是自动生成分类汇总表的工具,可以按任意角度、任意多层级、不同的汇总方式,得到不同的汇总结果。下面就由我来为大家演示一遍数据透视表的使用方法。要使用数据透视表,首先要有一

个用于存放原始数据的工作表(以下简称源数据表)。而有了源数据表后,我们只需要选中源数据表的任意单元格,点击“数据透视表”即可调出数据透视表的创建向导,直接点击“确定” 就能把数据透视表调用出来了(见图2)。其中需要进一步解释的是,在图2右下角的字段排列组合区域中,“报表筛选”是指汇总表以该字段来分类,如当“销售日期”字段在“报表筛选”中时,数据透视表显示为某个销售日期的数据分类汇总情况;“列标签”是指数据透视表显示在不同列上的字段,即在汇总表格上面的字段;“行标签”是指数据透视表显示在不同行上的字段,即在汇总表格左边的字段;“数值”是指待汇总的字段。以图3为例,这是一张按销售人员,汇总不同城市、销售各类产品金额的分类汇总表。其中,“销售人员”为报表筛选所在字段,所以该表反映了销售人员“陈玉美”的销售汇总数据;“产品名称”为列标签所在字段,所以各类产品按列一字排

在VFP中直接来控制Excel

在VFP中直接来控制Excel (转载) *!*VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍: oExcel=Createobject("Excel.application") &&创建Excel对象 **对象属性 oExcel.Visible=.T. &&显示Excel窗口 oExcel.Caption="VFP应用程序调用Microsoft Excel" &&更改Excel标题栏 oExcel.DisplayAlerts = .F. &&关闭提示和警告消息,运行结束后,应将本属性设置回 True 值 oExcel.cells(1,4).Value=XM(XM为数据库字段名) &&给单元格赋值 **Workbooks属性 oExcel.Workbooks.Add &&添加新工作簿 oExcel.Workbooks.Open("c:\temp\ll.xls") &&打开指定工作簿 oExcel.Workbooks.Close &&关闭工作簿 oExcel.Quit &&退出Excel Release oExcel &&只有释放对象变量, EXCEL进程才会完全关闭 **Worksheets属性 oExcel.Worksheets("sheet3").Activate &&设置第3个工作表为激活工作表 oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 &&在第18行之前插入分页符 oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial &&粘贴 **ActiveWorkbook属性

VF中控制EXCEL的常用操作

VF中控制EXCEL的常用操作 myexcel=createobject('excel.application') &&创建一个对象 myexcel.visible=.t.&&可见 &&bookexcel=myexcel.workbooks.add bookexcel=myexcel.workbooks.open("C:\Documents and Settings\Administrator\桌面\学习\dd.xls") &&打开指定文件 nrows=bookexcel.worksheets('sheet1')&&打开工作表 UsedRange =https://www.sodocs.net/doc/223677196.html,edRange&&返回工作表中可使用的区域,UsedRange表的属性 usedrange.columns.count&&计算共几列 r=usedrange.rows.count&&汇总行 c=usedrange.columns.count&&汇总列 with myexcel.application .sheets('sheet3').select .sheets.add&&添加一个工作表 https://www.sodocs.net/doc/223677196.html, = 'ddddd'&&重命名表 endwith myexcel.Worksheets('sheet1').Activate&&选择表为当前工作表 myexcel.cells(1,1).value='sss'&&1,1处的值为 myexcel.activesheet.columns(2).columnwidth=15&&第2列的列宽设myexcel.activesheet.rows(2).rowheight=50&&设第2行的行高 myexcel.activesheet.rows(2).insert&&第2行前插入一行 myexcel.activesheet.columns(2).insert&&第2列前插入一列 myexcel.activesheet.Cells(1,1).Font.size=25&&设置1,1的字体大小myexcel.activesheet.Cells(1,1)https://www.sodocs.net/doc/223677196.html,='黑体'&&设置字体 myexcel.activesheet.Cells(1,1).clear&&清除内容 myexcel.activesheet.range('A1:C2').select&&选择区域 myexcel.selection.merge &&选择区域合并单元格 myexcel.Range('a1').Formula='=sum(b2,b3,b4,b5)'&&在A1中键入一个公式 myexcel.range('a1').ClearContents myexcel.activesheet.Columns('A:B').Select&&整列选中 myexcel.Selection.NumberFormatLocal="@" &&设置选中的区域为字符型数据 myexcel.activesheet.rows(1).select myexcel.Selection.EntireRow.Delete&&删除选中的行 myexcel.Selection.columns(1).Delete&&删除第几的列 myexcel.workbooks.close&&关闭工作区

用excel中数据透视表分类求数据平均值方法

用excel中数据透视表分类求数据平均值方法篇一:Excel教程中数据透视表的用法实例 Excel教程中数据透视表的用法实例数据透视表是一个系列教程,IT部落窝小编会为大家逐步讲解数据透视表和数据透视图关联的知识,配合实例加以讲解,并附上案例的excel源文件供大家学习使用。 数据透视表是excel教程中功能最大、使用最灵活、操作最简单的工具。使用数据透视表不必输入复杂的公式和函数,仅仅通过向导就可以创建一个交互式表格,从而自动提取、组织和汇总数据。如果将数据透视表和函数结合使用,更能创建出满足各种需求的报表。什么是数据透视表呢?数据透视表就是一种交互式报表,可以快速分类汇总大量的数据,并可以随时选择页、行和列中的不同元素,快速查看源数据的不同统计结果,同时还可以随意显示和打印出用户感兴趣区域的明细数据,使分析、组织复杂的数据更加快捷有效。数据透视表的作用就是将用户从创建复制公式、使用各种函数的烦琐工作中解脱出来,使其迅速而准确的对数据进行处理分析,制作出漂亮的报告和图表。 以工作表数据制作数据透视表的注意事项有以下七点: 以工作表数据制作数据透视表,这些工作表数据必须是一个数据清单。所谓数据清单,就是在工作表数据区域的顶端行为字段名称(标题),以后各行为数据(记录),并且各列只包含一种类型数据的数

据区域。这种结构的数据区域就相当于一个保存在工作表的数据库。第一,数据区域的顶端行为字段名称(标题)。 第二,避免在数据清单中存在有空行和空列。这里需指明以下,所谓空行,是指在某行的各列中没有任何数据,如果某行的某些列没有数据,但其他列有数据,那么该行就不是空行。同样,空列也是如此。 第三,各列只包含一种类型数据。 第四,避免在数据清单中出现合并单元格。 第五,避免在单元格的开始和末尾输入空格。 第六,尽量避免在一张工作表中建立多个数据清单,每张工作表最好仅使用一个数据清单。 第七,工作表的数据清单应与其他数据之间至少留出一个空列和一个空行,以便于检测和选定数据清单。 在制作数据透视表之前,应该按照以上7点来检查数据区域,如果不满足上面的要求,需要先进行整理工作表数据从而使之规范。 本文讲解了三个知识点:第一,什么是数据透视表,第二,数据透视表的作用,第三以工作表数据制作数据透视表的注意事项,下面一片文章,我们将以实例介绍如何整理数据清单:删除数据区域内的所有空行的四种方法。删除数据区域内所有空行的方法有多种,比如排序、高级筛选、自动筛选、VBA编写。下面小编就这几种删除空行的方法逐一介绍。 本文实例为员工的工资和个税清单。在这个数据清单中就存在

VFP控制EXCEL的方法(终于找到了)

VFP控制EXCEL的常用方法 oExl=CREATEOBJECT('Excel.application') oExl.Visible=.T. oExl.DefaultSaveFormat=39 oExl.SheetsInNewWorkbook=1 oExl.Workbooks.Open(cXLS) oExl.WindowState=-4140 &&窗口最小化 oExl.WindowState=-4143 &&窗口正常化 oExl.WindowState=-4147 &&窗口最大化 *------------------------------------------------------* &&页面设置 oExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$3" &&打印标题 oExl.ActiveSheet.PageSetup.Orientation=2 &&页面方向:1纵向/2横向 *oExl.ActiveSheet.PageSetup.PaperSize=11 &&纸张尺寸:9-A4/11-A5 oExl.ActiveSheet.PageSetup.TopMargin=0.8/0.035 &&顶边距 oExl.ActiveSheet.PageSetup.BottomMargin=0.8/0.035 &&底边距 oExl.ActiveSheet.PageSetup.LeftMargin=0 &&左边距 oExl.ActiveSheet.PageSetup.RightMargin=0 &&右边距 oExl.ActiveSheet.PageSetup.CenterHorizontally=.T. &&页面居中 oExl.ActiveSheet.PageSetup.HeaderMargin=0.5/0.035 oExl.ActiveSheet.PageSetup.FooterMargin=0.5/0.035 oExl.ActiveSheet.PageSetup.LeftHeader="&9表格"”9是字号” oExl.ActiveSheet.PageSetup.CenterHeader="" oExl.ActiveSheet.PageSetup.RightHeader="&9" oExl.ActiveSheet.PageSetup.LeftFooter="" oExl.ActiveSheet.PageSetup.CenterFooter="&9第&P页,共&N页" oExl.ActiveSheet.PageSetup.RightFooter="&9制表人:'+代码+' 制表时间:"+TTOC(DATETIME()) *------------------------------------------------------* &&整体格式设置 oExl.ActiveSheet.Rows.Font.Size=9 https://www.sodocs.net/doc/223677196.html,='宋体' oExl.ActiveSheet.Rows.RowHeight=0.5/0.035 oExl.ActiveSheet.Rows.NumberFormatLocal="0.00_ ;[红色]-0.00" oExl.ActiveSheet.Rows.VerticalAlignment=2 &&单元格内容垂直居中 *------------------------------------------------------* &&获取最大行号和最大列号 Local nMaxRow,nMaxCol nMaxRow=https://www.sodocs.net/doc/223677196.html,edRange.Rows.Count nMaxCol=https://www.sodocs.net/doc/223677196.html,edRange.Columns.Count &&表头格式设置 oExl.ActiveSheet.Rows(1).Font.Size=16

Excel使用技巧之数据透视表

Excel使用技巧之数据透视表 对于Excel来说,如何处理所记录的数 据是至关重要的。在这里,我想向各位同事 推荐“数据透视表”这个数据处理的“大杀 器”!在Excel 2007版本里,“数据透视表” 就是“插入”选项卡中的第一个功能,可见 其使用频率之高(见图1)。 数据透视表的官方解释是:使用数据透视表可以轻松排列和汇总复杂数据,并可以进一步查看详细情况。也就是说,它是自动生成分类汇总表的工具,可以按任意角度、任意多层级、不同的汇总方式,得到不同的汇总结果。下面就由我来为大家演示一遍数据透视表的使用方法。 要使用数据透视表,首先要有一个用于存放原始数据的工作表(以下简称源数据表)。 而有了源数据表后,我们只需要选 中源数据表的任意单元格,点击 “数据透视表”即可调出数据透视 表的创建向导,直接点击“确定” 就能把数据透视表调用出来了(见 图2)。 其中需要进一步解释的是,在图2右下角的字段排列组合区域中,“报表筛选”是指汇总表以该字段来分类,如当“销售日期”字段在“报表筛选”中时,数据透视表显示为某个销售日期的数据分类汇总情况;“列标签”是指数据透视表显示在不同列上的字段,即在汇总表格上面的字段;“行标签”是指数据透视表显示在不同行上的字段,即在汇总表格左边的字段;“数值”是指待汇总的字段。

以图3为例,这是一张按销售人员,汇总不同城市、销售各类产品金额的分类汇总表。 其中,“销售人员”为报表筛选所 在字段,所以该表反映了销售人 员“陈玉美”的销售汇总数据; “产品名称”为列标签所在字段, 所以各类产品按列一字排开,在 列上面按城市进行汇总;“城市” 为行列标签所在字段,所以各个城市按行一字排开,在行上面按产品进行汇总;“金额”为数值所在字段,因为汇总方式默认为求和,所以字段的行/列交叉点显示为某城市某产品的销售金额总数。 那么图3的表格是怎么“变”出来的?下面就让我一步一步地为大家演示一遍,如何“变”出一张各地区、城市销售各类产 品数量总额的二级汇总表,总共 只需以下三步鼠标操作。 第一步,勾选所需字段。在 右上角的字段列表中依次选取 “地区”、“城市”、“产品名称”、 “数量”共四个字段,此时左侧的报表生成区域立刻生成了相应的数据透视表,而右下角的区域也出现了相应的四个字段(见图4)。 第二步,拖拽字段。将行标签中的“产品名称”拖至列标签,如果“地区”、“城市”两 个字段没有按范围大小来从上到 下排序,也可用鼠标拖动来调整 顺序。“数量”字段被系统自动放 在数值处,故无需调整(见图5)。 第三步,美化表格。虽然通 过拖拽字段,Excel会自动分析并组装数据,然后显示为正确的汇总表样式,以及准确的汇总结果。但是此时的汇总表十分简陋,需要我们对该表进行最后的“美容”,如调整行距或列宽、居中显示、描绘边框等等。最后,我们就这样“变”出一张各地区、城市销售各类产品数量总额的二级汇总表来了(见图6)。

Excel 数据透视表应用大全

Error!Use the Home tab to apply标题1to the text that you want to appear here.Error!Use the Home tab to apply标题1to the text that you want to appear here. 2008 Excel 数据透视表应用大全 Microsoft Excel的功能真的可以用博大精深来形容。特别是自Excel2007 在原有的基础上又增加了一些更简单易用的功能。 特别是数据透视表功能,更被认为是Excel的精华所在。 本文从创建数据透视表到使用数据透视表查看、汇总、分析数据,还包括 数据透视表的布局控制,数据透视表的数据源更新与链接等功能都做了详 尽的介绍。 由于本人水平与时间关系。不足之处在所难免,希望您多提宝贵意见! 卢景德

Excel数据透视表应用详解 数据透视表和数据透视图表 A.数据透视表介绍 A.1什么是数据透视表? 数据透视表是一种可以快速汇总、分析大量数据表格的交互式工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面 的汇总信息、分析结果以及摘要数据。 使用数据透视表可以深入分析数值数据,以帮助用户发现关键数据,并做出有关企业中关键 数据的决策。 数据透视表是针对以下用途特别设计的: 以友好的方式,查看大量的数据表格。 对数值数据快速分类汇总,按分类和子分类查看数据信息。 展开或折叠所关注的数据,快速查看摘要数据的明细信息。 建立交叉表格(将行移动到列或将列移动到行),以查看源数据的不同汇总。 快速的计算数值数据的汇总信息、差异、个体占总体的百分比信息等。 若要创建数据透视表,要求数据源必须是比较规则的数据,也只有比较大量的数据才能体现 数据透视表的优势。如:表格的第一行是字段名称,字段名称不能为空;数据记录中最好不 要有空白单元格或各并单元格;每个字段中数据的数据类型必须一致(如,“订单日期”字 段的值即有日期型数据又有文本型数据,则无法按照“订单日期”字段进行组合)。数据越 规则,数据透视表使用起来越方便。 如上图中的表格属于交叉表,不太适合依据此表创建数据透视表(不是不能使用数据透视表,只是使用上表创建数据透视表某些功能无法体现)。因为其月份被分为12个字段,互相比较

excel2019表格数据透视表如何筛选重复

excel2019表格数据透视表如何筛选重复 篇一:EXCEL表格怎样把重复的名称和数据找出来 EXCEL表格怎样把重复的名称和数据找出来? 用了几个函数,不是重复的它显示是重复的,(显示重复的是数字相差10)盘头十字4*8 与盘头十字4*18它说重复,第一个不重复,第二个是重复了,这是什么原因?多谢高手 =IF(COUNTIF($A$1:A1,A1)>1,"重复","") 用单元格 =COUNTIF($A$1:A1,A1)>1 条件格式 不知道是不是要这样的,有问题在hi我。 追问 首先谢谢你,出现这样的情况,可能是数字原因,有办法不? 盘头十字4*18 盘头十字4*8 重复 盘头十字4*25 盘头十字4*5 重复 沉头十字3*14 沉头十字3*4 重复 因为你的*被excel当通配符处理了。所以你得先所里面的*给换掉。可以用excel的查找替换处理,也可以用公式 =IF(COUNTIF($A$1:A1,SUBSTITUTE(A1,"*",))>1,"重复","")

得说一下,你里面每个数据里都有*吗? 没有的话,就把上面公式里substitute的第三参数改一下,最好能改成数据里没有的。现在的公式是把所有的*给处删掉处理。但如果你的数据里有的没有*的话就会出错,比如“盘头4*18”和“盘头418”就一样了。 不是我想出来了,是经老师指点才知道 用的2019吧,用2019直接就有一个检查重复的工具,不用你去写啥函数.如图,选择重复值 我想把相同数据找出来然后都删掉,只保留不重复的数据应该怎么做 举个例子,比如 1 2 2 3 3 3 4 4 5 最后只保留 1

VFP全面控制EXCEL

找出其存在的问题,并提出解决方案。针对要开发的系统进行人事系统调研,提出开发系统的可行性分析。在系统结构设计中先后用数据流图、数据字典、系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块、所需的数据库表及表字段、系统菜单的设计等。 在系统的实现中,给出了系统的界 最近正好有空,看到不少人对VFP控制EXCEL有兴趣,现将上次的“精华贴”重新整理一下,供各位爱好者参考! oExcel.Selection.NumberFormatLocal = "@" &&把被选定的单元格设为文本格式 1、对象的创建与关闭 ******************************* eole=CREATEOBJECT('Excel.application') && 创建Excel对象 eole.Workbooks.add && 添加新工作簿 eole.Worksheets("sheet3").Activate && 设置第3个工作表为激活工作表 eole.Workbooks.Open("D:\ABC\11.xls") && 打开指定工作簿 eole.visible=.t. && 显示Excel窗口 eole.visible=.F. && 不显示Excel窗口 eole.Caption="VFP应用程序调用Microsoft Excel" && 更改Excel标题栏 eole.ActiveWorkbook.SaveAs("D:\ABC\22.xls") && 工作表另为 eole.ActiveWorkbook.saved=.t. && 放弃存盘 页脚内容1

excel—数据透视表规范.docx

地区城市日期品牌车型 华北北京2011/02/23奥迪A8L 45 TFSI quattro豪华型 华北天津2011/03/04奥迪A8L 30FSI专享型 东北沈阳2011/06/09奥迪A8L 50 TFSI quattro豪华型 东北长春2012/01/14奥迪A8L 30FSI舒适型 东北哈尔滨2012/04/14奥迪A8L 50 TFSI quattro舒适型 华东上海2012/08/10奥迪A8L 45 TFSI quattro舒适型 华东南京2011/04/29宝马X5 xDrive35i领先型 华东杭州2011/05/24宝马X5 xDrive35i豪华型 华东合肥2012/01/13宝马X5 xDrive35i M运动型 中南郑州2011/02/26奔驰S400L HYBRID Grand Edition 中南武汉2011/06/10奔驰S300L 豪华型 Grand Edition 中南长沙2011/10/26奔驰S300L 商务型 Grand Edition 中南广州2011/12/06奔驰S350L 4MATIC Grand Edition 西南重庆2011/12/15奔驰S300L 尊贵型 Grand Edition 西南成都2012/01/20奔驰S350L Grand Edition 西南贵阳2011/06/04本田歌诗图 2.4L自动尊享版 西北西安2011/10/30本田歌诗图 2.4L自动豪华版 西北兰州2012/03/10本田歌诗图 3.5L V6自动尊贵版 东北大连市2012/03/19本田歌诗图 3.5L V6自动旗舰版 东北长春市2011/02/12别克君威 2.0L自动舒适版 华东苏州市2011/04/16别克君威 1.6T手动精英运动版 华东徐州市2011/09/11别克君威 2.4L自动旗舰版 华东扬州市2011/12/24别克君威 GS 2.0T豪情运动版 华东杭州市2012/07/15别克君威 2.4L自动精英版 华东合肥市2012/07/29别克君威 2.0L自动豪华版 华东厦门市2011/02/08大众辉腾 3.0 TDI自动精英定制型柴油版华东济南市2011/04/21大众辉腾 3.0L自动行政型汽油版 华东青岛市2011/08/22大众辉腾 3.0L自动精英定制型汽油版 华东烟台市2011/12/03大众辉腾 3.0 TDI自动行政型柴油版 中南安阳市2011/12/26大众辉腾 3.0L自动商务型汽油版 中南岳阳市2012/01/09大众辉腾 3.6L自动尊享定制型汽油版 中南张家界市2011/03/04丰田凯美瑞 2.0G自动豪华版 中南株洲市2011/05/22丰田凯美瑞骏瑞 2.0S 自动耀动版 中南佛山市2011/06/14丰田凯美瑞 200G 2.0L自动经典版 中南汕头市2012/04/13丰田凯美瑞 200E 2.0L自动经典版 中南中山市2011/10/19现代雅尊 2.4L自动豪华版 中南珠海市2011/11/08现代雅尊 2.4L自动旗舰版 中南北海市2012/07/26现代雅尊 2.4L自动尊贵版 中南柳州市2012/08/01现代雅尊 2.4L自动舒适版 中南南宁市2012/08/19现代雅尊 3.0L自动旗舰版

VFP全面控制EXCEL(完全版)

VFP全面控制EXCEL VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍: *!*1.创建Excel对象 oExcel=Createobject("Excel.application") *!*2.添加新工作簿 oExcel.Workbooks.Add *!*3.设置第3个工作表为激活工作表 oExcel.Worksheets("sheet3").Activate *!*4.打开指定工作簿 oExcel.Workbooks.Open("c:\temp\ll.xls") *!*5.显示Excel窗口 oExcel.Visible=.T. *!*6.更改Excel标题栏 oExcel.Caption="VFP应用程序调用Microsoft Excel" *!*7.给单元格赋值 oExcel.cells(1,4).Value=XM(XM为数据库字段名) *!*8.设置指定列的宽度(单位:字符个数) oExcel.ActiveSheet.Columns(1).ColumnWidth=5 *!*9.设置指定行的高度(单位:磅) oExcel.ActiveSheet.Rows(1).RowHeight=1 (设定行高为1磅,1磅=0.035厘米) oExcel.ActiveSheet.Rows("50:100").RowHeight=1&&设置第50行至100行的高度 *!*10.在第18行之前插入分页符 oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 *!*11.在第4列之前删除分页符 oExcel.ActiveSheet.Columns(4).PageBreak=0

如何使用excel2020做数据透视表

如何使用excel2020做数据透视表 首先打开你要用来做数据透视表的excel文件,如图我自己弄了一个样本示例文件,预先选择好你要做数据透视的区域,如我的示例文件我选择A1:F24区域,记得要连带表头一起选择。 然后点击最顶端的菜单“插入”,这里有两个地方可以调用出“数据透视表”选项:第一个是靠最右上角的“数据透视表”按钮;第二个是靠中间位置有一个图形图标的“数据透视图”,里面有“数据透视图和数据透视表”,我用两种颜色做好了区分,习惯上一般不涉及做透视图,请使用最右上角那个方法。 触发“数据透视表”按钮后,会看到弹出“创建数据透视表”选项卡,这里面可以选择的有三个地方:第一个是你数据源区域,在这里你可以重新选择或更好数据源区域;第二个是你要在什么地方生成数据透视表,可以在新表生成或者指定在某个位置生成;第三个是选择好以后就点确认。我这个例子是默认在新表生成,你看我最后在新表位置生成了一个数据透视表。 这个时候大家可以看到右侧弹出的就是数据透视表工具栏,大家可以看到源数据表头的各个字段,这个时候就可以往右下角区域拖拽字段进行透视展现。例如我要知道各种产品的销售量汇总,我先把“产品”拖到“行”区域,然后把“销售量”拖到“值”区域,这样一个基于产品统计销售量的透视表就生成了。 有些同学会问,我可以同时选择两个列维度或两个行维度吗?当然可以,数据透视表提供了很大的灵活性,大家可以随便通过拖拽就能展现不同维度的数据,如图示例我在行区域选择了日期和产品两个维度查看销售量。 选择好展现维度好,大家也许会觉得这个透视表很“丑陋”,我们可以通过更改一下它的显示,美化一下。首先,我们先更改它的表头名字,你点击相应的表头,就可以为它取一个别名,如我将原来“求和项:销售额”更改为“总销售额”,其他的更改参考图;其

巧将Excel建立的工作簿文件转成VFP成绩报表

巧将Excel建立的工作簿文件转成VFP成绩报表 图1找到需导入的电子工作簿 能否将Excel 2000建立的工作簿文件转化成Microsoft Excel 5.0和97(XLS)格式?启动Excel 2000,打开“另存为”对话框,发现保存类型可以保存为Microsoft Excel 5.0/95工作簿,于是将Excel 2000建立的工作簿文件保存为Microsoft Excel 5.0/95工作簿,再进行VFP中的“导入”操作,工作簿被成功导入了。 在“命令”窗口中,输入“list”,查看导入的结果,无误!用“list stru”,发现“字段名”、类型、字段“宽度”不合要求,在“命令”窗口使用“modi stru”命令分别按要求对“字段名”、类型、字段“宽度”进行修改,如图2所示。 图2对字段宽度进行修改 修改完毕,用VFP进行“导出”操作,如图3所示,至此符合要求的VFP成绩报表制作完成了。 图3用VFP进行导出 利用VFP制作财务报表——谈VFP与Excel的交互操作 在VFP中制作财务报表(或者是其他报表),通常的方法是利用VFP的报表生成器一步一步地生成,这种方法用起来很麻烦,

而且打印出来的报表格式也不能尽如人意。提到制作报表,你可能够马上想到大名鼎鼎的Excel,我们能不能将二者结合起来——利用VFP的数据处理的结果,再使用Excel排版并且打印输出,而且还要让二者结合得天衣无缝呢?答案是肯定的,利用OLE技术,你能够很容易地实现上述想法。 大家对VFP的CreateObject函数可能不会陌生,利用CreateObject函数,你能够在VFP中创建并使用任何在你计算机上注册了的类(通常在安装应用程序时,应用程序都会向注册表里添加类信息)。也就是说你能够在VFP中调用任何应用程序为你的数据处理服务。CreateObject的具体用法如下: CREATEOBJECT(ClassName[eParameter1,eParameter2,...]) 其中,ClassName指明欲建立对象的类名。eParameter1,eParameter2……是用来传递参数给OLE对象的(OLE对象进行初始化时要用要到的)。例如,在VFP中欲建立一Excel工作簿对象,只须在程序中加入下列语句:MySheet=CREATEOBJECT(′Excel.Sheet′)就行了。 要在VFP中灵活地调用Excel为你服务,首先你应该对Excel提供的各类对象进行深入了解。Excel为我们提供了一百多种对象,如应用程序对象、图表对象、工作簿对象等等。对于每种对象调用,你得遵循一定的规则(也就是说你必须熟悉VBA 编程)。接下来介绍Excel常见对象的调用方法。

相关主题