ease o,excel
release FindWindow
?'处理完毕…'
=inkey(0.5)
release windows WaitWin
end note
VFP调用EXCEL的补充方法
佳帆网站工作室 大文
下面是我使用 VFP CALL EXCEL的部分例子:
这是本人从书本上抄的片断和我的小小经验,可以让你很方便的在 VFP 中调用 EXCEL,所有的例程我都试验过。
用Visual Foxpro 设计用Excel表格的程序
利用OLE Automation 设计Excel 应用程序
Excel支持的对象说明:
(a) VBA 对象:
对象名称 意义
Application Excel应用程序对象
WorkBooks Excel活页薄对象
(b)所使用的Method
对象名称 Method 执行意义
Application Cells 设定或传回来某个网格的内容
Range 传回或设定某一个范围的网格
Charts 传回或设定活页簿的单一统计表
Quit 结束 Excel Application
Save 激活存储文件对话框
WorkBooks Add 新增一个工作簿
Charts Add 新增一个统计图
?所使用的Property
对象名称 Property 设定意义
Application Visible 是否现实再 SCREEN上 .T. , .F.
Value 传回或者设定存储文件的内容
ActiveSheet 回应Excel Application 执行工作表对象
实例说明:
启动Excel:
MyExcel=CreateObject('Excel.Application') &&建立Excel对象
MyExcel.Visible=.T. &&让Excel对象再屏幕上显示出来
如何增加工作簿:
MyExcel.WorkBooks.Add &&在Excel对象中增加一份工作簿(WorkBook)
如何在工作簿中增加Sheet(工作表)
MyExcel.Sheets.Add &&
增加工作表(在当前工作簿中)
如何删除工作表
MyExcel.ActiveWorkBooks.Sheets(1).Delete &&把工作簿中的BOOK(1) 删除
向指定的工作簿中的工作表(Sheet)中存储数据
*Excel.application Object
*Excel.application.ActiveWorkBook Property
*WorkBOoks Object
*WorkBOoks Object的Add Method.
*Sheets对象
*Sheets(Index)对象指定索引工作表
*Excel.Application对象的Cells Method结合Value属性
Example:
CLEAR ALL
SET PATH TO SYS(2004)+'SAMPLES\DATE'
USE CUSTOMER
MYEXCEL=CREATEOBJEXT('EXCEL.APPLICATION')
MYEXCEL.VISIBLE=.T.
MYEXCEL.WORKBOOKS.ADD
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).VALUE='客户编号'
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,2).VALUE='公司行号'
SELECT CUSTOMER
R=2
C=1
GOTO TOP
FOR I=1 TO 20
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C).VALUE=CUSTOMER.CUST_ID
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C+1).VALUE=CUSTOMER.COMPANY
R=R+1
SKIP
ENDFOR
调整单元格宽度:
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).columnwidth=30
调整单元格对齐方式:
MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1). HorizontalAlignment=1
1为默认方式,2为左对齐,3为中对齐,4为右对齐。
如何将数据存储:
MYEXCEL.SAVE()
注:可以用Save(FileName)指定预存储文件名, 则可不用激活SAVE AS 窗口
如何打印表格:
MYEXCEL.ActiveWorkBook.PrintOut &&默认打印增个Sheet
如何指定打印表格:
MYEXCEL.ActiveWorkBook.PrintOut(1,1,1,.T.) &&默认打印增个Sheet
PrintOut有四个参数
A. 数值:,表示指定的工作簿中进行打印的Sheet 的开始编号
B. 数值:,表示指定的工作簿中进行打印的Sheet 的结束编号
C.打印分数.
D.是否进行 Preview, .T.,预览, .F.打印
如何产生统计图
CURROW=MYEXCEL.ACTIVESHEET.ROWS.COUNT
RANGESTRING='A1:'+'B'+ALLTRIM(STR(CURROW))
MYEXCEL.RANGE(RANGESTRING).SELECT
MY
EXCEL.CHARTS.ADD
结束EXCEL
MYEXCEL.QUIT
EXCEL.ActiveWindow.SelectedSheets.PrintPreview &&预览打印
EXCEL.ActiveWorkbook.SaveAs("C:\My Documents\Book1.xls") &&另存为
EXCEL.ActiveWorkbook.Close &&关闭一个工作表,如果有修改则提示
EXCEL.ActiveWorkbook.Close(.t.) &&提示另存为
EXCEL.ActiveWorkbook.Close(.f.) &&关闭一个工作表不用提示是否存盘