ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:22.69KB ,
资源ID:7953578      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7953578.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VFP全面控制EXCEL.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VFP全面控制EXCEL.docx

1、VFP全面控制EXCELVFP全面控制EXCEL VFP全面控制EXCEL分类: VFP - OFFICE2006-04-22 12:36 32139人阅读 评论(39) 收藏 举报VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:*!* 1创建Excel对象oExcel=Createobject(Excel.application)*!* 2添加新工作簿oEx

2、cel.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.

3、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 *!* 1

4、2指定边框线宽度(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.Page

5、Setup.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.0

6、35 *!* 19设置页脚到底边距为3厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035 *!* 20设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.035 *!* 21设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035 *!* 22设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.035 *!* 23设置右边距为2厘米oExcel.ActiveSheet.PageS

7、etup.RightMargin=2/0.035 *!* 24设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.T. *!* 25设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.T. *!* 26设置页面纸张大小(1窄行8 5 11 39宽行14 11 9:A4)oExcel.ActiveSheet.PageSetup.Papersize=1 *!* 27打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.T. *!*

8、 28拷贝整个工作表oExcel.ActiveSheet.UsedRange.Copy *!* 29拷贝指定区域oExcel.ActiveSheet.Range(A1:E2).Copy *!* 30粘贴oExcel.WorkSheet(Sheet2).Range(A1).PasteSpecial *!* 31在第2行之前插入一行oExcel.ActiveSheet.Rows(2).Insert *!* 32在第2列之前插入一列oExcel.ActiveSheet.Columns(2).Insert *!* 33设置字体oExcel.ActiveSheet.Cells(2,1).Font.Nam

9、e=黑体 *!* 34设置字体大小oExcel.ActiveSheet.Cells(1,1).Font.Size=25 *!* 35设置字体为斜体oExcel.ActiveSheet.Cells(1,1).Font.Italic=.T. *!* 36设置整列字体为粗体oExcel.ActiveSheet.Columns(1).Font.Bold=.T. *!* 37清除单元格公式oExcel.ActiveSheet.Cells(1,4).ClearContents *!* 38打印预览工作表oExcel.ActiveSheet.PrintPreview *!* 39打印输出工作表oExcel.

10、ActiveSheet.PrintOut *!* 40 oExcel.CommandBars(1).Controls(1).accChild(18).Execute &&打印(菜单序号18为Excel2003的打印项)&&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=Getobject(,excel.sheet)XlApp=oXLS.ApplicationXlSheet=XlApp.ActiveSheetbars=xlapp.CommandBars.CountStr1=For i=1 To bars Str1=Str1

11、+Chr(13)+Alltrim(Str(i)+、+xlapp.CommandBars(i).accName+(NAME:+xlapp.CommandBars(i).Name+ INDEX:+Alltrim(Str(xlapp.CommandBars(i).Index)+) bars2=mandbars(i).accChildCount For j=1 To bars2 Try obj=mandbars(i).Controls(j) Str1=Str1+Chr(13)+ +Alltrim(Str(j)+、+mandbars(i).Controls(j).accname+(ID:+Alltrim

12、(Str(xlapp.CommandBars(i).Controls(j).Id)+) For k=1 To obj.accChildCount Try If Not Empty(obj.Controls(k).accname ) Str1=Str1+Chr(13)+ +Alltrim(Str(k)+、+obj.Controls(k).accName+ (ID:+ Alltrim(Str(obj.Controls(k).Id)+) Endif Catch Exit Endtry Endfor Catch Exit Endtry Endfor Wait Windows Alltrim(Str(i

13、)+ / +Alltrim(Str(bars)+ +Str(i/bars*100,10,2)+% NowaitEndforSave To Xls.txt All Like Str1Modify Command Xls.txtReturn *!* 41工作表另存为oExcel.ActiveWorkbook.SaveAs(c:/temp/22.xls)*检测当前目录是否有同名的EXCEL表,如果有先删除,再另存If !File(Sys(5) + Curdir() + result.xls) oExcel.ActiveWorkbook.SaveAs(Sys(5) + Curdir() + resul

14、t.xls)Else lcFileName = loExcel.GetSaveAsFilename(result, Excel (*.xls), *.xls) If !Empty(lcFileName) If File(lcFileName) Delete File (lcFileName) Endif oExcel.ActiveWorkbook.SaveAs(lcFileName) EndifEndif*!* 42放弃存盘 && 避免出现保存对话框oExcel.ActiveWorkbook.saved=.T. *!* 43存盘oExcel.ActiveWorkbook.Sav

15、e *!* 44关闭工作簿oExcel.Workbooks.Closeobjexcel.activeworkbook.Close(.F.) *!* 45退出ExceloExcel.QuitRelease oExcel &&只有释放对象变量, EXCEL进程才会完全关闭 *!* 46合并单元格oExcel.ActiveSheet.Range(A4:B5).MergeCells=.T. *!* 47下列设置大家自己理解With crfole.ActiveSheet.PageSetup .LeftHeader = Chr(13)+左页眉 .CenterHeader = 中页眉 .Ri

16、ghtHeader = 右页眉 .LeftFooter = 左页脚 .CenterFooter = 中页脚 .RightFooter = 右页脚 .Orientation=1 &&1竖排,2横排EndwithWith crfole.Range(A4:C4) .MergeCells = .T. .WrapText =.F. .Orientation = 0 .AddIndent =.F. .ShrinkToFit = .F.Endwith *!* 48文本对齐oExcel.Range(A4:c4).HorizontalAlignment =1 &&水平(1-默认、

17、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)oExcel.Range(A4:c4).VerticalAlignment =2 &&垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐) *!* 49拷贝整个工作表(含格式)oExcel.activesheet.cells.Copy &&拷贝oExcel.sheets(1).Select &&选择第一工作表oExcel.ActiveSheet.Paste &&粘贴oExcel.ActiveSheet.Cells(3,4).Value &

18、amp;& ActiveSheet 为当前的Sheet工作薄名字,Cells(3,4).value 为第3行第4列的值*以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及中文Windows 98 *!* 50显示某个单元格的批注内容oExcel=Createobject(Excel.application)oExcel.Workbooks.Open(d:/TEST/testa.xls)oExcel.Visible=.T.oExcel.Range(B5).Comment.Text &&显示B5单元格的批注内容oExcel.Workbooks.

19、CloseoExcel.QuitRelease oExcel *!* 51oExcel.ActiveSheet.PageSetup.PrintTitleRows=$1:$1 &&每页都打印行标头(每页顶部出现的单元格的行) *!* 52保护工作表:oExcel.ActiveSheet.Protect(密码,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.) *!* 53保护工作薄oExcel.ActiveWorkbook.Protect(密码,.T.,.T.)第一个.T.:保护工作簿结构第二个.T.:保护工作

20、簿窗口 *!* 54设置允许用户编辑区域oExcel.ActiveSheet.Protection.AllowEditRanges.Add(区域3,oExcel.ActiveSheet.Range(A2:D5) *!* 55如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.oExcel.DisplayAlerts = .F.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为 False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。如果将本属性设置为 False,那么宏运行结束后, Microsoft Excel 并不

21、自动将其设置回 True。故当宏运行结束后,都应将本属性设置回 True 值。 *!* 56将当前工作表中的已用区域(只读)存入数组。strPath=D:/TEST/123.xlsLocal oExceloExcel=Createobject(Excel.Application)oExcel.WorkBooks.Open(strPath)arrTableInfo=oExcel.ActiveSheet.UsedRange.Value &&将当前工作表中的已用区域(只读)存入数组。oExcel.QuitRelease oExcelInsert Into 表名 From arrTab

22、leInfo *!* 57设置excel批注的字体(excel 2000实现了,如下:)ole.Range(a3).Comment.Shape.Select && 此命令要求批注的 Visible=.t.ole.Selection.Font.Size=9ole.Selection.Font.Name=黑体ole.Selection.Font.bold=.F.注:该组命令要求先选中批注框,否则写成 ole.Range(a3).Comment.Shape.Font.Size=9 则出错,不知为何! *!* 58如何取得当前EXCEL表中工作表的数目及各工作表的名称?ClearLoc

23、al lnSheetCountoExcel=Createobject(EXCEL.APPLICATION) &&创建Excel对象oExcel.WORKBOOKS.Open(c:/111/321.xls) &&打开指定工作簿With oExcel lnSheetCount=.WorkBooks(1).Sheets.Count &&统计工作表数量Endwith当前EXCEL表中工作表的数目为:+Alltrim(Str(lnSheetCount)For Each oMyVar In oExcel.sheets 当前EXCEL表中工作表的名称分别为+o

24、MyVar.Name &&显示Excel表中所有工作表Next oMyVaroExcel.WORKBOOKS.Close &&关闭工作簿oExcel.Quit &&退出Excel *!* 59获取工作表名称在以下示例中,创建了一个 microsoft excel 实例,添加了一个新的工作簿。使用 foreach 语句显示工作簿中每个工作表的名称。此示例要求在运行示例的机器上正确安装 microsoft excel。oExcel = Create(Excel.Application)oExcel.Workbooks.AddFor Each oMyV

25、ar In oExcel.sheets oMyVar.NameNext oMyVar *!* 60虽然用APPEND From tx.Xls Type XL8可以更简单的追加数据,但有时会导致程序非法错误退出(除非先另存为Excel 5.0) *!* 61VFP控制EXCL文件另存为DBF(EXCEL后台运行)fil=Thisform.List1.Value &&其值为一个包含路径的文件名oExcel=Createobject(Excel.application)oExcel.Workbooks.Open(fil) &&打开文件oExcel.Selection.

26、AutoFilter &&关闭(如果无则打开)自动筛选oExcel.Range(A1:F1000).Select &&选中从第1行到1000行的前6列数据(另存后只有这些数据)asfil=Strtran(Upper(Strtran(fil,Substr(fil,1,Rat(/,fil),c:/windows/desktop/cphz/),.XLS,.dbf)&&要保存的文件名If File(asfil) Delete File &asfilEndifoExcel.ActiveWorkbook.SaveAs(asfil,8) &&a

27、mp;另存为DBFoExcel.ActiveWorkbook.saved=.T. &&不保存当前EXCEL表oExcel.Workbooks.Close &&关闭表oExcel.Quit &&退出EXCELRelease oExcel &&释放变量*VFP中例子*lcFileName=D:/TEST.XLSoExcel=Createobject(Excel.application)oExcel.Workbooks.Open(&lcFileName) &&打开文件R=oExcel.SHEETS(1).Used

28、Range.Rows.Count &&有数据的总行数C=oExcel.SHEETS(1).UsedRange.Columns.Count &&有数据的总列数oExcel.Cells(R,C).Select &&选中数据oExcel.Selection.NumberFormatLocal = &&把被选定的单元格设为文本格式oExcel.Columns.AutoFit &&让所有的列宽都自动调整oExcel.DisplayAlerts=.F.oExcel.ActiveWorkbook.SaveAs(D:/TEST.D

29、BF,8) &&另存为DBF*oExcel.ActiveWorkbook.SaveAs(D:/NewTest.xls,39) &&另存为5.0的Excel,或用43表示95/97格式oExcel.ActiveWorkbook.saved=.T. &&不保存当前EXCEL表oExcel.Workbooks.Close &&关闭表oExcel.Quit &&退出EXCELRelease oExcel &&释放变量Messagebox(Excel文件:D:/TEST.XLS 另存为 D:/TEST.DBF 完成!,64,信息提示)*VB例子*功能:VB调用Excel,将一个Excel文件另存为Dbf。前提:要安装ExcelDim oExcel As ObjectlcSFileName = D:/test.xls 源Excel文件名lcDFileName = D:/test1.dbf 目标Dbf文件名Set oExcel = Createobject(Excel.Application) 创建Excel对象oExcel.Workbooks.Open (lcSFileName) 打开Excel表*R = oExcel.SHEETS(1).UsedRange.ROWS.Count 有数据的总行数

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1