vfp调用word OR excel
VFP全面控制EXCEL(完全版)

1.创建Excel对象oExcel=Createobject("Excel.application")2.添加新工作簿oExcel.Workbooks.Add3.设置第3个工作表为激活工作表oExcel.Worksheets("sheet3").Activate4.打开指定工作簿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=59.设置指定行的高度(单位:磅)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=111.在第4列之前删除分页符oExcel.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range("b3:d3").BorderS(2).Weight=313.设置四个边框线条的类型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.03519.设置页脚到底边距为3厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.03520.设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.03521.设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.03522.设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.03523.设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.03524.设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.T. 25.设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.T.26.设置页面纸张大小(1-窄行8511 39-宽行1411 9:A4) oExcel.ActiveSheet.PageSetup.Papersize=127.打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.28.拷贝整个工作表edRange.Copy29.拷贝指定区域oExcel.ActiveSheet.Range("A1:E2").Copy30.粘贴oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial 31.在第2行之前插入一行oExcel.ActiveSheet.Rows(2).Insert32.在第2列之前插入一列oExcel.ActiveSheet.Columns(2).Insert33.设置字体oExcel.ActiveSheet.Cells(2,1)="黑体"34.设置字体大小oExcel.ActiveSheet.Cells(1,1).Font.Size=2535.设置字体为斜体oExcel.ActiveSheet.Cells(1,1).Font.Italic=.T.36.设置整列字体为粗体oExcel.ActiveSheet.Columns(1).Font.Bold=.T.37.清除单元格公式oExcel.ActiveSheet.Cells(1,4).ClearContents38.打印预览工作表oExcel.ActiveSheet.PrintPreview39.打印输出工作表oExcel.ActiveSheet.PrintOut40. mandBars(1).Controls(1).accChild(18).Execute &&打印(菜单序号18为Excel2003的‘打印’项)&&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=Getobject("","excel.sheet")XlApp=oXLS.ApplicationXlSheet=XlApp.ActiveSheetbars=mandBars.CountStr1=''For i=1 To barsStr1=Str1+Chr(13)+Alltrim(Str(i))+'、'+mandBars(i).accName+'(NAME:'+mandBars(i).Name+'INDEX:'+Alltrim(Str(mandBars(i).Index))+')'bars2=mandbars(i).accChildCountFor j=1 To bars2Tryobj=mandbars(i).Controls(j)Str1=Str1+Chr(13)+' '+Alltrim(Str(j))+'、'+mandbars(i).Controls(j).accname+'(ID:'+Alltrim(Str(mandBars(i).Controls( j).Id))+')'For k=1 To obj.accChildCountTryIf Not Empty(obj.Controls(k).accname )Str1=Str1+Chr(13)+' '+Alltrim(Str(k))+'、'+obj.Controls(k).accName+' (ID:'+ Alltrim(Str(obj.Controls(k).Id))+')'EndifCatchExitEndtryEndforCatchExitEndtryEndforWait Windows Alltrim(Str(i))+' / '+Alltrim(Str(bars))+' '+Str(i/bars*100,10,2)+'%' Nowait EndforSave To Xls.txt All Like Str1Modify Command Xls.txtReturn41.工作表另存为oExcel.ActiveWorkbook.SaveAs("c:\temp\22.xls")*检测当前目录是否有同名的EXCEL表,如果有先删除,再另存If !File(Sys(5) + Curdir() + "result.xls")oExcel.ActiveWorkbook.SaveAs(Sys(5) + Curdir() + "result.xls")ElselcFileName = loExcel.GetSaveAsFilename("result", "Excel (*.xls), *.xls") If !Empty(lcFileName)If File(lcFileName)Delete File (lcFileName)EndifoExcel.ActiveWorkbook.SaveAs(lcFileName)EndifEndif42.放弃存盘 && 避免出现保存对话框oExcel.ActiveWorkbook.saved=.T.43.存盘oExcel.ActiveWorkbook.Save44.关闭工作簿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 = "中页眉".RightHeader = "右页眉".LeftFooter = "左页脚".CenterFooter = "中页脚".RightFooter = "右页脚".Orientation=1 &&1竖排,2横排EndwithWith crfole.Range("A4:C4").MergeCells = .T..WrapText =.F..Orientation = 0.AddIndent =.F..ShrinkToFit = .F.Endwith48.文本对齐oExcel.Range("A4:c4").HorizontalAlignment =1 &&水平(1-默认、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 && 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.CloseoExcel.QuitRelease oExcel51.oExcel.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.:保护工作簿窗口54.设置允许用户编辑区域oExcel.ActiveSheet.Protection.AllowEditRanges.Add("区域3",oExcel.ActiveSheet.Range("A2:D5"))55.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.oExcel.DisplayAlerts = .F.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为 False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。
VFP 控制 EXCEL 的方法(最全)(DOC)

新编 VFP 控制 EXCEL 的方法最近正好有空,看到不少人对VFP控制EXCEL有兴趣,现将上次的"精华贴"重新整理一下,供各位爱好者参考!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. && 放弃存盘edRange.Copy && 拷贝整个工作表eole.ActiveSheet.Range("A1:E2").Copy && 拷贝指定区域eole.WorkSheet("Sheet2").Range("A1").PasteSpecial && 粘贴eole.Sheets.Count &&sheets的数量eole.Sheets.item(1).cell(1,1) &&sheet1的单元格存取(无需激活)eole.ActiveWorkbook.Save && 存盘(自动存盘不提问)eole.Workbooks.close && 关闭工作簿eole.quit && 退出Excel2、单元格的设置 ***********************************eole.ActiveSheet.Columns("D:D").Delete && 删除列eole.ActiveSheet.Columns("A:B").Delete && 删除列eole.ActiveSheet.Columns(1).ColumnWidth=20 && 列的宽度(单位:字符个数) eole.ActiveSheet.Columns(2).ColumnWidth=30eole.ActiveSheet.Columns("C:BE").ColumnWidth=9.5eole.Selection.Columns.AutoFit && 最适合的列宽eole.ActiveSheet.Range("b3:d3").Borders(2).Weight=3 && 指定边框线宽度(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)eole.ActiveSheet.Range("A1:BE29").Borders(1).LineStyle=1 && 设置四个边框线条的类型eole.ActiveSheet.Range("A1:BE29").Borders(2).LineStyle=1 && 设置四个边框线条的类型eole.ActiveSheet.Range("A1:BE29").Borders(3).LineStyle=1 && 设置四个边框线条的类型eole.ActiveSheet.Range("A1:BE29").Borders(4).LineStyle=1 && 设置四个边框线条的类型eole.ActiveSheet.Rows(1).Insert && 在第1行之前插入一行eole.ActiveSheet.Columns(2).Insert && 在第2列之前插入一列eole.cells(1,2).value="ABTMC" && 给单元格赋值eole.cells(2,2).value="&BBBB" && 给单元格赋值eole.ActiveSheet.Cells(1,4).ClearContents && 清除单元格公式eole.cells(1,2).value="ABTMC"+CHR(10)+"ABTMC" && 单元格内强制换行eole.ActiveSheet.Rows(1).RowHeight=1/0.035 && 设置指定行的高度(单位:磅) *(行高为1厘米,1磅=0.035厘米) eole.ActiveSheet.ROWS(1)="黑体" && 设置字体eole.ActiveSheet.ROWS(1).Font.Size=14 && 设置字体大小eole.ActiveSheet.ROWS(1).Font.Bold=.t. && 设置整行字体为粗体eole.ActiveSheet.Cells(1,1).Font.Italic=.t. && 设置字体为斜体eole.ActiveSheet.ROWS(1).Font.Underline = .t. && 设置下划线eole.ActiveSheet.ROWS(1).Font.FontStyle = "常规" && 字形eole.ActiveSheet.ROWS(1).Font.OutlineFont = .t. && 删除线----------------------取数据的一部分进行操作-----------------eole.ActiveSheet.Cells(1,1).Characters(3,2).Font.Bold= .T. &&取单元格数值的一部分进行设定,其中3为取得的起始位置,2为取得的字符个数。
VFP控制EXCEL的方法(终于找到了)

VFP控制EXCEL的常用方法oExl=CREATEOBJECT('Excel.application')oExl.Visible=.T.oExl.DefaultSaveFormat=39oExl.SheetsInNewWorkbook=1oExl.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-A5oExl.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.035oExl.ActiveSheet.PageSetup.FooterMargin=0.5/0.035oExl.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='宋体'oExl.ActiveSheet.Rows.RowHeight=0.5/0.035oExl.ActiveSheet.Rows.NumberFormatLocal="0.00_ ;[红色]-0.00"oExl.ActiveSheet.Rows.VerticalAlignment=2 &&单元格内容垂直居中*------------------------------------------------------*&&获取最大行号和最大列号Local nMaxRow,nMaxColnMaxRow=edRange.Rows.CountnMaxCol=edRange.Columns.Count&&表头格式设置oExl.ActiveSheet.Rows(1).Font.Size=16oExl.ActiveSheet.Rows(1).Font.Bold=.T.oExl.ActiveSheet.Rows(1).RowHeight=1/0.035oExl.ActiveSheet.Rows(1).HorizontalAlignment=3oExl.ActiveSheet.Rows(2).HorizontalAlignment=3oExl.ActiveSheet.Rows(3).HorizontalAlignment=3oExl.ActiveSheet.Rows(3).Font.Bold=.T.oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+'1').MergeoExl.ActiveSheet.Range('A2:'+CHR(96+nMaxCol)+'2').Merge*------------------------------------------------------*&&条件格式隐藏0值edRange.FormatConditions.DeleteedRange.FormatConditions.Add(1,3,'0')edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色*------------------------------------------------------*oExl.ActiveSheet.Range('A1:B1').Interior.ColorIndex=6 &&单元格底纹黄色*------------------------------------------------------*oExl.ActiveSheet.Columns.AutoFit &&自动列宽oExl.ActiveSheet.Range("A3:"+CHR(96+nMaxCol)+ALLTRIM(STR(nMaxRow))).Borders.Weight=2 &&边框线*------------------------------------------------------*&&自动筛选IF !oExl.ActiveSheet.AutoFilterMode &&判断是否存在自动筛选oExl.ActiveSheet.Rows(3).Autofilter &&如果不存在自动筛选,则添加自动筛选ENDIF*------------------------------------------------------*&&冻结窗格oExl.ActiveSheet.Range('D4').SelectoExl.ActiveWindow.FreezePanes = .T.*------------------------------------------------------**------------------------------------------------------*&&分类汇总Local Arry(1),nMaxRow,nMaxColArry(1)=5nMaxRow=edRange.Rows.CountnMaxCol=edRange.Columns.CountoExl.ActiveSheet.Range('A3:'+chr(96+nMaxCol)+alltrim(str(nMaxRow))).Subtotal(2,-4157,@Arry,.T .,.F.,.T.) &&按第2列分类汇总数组Arry保存的列*------------------------------------------------------*1、对象的创建与关闭*******************************oExl=CREATEOBJECT('Excel.application')&&创建Excel对象oExl.SheetsInNewWorkbook=1 &&新建工作簿默认包含工作表个数oExl.Workbooks.Add &&新建工作簿,工作表个数由SheetsInNewWorkBooks属性指定oExl.Workbooks.Open(cXLS,3,.T.)&&打开指定工作簿(更新链接/只读打开)oExl.Workbooks.Open(cXLS, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMru], [Local], [CorruptLoad])oExl.Worksheets(cSheet).Activate&&激活工作表Sheet3 oExl.Worksheets(3).Activate &&激活(从左到右)第3个工作表oExl.WorkSheets.Count &&工作簿中工作表数oExl.DefaultSaveFormat=39 &&默认格式Excel 5.0oExl.DisplayAlerts=.F. &&不显示警告信息oExl.Visible=.T.&&显示Excel窗口oExl.Visible=.F.&&不显示Excel窗口oExl.Caption="Excel标题栏"&&更改Excel标题栏oExl.WorkSheet("Sheet2").Range("A1").PasteSpecial&&粘贴oExl.Quit &&退出ExceloExl.DisplayRecentFiles=.T. &&是否显示最近打开文档oExl.RecentFiles.Maximum=4 &&历史最大纪录数erName="XXXX" &&用户名oExl.StandardFont="宋体" &&标准字体oExl.StandardFontSize="12" &&标准字体大小oExl.DefaultFilePath="D:\XXXXXX\" &&默认工作目录oExl.EnableSound=False &&声音反馈oExl.RollZoom=False &&智能鼠标缩放oExl.TransitionMenuKey="/" &&Microsoft Office Excel菜单键oExl.ActiveWorkbook.Password="123"oExl.ActiveWorkbook.WritePassword="456"oExl.ActiveWorkbook.ReadOnlyRecommended=FalseoExl.ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:="", _PasswordEncryptionAlgorithm:="OfficeStandard", PasswordEncryptionKeyLength:=40 _, PasswordEncryptionFileProperties:=FalseIF oExl.ActiveWorkbook.FileFormat==39 &&格式为Excel 5.0工作簿ENDIFoExl.ActiveWorkBook.SaveAs(FileName,FileFormat,PassWord,WriteResPassWord,ReadOnlyRecom mended,CreateBackup)&&另存为&&参数说明FileName 字符型,指定文件名FileFormat 数值型,文件格式-4143 Microsoft Office Excel11 DBF439 Microsoft Excel 5.0/9543 Microsoft Excel97-Excel2003 & 5.0/9544 网页Html文件-4158 文本文件(制表符分隔)PassWord 字符型,只读密码WriteResPassWord 字符型,写密码ReadOnlyRecommended 逻辑型,建议只读CreateBackup 逻辑型,自动备份例如:oExl.ActiveWorkBook.SaveAs("d:\1.xls",39)oExl.ActiveWorkbook.saved=.T.&&放弃存盘oExl.ActiveWorkbook.Save&&存盘(自动存盘不提问)oExl.Workbooks.close&&关闭工作簿3、单元格的设置***********************************&&冻结窗格oExl.ActiveSheet.Range('D4').SelectoExl.ActiveWindow.FreezePanes = .T.&&条件格式设定oExl.ActiveSheet.Range('A1:H18').FormatConditions.Add(Type,Operator,Formula1,Formula2) Type 类型(1单元格数值,2公式)Operator 操作符(1介于,2不介于,3等于,4不等于,5大于,6小于,7大于等于,8小于等于) Formula1 表达式1Formula2 表达式2,操作符为1介于或2不介于才有效&&条件格式例句:数值为0者,文字颜色白色edRange.FormatConditions.DeleteedRange.FormatConditions.Add(1,3,'0')edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色&&编辑edRange.Copy&&拷贝整个工作表oExl.ActiveSheet.Range("A1:E2").Copy&&拷贝指定区域oExl.ActiveSheet.Columns("D:D").Delete&&删除列oExl.ActiveSheet.Columns("A:B").Delete&&删除列oExl.ActiveSheet.Rows(1).Insert &&在第1行之前插入一行oExl.ActiveSheet.Columns(2).Insert&&在第2列之前插入一列oExl.ActiveSheet.Cells(1,2).Value="ABTMC"&&给单元格赋值oExl.ActiveSheet.Cells(2,2).Value="&BBBB"&&给单元格赋值oExl.ActiveSheet.Cells(1,4).ClearContents&&清除单元格公式oExl.ActiveSheet.Rows(18).PageBreak=1&&在第18行之前插入分页符oExl.ActiveSheet.Columns(4).PageBreak=0&&在第4列之前删除分页符oExl.ActiveSheet.Rows(3).AutoFilter &&自动筛选oExl.ActiveSheet.Cells(1,1).Delete(-4159) &&删除单元格-4159 右边单元格左移-4162 下边单元格上移oExl.Selection.EntireRow.Delete &&所在行整行删除oExl.Selection.EntireColumn.Delete &&所在列整列删除oExl.ActiveSheet.Cells(1,1).Insert(-4142) &&插入单元格-4142 活动单元格下移-4161 活动单元格右移oExl.ActiveSheet.Selection.EntireRow.Insert &&插入行oExl.ActiveSheet.Selection.EntireColumn.Insert &&插入列&&选择性粘贴oExl.ActiveSheet.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=FalsePaste 粘贴数据:8列宽,11公式和数值格式,12数值与数值格式,-4104全部,-4123公式,-4163数值,-4122格式,Operation 运算符:-4142无,2加,3减,4乘,5除SkipBlanks 跳过空白单元:逻辑型Transpose 转置:逻辑型--------------------------------------------------&&排序成功例句:oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+ALLTRIM(STR(nMaxRow))).Sort(oExl.ActiveSheet .Range(CHR(96+ASCAN(Arry,'原币金额'))+'2'),2,,,,,,1)&&按"原币金额"所在列降序排列,有标题oExl.ActiveSheet.Rows('1:28').SortKey1:=Range("A2"), Order1:=xlDescending,Key2:=Range("B2"), Order2:=xlAscending,Key3:=Range("C2"), Order3:=xlDescending,Header:=xlYes,OrderCustom:=6,MatchCase:=True,Orientation:=xlTopToBottom,SortMethod:=xlStroke,DataOption1:=xlSortNormal,DataOption2:=xlSortNormal,DataOption3:=xlSortNormal参数说明:2 xlDescending降序1 xlAscenging升序标题行:0 xlGuess1 xlYes,2 xlNo1 xlTopToBottom排序方法:1 xlPinYin,2 xlStroke0 xlSortNormalKey1 排序字段:取值类型是范围oExl.ActiveSheet.Range('B2')Order1 升序降序:xlAscending=1升序,xlDescending=2降序Header 有无标题:xlGuess=0自动判断,xlYes=1有,xlNo=2无orderCustom 排序顺序:1普通,6日一二三MatchCase 是否区分大小写:T区分,F不区分Orientation 1从头到底,2从左到右SortMethod 排序方法:xlPinYin=1拼音,xlStroke=2字母DataOption1 xlSortNormal=0正常DataOption2DateOption3&&分类汇总LOCAL Array(1)Array(1)=5oExl.ActiveSheet.Range('A1:G28').Subtotal(2,-4157,@Array,.T.,.F.,.T.)参数列表:GroupBy:=2, Function:=xlSum, TotalList:=Array(3), Replace:=True, PageBreaks:=False, SummaryBelowData:=True参数说明:GroupBy 分组字段序号Function 汇总方式:-4157求和,-4112计数TotalList 汇总数据项:保存汇总列序号的数组引用Replace 替换当前分类汇总:逻辑型,默认TPageBreaks 每组数据分页:逻辑型,默认FSummaryBelowData 汇总结果显示在数据下方:逻辑型,默认T&&汇总结果表间切换oExl.ActiveSheet.Outline.ShowLevels RowLevels:=2oExl.ActiveSheet.Outline.ShowLevels RowLevels:=1oExl.ActiveSheet.Outline.ShowLevels RowLevels:=3&&数值格式设置oExl.ActiveSheet.Range("A").NumberFormatLocal="0.00"&&指定区域内的数字显示格式&&对齐设置oExl.ActiveSheet.Range('A1:B1').HorizontalAlignment=3&&水平方向2左对齐,3居中,4右对齐edRange.VerticalAlignment=2&&垂直方向1靠上,2居中,3靠下oExl.ActiveSheet.Range('A1:B1').WrapText=.T. &&自动换行oExl.ActiveSheet.Range('A1:B1').Orientation = -4166 &&文字方向-4166 垂直向下oExl.ActiveSheet.Range('A1:B1').AddIndent = False &&缩进oExl.ActiveSheet.Range('A1:B1').IndentLevel = 2 &&缩进2字符oExl.ActiveSheet.Range('A1:B1').ShrinkToFit = .T. &&缩小以填充oExl.ActiveSheet.Range('A1:B1').ReadingOrder = -5002 &&文字阅读方向-5002 根据内容-5003 从左到右oExl.selection.MergeCells=.T.&&合并单元oExl.selection.HorizontalAlignment=2&&水平方向2左对齐,3居中,4右对齐oExl.selection.VerticalAlignment=2&&垂直方向1靠上,2居中,3靠下&&字体设置oExl.ActiveSheet.ROWS(1)="黑体"&&设置字体oExl.ActiveSheet.ROWS(1).Font.FontStyle="常规"oExl.ActiveSheet.ROWS(1).Font.Size=14&&设置字体大小oExl.ActiveSheet.ROWS(1).Font.Bold=.T.&&设置整行字体为粗体oExl.ActiveSheet.ROWS(1).Font.StrikeThrough=.T. &&删除线oExl.ActiveSheet.Cells(1,1).Font.Italic=.T.&&设置字体为斜体oExl.ActiveSheet.ROWS(1).Font.Superscript = .T. &&上标oExl.ActiveSheet.ROWS(1).Font.Subscript = .T. &&下标oExl.ActiveSheet.ROWS(1).Font.OutlineFont = FalseoExl.ActiveSheet.ROWS(1).Font.Shadow = FalseoExl.ActiveSheet.ROWS(1).Font.Underline = -4142 &&下划线oExl.ActiveSheet.ROWS(1).Font.ColorIndex = -4105 &&字体颜色自动设置oExl.ActiveSheet.ROWS(1).Font.Underline = 2 &&下划线类型下划线类型2 单下划线&&边框设置oExl.ActiveSheet.Range("b3:d3").Borders.Weight=2&&指定边框线宽度其中Borders参数:1-左、2-右、3-顶、4-底、5-斜\、6-斜/;不带参数表示默认上下左右四个边框LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)oExl.ActiveSheet.Range("A1:BE29").Borders(1).LineStyle=1 &&设置四个边框线条的类型oExl.ActiveSheet.Range("A1:BE29").Borders(2).LineStyle=1 &&设置四个边框线条的类型oExl.ActiveSheet.Range("A1:BE29").Borders(3).LineStyle=1 &&设置四个边框线条的类型oExl.ActiveSheet.Range("A1:BE29").Borders(4).LineStyle=1 &&设置四个边框线条的类型&&1 xlContinuous&&2 xlThin&&5 xlDiagonalDown&&6 xlDiagonalUp&&10 xlEdgeRight&&12 xlInsideHorizontal&&行列设置oExl.ActiveSheet.Columns(1).ColumnWidth=20&&列的宽度(单位:字符个数)oExl.ActiveSheet.Columns(2).ColumnWidth=30oExl.ActiveSheet.Columns("C:BE").ColumnWidth=9.5oExl.ActiveSheet.Columns.AutoFit&&最适合的列宽oExl.ActiveSheet.Rows(1).RowHeight=1/0.035&&设置指定行的高度(单位:磅)(行高为1厘米,1磅=0.035厘米)oExl.ActiveSheet.Range('A1:B1').Interior.ColorIndex=nColorIndex &&设置底纹常用颜色值ColorIndex1 黑色2 白色3 红色4 鲜绿5 蓝色6 黄色7 粉红8 青绿9 深红10 绿色13 紫罗兰15 灰-25%34 浅青绿36 浅黄38 玫瑰红39 淡紫40 茶色42 水绿46 橙色53 褐色54 梅兰oExl.ActiveSheet.Range('P3:P4').Orientation=-4166 &&文字方向垂直&&同一工作簿中复制工作表副本oExl.WorkSheets(1).Copy(oExl.ActiveWorkBook.Sheets(1))&&不同工作簿oExl.Sheets(1).copy(oExl.Workbooks("BOOK1.XLS").Sheets(1))3、页面设置***********************************************oExl.ActiveSheet.PageSetup.TopMargin=2/0.035&&设置顶边距oExl.ActiveSheet.PageSetup.BottomMargin=1.5/0.035&&设置底边距oExl.ActiveSheet.PageSetup.LeftMargin=0&&设置左边距oExl.ActiveSheet.PageSetup.RightMargin=0&&设置右边距&&页眉页脚oExl.ActiveSheet.PageSetup.HeaderMargin=1.5/0.035&&设置页眉边距oExl.ActiveSheet.PageSetup.FooterMargin=0.8/0.035&&设置页脚边距oExl.ActiveSheet.PageSetup.LeftHeader="&9XXXXXX"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制表人:xxx "&P页序号&N页总数&D日期,&T时间&S删除线&Y下标&Z路径&F文件&A标签&G图片&X上标&""隶属,倾斜""&9九号字体&U下划线&B粗体&&左页眉图片设定oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Filename="D:\2.jpg"oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Height = 45oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Width = 11.25oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Brightness = 0.51oExl.ActiveSheet.PageSetup.LeftHeaderPicture.ColorType = msoPictureGrayscale oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropBottom = 28.35oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = 28.35oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropRight = 28.35oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 28.35oExl.ActiveSheet.PageSetup.CenterHorizontally=.T.&&设置页面水平居中oExl.ActiveSheet.PageSetup.CenterVertically=.T.&&设置页面垂直居中&&设置页面纸张大小oExl.ActiveSheet.PageSetup.Orientation=2&&页面方向2表示横向oExl.ActiveSheet.PageSetup.PaperSize=11纸张大小:9 A411 A570 A6oExl.ActiveSheet.PageSetup.Draft=.T.oExl.ActiveSheet.PageSetup.FirstPageNumber=1oExl.ActiveSheet.PageSetup.Order=1&&单色打印oExl.ActiveSheet.PageSetup.BlackAndWhite=.T.oExl.ActiveSheet.PageSetup.PrintComments=-4142oExl.ActiveSheet.PageSetup.Zoom=100 &&缩放100%oExl.ActiveSheet.PageSetup.Zoom=.F. &&禁用缩放oExl.ActiveSheet.PageSetup.FitToPagesWide=1 &&调整为一页宽oExl.ActiveSheet.PageSetup.FitToPagesTall=1 &&调整为一页高oExl.ActiveSheet.PageSetup.PrintHeadings=.T.oExl.ActiveSheet.PageSetup.PrintGridLines=.T.oExl.ActiveSheet.PageSetup.PrintErrors=oExl.ActiveSheet.PageSetup.PrintQuality=600 &&打印质量oExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$3"&&固定标题行oExl.ActiveSheet.PageSetup.PrintTitleColumns="$A:$C"&&固定标题列oExl.ActiveSheet.PageSetup.PrintGridlines=.T.&&打印单元格网线*********************************************************&&打印oExl.ActiveSheet.PrintPreview&&打印预览工作表oExl.ActiveSheet.PageSetup.PrintArea="$A$1:$E$30" &&设置打印区域ActiveSheet.PageSetup.PrintArea = "" &&取消打印区域ActiveWorkbook.WebPagePreview &&网页预览oExl.ActiveSheet.PrintOut&&打印输出工作表5、VFP下直接调用EXCEL、WORD文件DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING,STRING lpszFile,STRING, STRING,INTEGERoperate="open"ShellExecute(0,operate,"C:\111.XLS",0,0,1)&&EXCEL文件ShellExecute(0,operate,"C:\111.DOC",0,0,1)&&WORD文件oExcel=Createobject("Excel.application")&&创建Excel对象**对象属性1、添加Sheets.Add before:=Sheets(1) '在第1工作表前添加新工作表Sheets.Add after:=Sheets(Sheets.Count) '在最后工作表后添加新工作表2、移动ActiveSheet.Move before:=Sheets(2) '将当前工作表移动至第2工作表之前3、命名="工作表名" '将当前工作表命名为"工作表名"4、删除可以用以下语句删除当前工作表。
如何在vfp中调用excel实现图、表的制作(之二)

如何在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进行操作。
关于vfp控制excel、word的常用东东

关于vfp控制excel、word的常用东东头大mailto:ppp1117@大家对vfp中通过OLE调用excel、word完成报表、数据转换等功能还感兴趣,请按以下步骤得到完整的VBA帮助:1、安装ms office 97/2000;2、启动excel、word,单击“工具”-“宏”-“Visual Basic编辑器”进入,再选“帮助”菜单即可(注意:第一次使用VBA帮助会提示插入光盘安装VBA帮助的)。
现将excel下常见的东东搜集整理如下:1.创建Excel对象_ole_excel = CreateObject("Excel.Application")2.打开指定工作表_ole_excel.WorkBooks.Open("工作表文件名") && 要打开的工作表名(xls)必须是全路径3.添加新工作簿_ole_excel.WorksBooks.Add4.激活指定的工作簿_ole_excel.WorkSheets("工作簿名").Activate5.设置Excel对象为可见,一般为调试用_ole_excel.visible = .t.6.更改Excel对象标题栏_ole_excel.Caption = "VFP程序OLE调用Excel"7.给单元格赋值_ole_excel.cells(行,列).value = 变量 && 重要,一般由VFP传递数据给excel即由此句,可以是VFP支持的任何数据8.设置指定列的宽度_ole_excel.ActiveSheet.Columns(列).ColumnWidth = 字符个数9.设置指定行的高度(默认单位:磅)_ole_excel.ActiveSheet.Rows(行).RowHeight = 1/0.035 && 设定行高为1厘米,1磅=0.035厘米10.在第18行之前插入分页符_ole_excel.WorkSheets("Sheet1").Rows(18).PageBreak = 111.在第4列之前删除分页符_ole_excel.ActiveSheet.Columns(4).PageBreak = 012.设置四个边框线条的类型及风格_ole_excel.ActiveSheet.Range(范围).Borders(线型).LineStyle = 1 && 范围指起止的单元格,如"B1:H9";Borders为边框线条:1-左,2-右,3-顶,4-底,5-斜线\,6-斜线/;LineStyle为线型参数:1-细实线,2-细虚线,……4-点虚线,……,9-双细实线13.指定边框线宽度(Borders为边框线条,参见上条;默认单位:磅)_ole_excel.ActiveSheet.Range(范围).Borders(线型).Weight = 214.设置页眉_ole_excel.ActiveSheet.PageSetup.CenterHeader = "什么什么报表"15.设置页脚_ole_excel.ActiveSheet.PageSetup.CenterFooter = "第&P页"16.设置页眉到顶端边距_ole_excel.ActiveSheet.PageSetup.HeaderMargin = 2/0.035 && 2厘米17.设置页脚到底边边距_ole_excel.ActiveSheet.PageSetup.FooterMargin = 3/0.035 && 3厘米18.设置顶边距_ole_excel.ActiveSheet.PageSetup.TopMargin = 3/0.035 && 3厘米19.设置底边距_ole_excel.ActiveSheet.PageSetup.BottomMargin = 3/0.035 && 3厘米20.设置左边距_ole_excel.ActiveSheet.PageSetup.LeftMargin = 3/0.035 && 3厘米21.设置右边距_ole_excel.ActiveSheet.PageSetup.RightMargin = 3/0.035 && 3厘米22.设置页面水平居中_ole_excel.ActiveSheet.PageSetup.CenterHorizontally = .t.23.设置页面垂直居中_ole_excel.ActiveSheet.PageSetup.CenterVertically = .t.24.设置页面纸张大小,重要!很多网友需要的东东_ole_excel.ActiveSheet.PageSetup.PaperSize = 纸张类型 && 下面列出常见的纸张;可为下列 XlPaperSize 常量之一(某些打印机可能不支持所有的这些纸张大小);常量数值意义;xlPaperLetter 1 Letter (8-1/2 in. x 11 in.)xlPaperA3 8 A3 (297 mm x 420 mm)xlPaperA4 9 A4 (210 mm x 297 mm)xlPaperA4Small 10 A4 Small (210 mm x 297 mm)xlPaperA5 11 A5 (148 mm x 210 mm)xlPaperB4 12 B4 (250 mm x 354 mm)xlPaperB5 13 B5 (182 mm x 257 mm)xlPaperFanfoldUS 39 U.S. Standard Fanfold (14-7/8 in. x 11 in.)xlPaperUser 用户自定义25.打印单元格网线_ole_excel.ActiveSheet.PageSetup.PrintGridLines = .t.26.拷贝整个工作表_ole_edRange.Copy27.拷贝指定区域_ole_excel.ActiveSheet.Range(范围).Copy28.粘贴_ole_excel.WorkSheet("工作簿").Range(单元格).PasteSpecial && 单元格如"K9"29.在第2行之前插入一行_ole_excel.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列_ole_excel.ActiveSheet.Columns(2).Insert31.设置字体_ole_excel.ActiveSheet.Cells(行,列) = "黑体"32.设置字体大小(默认单位:点)_ole_excel.ActiveSheet.Cells(行,列).Font.Size = 1633.设置字体为斜体_ole_excel.ActiveSheet.Cells(行,列).Font.Italic = .t.34.设置整列字体为粗体_ole_excel.ActiveSheet.Columns(列).Font.Bold = .t.35.合并单元格,重要!_ole_excel.Worksheets("工作簿名").Range(范围).merge && 范围必须指定起止的单元格,如"A1:B4"36.撤销合并单元格,上述操作的逆操作_ole_excel.Worksheets("工作簿名").Range(范围).unmerge37.在单元格中设置公式(重要,一般可以用来实现计算汇总、求平均等很多功能)_ole_excel.cells(行,列).value = "=公式" && 可以使用所有VBA内部函数,如sum()等。
vfp中处理多种文件

做为一种数据处理软件,VFP在使用上的简洁是人所共知的。
在使用VFP进行应用程序开以时,有时会涉及到一些非数据处理方面的内容,比如在VFP中打开WORD文档、EXCEL图表、利用OE收发电子邮件,这些功能又恰恰是VFP的弱项。
通常情况下,我们处理这些问题的方法是使用OLE(现称之为ActiveX)技术来完成。
但是,在VFP中要熟练操作OLE对象,又是一件更麻烦的事情。
拿用VFP接入互联网来说,你可以在VFP的表单中加入Microsoft Web浏览器控件,但是如果没有专业的技术文档,你要想顺利地使用浏览器控件,这基本上是不可能的。
有没有一种更简单的办法来实现上述功能呢?有的。
VFP提供了在应用程序中调用Windows API函数的功能。
如果我们要在VFP程序中使用API函数,只需要在使用前先进行申明,告诉VFP你想调用的函数的基本情况。
申明语句的语法如下:DECLARE [cFunctionType]FunctionName IN LibraryName [AS AliasName][cParamType1 [@]ParamName1, cParamType2 [@]ParamNam e2,……]其中各参数的具体含义如下:cFunctionType:被调用函数的返值。
它可以是SHORT、INTEGER、SINGLE、DOUBLE、LONG、STRING 六个类型之一。
学过VC编程的朋友对这些数据类型肯定不会陌生。
FunctionName :调用函数的名称。
它是大小写敏感的。
LibraryName:调用函数的所在地。
它一般是一DLL文件名。
cParameterType1 [@]ParamName1, cParameterType2 [@]ParamName2, :当对函数的调用属带参调用时,就应该申明参数的类型及名称。
其实,使用VFP操作其他类型的文件,你不妨把这项工作交给系统替你来完成。
在SHELL32.DLL动态链接库中,有一ShellExecute函数,它负责打开文件的操作,查阅MSDN,我们能够得到下述帮助:HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);其调用参数的含义如下:hwnd:指明打开文件的窗口句柄。
vfp ole原理

vfp ole原理
VFP(Visual FoxPro)是一种基于对象的编程语言和集成开发环境,用于创建数据库应用程序和解决方案。
OLE(Object Linking and Embedding)是一种技术,用于在Windows环境中实现对象的链接和嵌入。
VFP中的OLE原理指的是VFP如何利用OLE技术与其他
应用程序进行交互和集成。
首先,VFP可以作为客户端应用程序使用OLE自动化来与其他
支持OLE的应用程序进行通信。
这意味着VFP可以创建、操纵和控制其他应用程序的对象,比如Microsoft Office套件中的Word、Excel等。
通过OLE自动化,VFP可以实现与这些应用程序的数据交换和功能调用,从而实现整合和扩展。
其次,VFP本身也可以作为服务器应用程序,通过OLE公开自
己的对象模型供其他应用程序调用。
这意味着其他应用程序可以通过OLE技术访问VFP中的对象和方法,实现与VFP的集成和交互。
这种方式可以让其他应用程序利用VFP的功能和数据处理能力,从而扩展自身的功能和实现更复杂的业务逻辑。
此外,VFP还可以通过OLE嵌入技术将其他应用程序的对象嵌
入到VFP的窗体或报表中,实现在VFP应用程序中展示和操作其他
应用程序的内容。
这种方式可以实现数据可视化、报表生成等功能,增强了VFP应用程序的表现和功能。
总的来说,VFP中的OLE原理涉及了VFP与其他应用程序之间
的通信、集成和交互,通过OLE技术实现了不同应用程序之间的协
同工作和功能整合。
这种原理的应用使得VFP成为一个强大的开发
工具,能够满足复杂的业务需求并与其他应用程序无缝集成。
VFP中调用其他应用程序的方法

VFP中调用其他应用程序的方法在VFP (Visual FoxPro) 中,要调用其他应用程序,可以通过以下几种方法实现:1. 使用 Shell 函数调用外部可执行文件:Shell 函数用于在 Windows 中启动一个新的进程,并执行指定的可执行文件。
可以使用 Shell 函数调用其他应用程序,然后传递需要的参数。
例如,要启动记事本程序(notepad.exe),可以使用以下代码:```foxShell("notepad.exe")```要在调用外部应用程序时传递参数,可以将参数作为字符串拼接到可执行文件路径的后面。
例如,要启动记事本程序并打开一个指定的文本文件,可以使用以下代码:```foxShell("notepad.exe C:\path\to\file.txt")```2. 使用 CreateObject 函数创建并操作外部应用程序的 COM 对象:CreateObject 函数用于创建和操作 COM 对象。
可以使用CreateObject 函数创建其他应用程序的 COM 对象,然后调用其方法和属性。
要使用该方法,需要知道外部应用程序的 ProgID 或 ClassID,来创建对应的 COM 对象。
例如,要创建并操作 Microsoft Excel 应用程序的COM 对象,可以使用以下代码:```foxoExcel = CreateObject("Excel.Application")oExcel.Visible = .T.```在通过COM对象调用其他应用程序时,可以使用COM对象的方法和属性来实现所需的功能。
3. 使用 ShellExecute 函数调用外部应用程序:ShellExecute 函数用于在 Windows 中执行一个外部应用程序,类似于 Shell 函数。
不同之处在于,ShellExecute 函数支持更多的参数选项,包括打开方式、工作目录、参数等。
如何在vfp中调用excel实现图、表的制作(之八)

如何在vfp中调用excel实现图、表的制作(之八)如何在vfp中调用excel实现图、表的制作(之八)本讲纯属凑数,将搜集的一些可能用到的VFP调用Excel指令语句罗列出来供各位在编程时参考。
所幸没有稿酬可赚,也就没有骗稿费之嫌,各位看官也就不会责怪我。
呵呵。
1. 创建Excel对象eole=CreateObject(“Excel.application”)2. 添加新的工作簿eole.Workbooks.Add3. 打开指定工作簿eole.Workbooks.Open(“C:\demo.xls”)4. 设置第三个工作表为激活(作用)工作表eole.WorkSheets(“Sheet3”).Activate5. 是否显示Excel窗口eole.Visible=.T. (.T. 显示;.F.不显示)6.关闭工作簿eole.Workbooks.Close7.退出Exceleole.quit8.保存当前工作簿eole.ActiveWorkbook.Save9.当前工作簿另存为eole.ActiveWorkbook.SaveAs(“e:\temp\my1.xls”)10.退出时是否存盘eole.ActiveWorkbook.Saved=.F. (.F. 放弃存盘;.T.不放弃存盘)11.是否防止警告框的出现eole.DisplayAlerts=.F. (.F. 不出现;.T.出现)12.运行Excel宏eole.Application.Run(“宏1”)13.当前屏不显示零值eole.ActiveWindow.DisplayZeros=.F.14.更改Excel标题栏内容eole.Caption=”趋势分析表”15. 给单元格赋值eole.Cells(1,4).Value=3.141616.选定区域eole.ActiveSheet.Range(“A1:G10”).Select17.清除区域eole. ActiveSheet.Range(“A1:G10”).Clear18.合并单元格eole.ActiveSheet.Range(“A1:B2”).Merge19. 设置字体eole.ActiveSheet.Cells(2,1)=”隶书”20. 设置字号eole.ActiveSheet.Cells(2,1).font.size=1621.设置字体颜色eole.ActiveSheet.Cells(1,1).font.ColorIndex=322.字体设为斜体eole.ActiveSheet.Cells(1,1).font.Italic=.T.23.文字带下划线eole. ActiveSheet.Range(“A2:A2”).font.underline=.T.24.整列字体为粗体eole.ActiveSheet.Columns(2).font.bold=.T.25.设置单元格背景色eole. ActiveSheet.Cells(3,4).Interior.ColorIndex = 46 26.调整列宽eole.Range(“A1:H1”).ColumnWidth=12.527.调整指定列宽度eole.ActiveSheet.Column(2).ColumnWidth=2028.单元格文字居中eole.Cells(1,8).HorizontalAlignment=329.插行eole.ActiveSheet.Rows(1).Insert30.删行eole.ActiveSheet.Rows[8].Delete31.插列eole.ActiveSheet.Columns(2).Insert32.删列eole.Columns("D:D").Selecteole.Selection.Delete(-4159)33.删除指定工作表指定列eole.WorkSheets(“Sheet1”).Row(3).Delete34.调整行高eole.ActiveSheet.Rows(5).RowHeight=4035.块拷贝eole.Range(“A1:J3”).Selecteole.Selection.Copy或:eole.ActiveSheet.Range(“A1:E2”).Copy36.块粘贴eole.Range(“A1:A1”).Selecteole.ActiveSheet.Paste37.拷贝整个工作表ed.Range.Copy / eole.Cells.Copy 38.在指定工作表指定单元格粘贴eole.WorkSheets(“Sheet2”).Range(“A1”).PasteSpecial 39.单元格设置公式eole.Range(“A1”).Fornula=”=10*Rand()”40.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents41.插入新工作表eole.Sheets.Add42.删除某个工作表eole.Sheets(“Sheet2”).Selecteole.ActiveWindow.SelectSheets.Delete43.返回当前工作簿工作表的总数eole.WorkSheets.Count44.返回Sheet1工作表的表名eole.WorkSheets(1).Name45.工作表更名eole.Sheets(2).Name=”损益表”46. 设置表格四个边框线条的类型eole.ActiveSheet.Range(“B3:D3”).Borders(2).Linestyl e=1 其中:borders参数:1-左 2-右 3-顶 4-底 5-斜/ 6-反斜\Linestyle参数:1和7-细实线;2-细虚线;4-点虚线;9:双细实线47. 设置表格边框线粗细eole.ActiveSheet.Range(“B3:D3”).Borders(2).Weight=348.在指定行插入分页符eole.WorkSheets(“Sheet1”).Rows(10).PageBreak=149.在指定列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=050.打印预览工作表eole.ActiveSheet.PrintPreview51.打印输出eole.ActiveSheet.Printout52.报表打印方向eole.ActiveSheet.PageSetup.Orientation=1 (1:垂直打印2:水平打印)53.设置页面纸张尺寸eole.ActiveSheet.PageSetup.PaperSize=954.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridLines=.T.55.报表水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.T.56.报表垂直居中eole.ActiveSheet.PageSetup. CenterVertically=.T.57.设置报表页眉eole.ActiveSheet.PageSetup.CenterHeader=”报表1”58.设置报表页脚eole.ActiveSheet.PageSetup.CenterFoo ter=”第6页”59.设置报表左边距eole.ActiveSheet.PageSetup.LeftMargin=2/0.035 (2厘米)60.设置报表右边距eole.ActiveSheet.PageSetup.RightMargin=2/0.03561.设置报表顶边距eole.ActiveSheet.PageSetup.T opMargin=2/0.03562.设置报表底边距eole.ActiveSheet.PageSetup.BottomMargin=2/0.035关于VFP调用Excel 编程最后再罗嗦几句。
vfp表单中表格控件使用

vfp表单中表格控件使用
在VFP(Visual FoxPro)表单中使用表格控件可以方便地显示和编辑数据。
以下是在VFP表单中使用表格控件的一般步骤:
1. 打开VFP并创建新表单。
2. 在表单设计器中选择表格控件工具。
3. 在表单上绘制表格控件的大小和位置。
4. 双击表格控件,进入编辑模式。
5. 选择要显示的数据源(如数据库表或数组等)。
6. 根据需求调整表格的列数、列宽和列标题等属性。
7. 设置表格控件的其他属性,如是否可编辑、是否显示行号等。
8. 编写相关的VFP代码来处理表格控件的事件,例如在选择
行或编辑单元格时触发的事件。
9. 运行表单,查看和测试表格控件的功能。
在使用表格控件时,还可以通过编写代码来动态地添加、删除、更新和过滤表格中的数据,并对表格控件进行排序和分页等操作。
除了基本的显示和编辑数据外,VFP表格控件还可以支持更
复杂的功能,如合并单元格、显示图标或图像、设置条件格式等。
总之,使用表格控件可以方便地在VFP表单中展示和操作数据,提高用户界面的友好性和功能性。
VFP控制Word

用VFP命令控制Word1、创建Word文档Appword=CreateObject("word.application")2、显示Word文档Appword.Visible=.t.3、建立新文档Appword.Documents.Add()4、保存文档Appword.ActiveDocument.SaveAs("E:\abc.doc")5、打开文档Appword.ActiveDocument.Open("E:\abc.doc")6、保存Appword.ActiveDocument.Save7、关闭Appword.ActiveDocument.Close8、退出Appword.Application.Quit9、打印Appword.ActiveDocument.PrintOut10、设置上页边距Appword.ActiveDocument.PageSetup.TopMargin=1.5/0.035 11、设置下页边距Appword.ActiveDocument.PageSetup.BottomMargin=1.5/0.03512、设置左页边距Appword.ActiveDocument.PageSetup.LeftMargin=1.5/0.03513、设置右页边距Appword.ActiveDocument.PageSetup.RightMargin=1.5/0.03514、设置页宽Appword.ActiveDocument.PageSetup.PageWidth=18.4/0.03515、设置页高Appword.ActiveDocument.PageSetup.PageHeight=26/0.03516、设置页面竖放Appword.ActiveDocument.PageSetup.Orientation=117、设置页面横放Appword.ActiveDocument.PageSetup.Orientation=218 、指定网格youtMode=0 && 0--不指定网格1--指定网格和字符网格 2--指定行网格 3--文字对齐网格19、设置每页行数Appword.ActiveDocument.PageSetup.LinesPage=4220、设置每行字数Appword.ActiveDocument.PageSetup.ChartLine=1021、页面设为4栏Appword.ActiveDocument.PageSetup.TextColumns.SetCount(4)22、设置栏宽Appword.ActiveDocument.PageSetup.TextColumns.Width=3/0.03523、设置栏间距Appword.ActiveDocument.PageSetup.TextColumns.Specing=0.5/0.03524、插入文字Appword.Selection.Text="如果创建了工具栏"25、插入文字Appword.Selection.InsertAfter(space(6)+"多谢贵公司的支持!")26、指定字号Appword.Selection.FontSize=10.527、设置对齐方式Appword.Selection.ParagraphFormat.Alignment=0 && 0为左对齐 1居中 2右对齐 3两端对齐28、设置字体Appword.Selection.FontName="宋体"29、删除光标前面的字符(回车符等)Appword.Selection.Typebackspace30、删除字符Appword.Selection.Delete(1,1) && 第一个数字:1为下删一字,2为下删到下一个标点第二个数字为数量31、插入新页Appword.Selection.InsertBreak(0)32、回车符Appword.Selection.TypeParagraph && 0--插入新页 1--插入分页符33、移到上一页的页首Appword.Selection.Browser.Previous34、移到下一页的页首Appword.Selection.Browser.Next35、 Appword.Selection.MoveRight(3,1,1) && 第一个数字意思:3--移动一句,2--移动到上一个标点,1--移动一个字符&& 第二个数字为移动的数量第三个数字表示选中状态36、Appword.Selection.MoveLeft(3,1,1)37、Appword.Selection.Moveup(4,1,1) && 第一个数字:4--移到上一段开头,5--向上移一行,7--翻一页(PageDown)&& 第三个数字表示选中状态38、Appword.Selection.MoveDown(5,1,1) && 第一个数字:4--移到下一段开头,5--向下移一行,7--下翻一页(PageDown)&& 第三个数字表示选中状态39、选中全部文字Appword.Selection. Wholestory40、插入表格Appword..ActiveDocument.Table.Add(Appword.Selection.Range,9,61,0) && 插入一个9行6列的表格。
VFP控制EXCEL的方法(终于找到了)

VFP控制EXCEL的常用方法oExl=CREATEOBJECT('Excel.application')oExl.Visible=.T.oExl.DefaultSaveFormat=39oExl.SheetsInNewWorkbook=1oExl.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-A5oExl.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.035oExl.ActiveSheet.PageSetup.FooterMargin=0.5/0.035oExl.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='宋体'oExl.ActiveSheet.Rows.RowHeight=0.5/0.035oExl.ActiveSheet.Rows.NumberFormatLocal="0.00_ ;[红色]-0.00"oExl.ActiveSheet.Rows.VerticalAlignment=2 &&单元格内容垂直居中*------------------------------------------------------*&&获取最大行号和最大列号Local nMaxRow,nMaxColnMaxRow=edRange.Rows.CountnMaxCol=edRange.Columns.Count&&表头格式设置oExl.ActiveSheet.Rows(1).Font.Size=16oExl.ActiveSheet.Rows(1).Font.Bold=.T.oExl.ActiveSheet.Rows(1).RowHeight=1/0.035oExl.ActiveSheet.Rows(1).HorizontalAlignment=3oExl.ActiveSheet.Rows(2).HorizontalAlignment=3oExl.ActiveSheet.Rows(3).HorizontalAlignment=3oExl.ActiveSheet.Rows(3).Font.Bold=.T.oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+'1').MergeoExl.ActiveSheet.Range('A2:'+CHR(96+nMaxCol)+'2').Merge*------------------------------------------------------*&&条件格式隐藏0值edRange.FormatConditions.DeleteedRange.FormatConditions.Add(1,3,'0')edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色*------------------------------------------------------*oExl.ActiveSheet.Range('A1:B1').Interior.ColorIndex=6 &&单元格底纹黄色*------------------------------------------------------*oExl.ActiveSheet.Columns.AutoFit &&自动列宽oExl.ActiveSheet.Range("A3:"+CHR(96+nMaxCol)+ALLTRIM(STR(nMaxRow))).Borders.Weight =2 &&边框线*------------------------------------------------------*&&自动筛选IF !oExl.ActiveSheet.AutoFilterMode &&判断是否存在自动筛选oExl.ActiveSheet.Rows(3).Autofilter &&如果不存在自动筛选,则添加自动筛选ENDIF*------------------------------------------------------*&&冻结窗格oExl.ActiveSheet.Range('D4').SelectoExl.ActiveWindow.FreezePanes = .T.*------------------------------------------------------**------------------------------------------------------*&&分类汇总Local Arry(1),nMaxRow,nMaxColArry(1)=5nMaxRow=edRange.Rows.CountnMaxCol=edRange.Columns.CountoExl.ActiveSheet.Range('A3:'+chr(96+nMaxCol)+alltrim(str(nMaxRow))).Subtotal(2,-4157,@A rry,.T.,.F.,.T.) &&按第2列分类汇总数组Arry保存的列*------------------------------------------------------*1、对象的创建与关闭*******************************oExl=CREATEOBJECT('Excel.application') &&创建Excel对象oExl.SheetsInNewWorkbook=1 &&新建工作簿默认包含工作表个数oExl.Workbooks.Add &&新建工作簿,工作表个数由SheetsInNewWorkBooks属性指定oExl.Workbooks.Open(cXLS,3,.T.) &&打开指定工作簿(更新链接/只读打开)oExl.Workbooks.Open(cXLS, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMru], [Local], [CorruptLoad])oExl.Worksheets(cSheet).Activate &&激活工作表Sheet3 oExl.Worksheets(3).Activate &&激活(从左到右)第3个工作表oExl.WorkSheets.Count &&工作簿中工作表数oExl.DefaultSaveFormat=39 &&默认格式Excel 5.0oExl.DisplayAlerts=.F. &&不显示警告信息oExl.Visible=.T. &&显示Excel窗口oExl.Visible=.F. &&不显示Excel窗口oExl.Caption="Excel标题栏" &&更改Excel标题栏oExl.WorkSheet("Sheet2").Range("A1").PasteSpecial &&粘贴oExl.Quit &&退出ExceloExl.DisplayRecentFiles=.T. &&是否显示最近打开文档oExl.RecentFiles.Maximum=4 &&历史最大纪录数erName="XXXX" &&用户名oExl.StandardFont="宋体" &&标准字体oExl.StandardFontSize="12" &&标准字体大小oExl.DefaultFilePath="D:\XXXXXX\" &&默认工作目录oExl.EnableSound=False &&声音反馈oExl.RollZoom=False &&智能鼠标缩放oExl.TransitionMenuKey="/" &&Microsoft Office Excel菜单键oExl.ActiveWorkbook.Password="123"oExl.ActiveWorkbook.WritePassword="456"oExl.ActiveWorkbook.ReadOnlyRecommended=FalseoExl.ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:="", _PasswordEncryptionAlgorithm:="OfficeStandard", PasswordEncryptionKeyLength:=40 _, PasswordEncryptionFileProperties:=FalseIF oExl.ActiveWorkbook.FileFormat==39 &&格式为Excel 5.0工作簿ENDIFoExl.ActiveWorkBook.SaveAs(FileName,FileFormat,PassWord,WriteResPassWord,ReadOnlyR ecommended,CreateBackup)&&另存为&&参数说明FileName 字符型,指定文件名FileFormat 数值型,文件格式-4143 Microsoft Office Excel11 DBF439 Microsoft Excel 5.0/9543 Microsoft Excel97-Excel2003 & 5.0/9544 网页Html文件-4158 文本文件(制表符分隔)PassWord 字符型,只读密码WriteResPassWord 字符型,写密码ReadOnlyRecommended 逻辑型,建议只读CreateBackup 逻辑型,自动备份例如:oExl.ActiveWorkBook.SaveAs("d:\1.xls",39)oExl.ActiveWorkbook.saved=.T. &&放弃存盘oExl.ActiveWorkbook.Save &&存盘(自动存盘不提问)oExl.Workbooks.close &&关闭工作簿3、单元格的设置***********************************&&冻结窗格oExl.ActiveSheet.Range('D4').SelectoExl.ActiveWindow.FreezePanes = .T.&&条件格式设定oExl.ActiveSheet.Range('A1:H18').FormatConditions.Add(Type,Operator,Formula1,Formula2) Type 类型(1单元格数值,2公式)Operator 操作符(1介于,2不介于,3等于,4不等于,5大于,6小于,7大于等于,8小于等于) Formula1 表达式1Formula2 表达式2,操作符为1介于或2不介于才有效&&条件格式例句:数值为0者,文字颜色白色edRange.FormatConditions.DeleteedRange.FormatConditions.Add(1,3,'0')edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色&&编辑edRange.Copy &&拷贝整个工作表oExl.ActiveSheet.Range("A1:E2").Copy &&拷贝指定区域oExl.ActiveSheet.Columns("D:D").Delete &&删除列oExl.ActiveSheet.Columns("A:B").Delete &&删除列oExl.ActiveSheet.Rows(1).Insert &&在第1行之前插入一行oExl.ActiveSheet.Columns(2).Insert &&在第2列之前插入一列oExl.ActiveSheet.Cells(1,2).Value="ABTMC" &&给单元格赋值oExl.ActiveSheet.Cells(2,2).Value="&BBBB" &&给单元格赋值oExl.ActiveSheet.Cells(1,4).ClearContents &&清除单元格公式oExl.ActiveSheet.Rows(18).PageBreak=1 &&在第18行之前插入分页符oExl.ActiveSheet.Columns(4).PageBreak=0 &&在第4列之前删除分页符oExl.ActiveSheet.Rows(3).AutoFilter &&自动筛选oExl.ActiveSheet.Cells(1,1).Delete(-4159) &&删除单元格-4159 右边单元格左移-4162 下边单元格上移oExl.Selection.EntireRow.Delete &&所在行整行删除oExl.Selection.EntireColumn.Delete &&所在列整列删除oExl.ActiveSheet.Cells(1,1).Insert(-4142) &&插入单元格-4142 活动单元格下移-4161 活动单元格右移oExl.ActiveSheet.Selection.EntireRow.Insert &&插入行oExl.ActiveSheet.Selection.EntireColumn.Insert &&插入列&&选择性粘贴oExl.ActiveSheet.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=FalsePaste 粘贴数据:8列宽,11公式和数值格式,12数值与数值格式,-4104全部,-4123公式,-4163数值,-4122格式,Operation 运算符:-4142无,2加,3减,4乘,5除SkipBlanks 跳过空白单元:逻辑型Transpose 转置:逻辑型--------------------------------------------------&&排序成功例句:oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+ALLTRIM(STR(nMaxRow))).Sort(oExl.Active Sheet.Range(CHR(96+ASCAN(Arry,'原币金额'))+'2'),2,,,,,,1)&&按"原币金额"所在列降序排列,有标题oExl.ActiveSheet.Rows('1:28').SortKey1:=Range("A2"), Order1:=xlDescending,Key2:=Range("B2"), Order2:=xlAscending,Key3:=Range("C2"), Order3:=xlDescending,Header:=xlYes,OrderCustom:=6,MatchCase:=True,Orientation:=xlTopToBottom,SortMethod:=xlStroke,DataOption1:=xlSortNormal,DataOption2:=xlSortNormal,DataOption3:=xlSortNormal参数说明:2 xlDescending降序1 xlAscenging升序标题行:0 xlGuess1 xlYes,2 xlNo1 xlTopToBottom排序方法:1 xlPinYin,2 xlStroke0 xlSortNormalKey1 排序字段:取值类型是范围oExl.ActiveSheet.Range('B2')Order1 升序降序:xlAscending=1升序,xlDescending=2降序Header 有无标题:xlGuess=0自动判断,xlYes=1有,xlNo=2无orderCustom 排序顺序:1普通,6日一二三MatchCase 是否区分大小写:T区分,F不区分Orientation 1从头到底,2从左到右SortMethod 排序方法:xlPinYin=1拼音,xlStroke=2字母DataOption1 xlSortNormal=0正常DataOption2DateOption3&&分类汇总LOCAL Array(1)Array(1)=5oExl.ActiveSheet.Range('A1:G28').Subtotal(2,-4157,@Array,.T.,.F.,.T.)参数列表:GroupBy:=2, Function:=xlSum, TotalList:=Array(3), Replace:=True, PageBreaks:=False, SummaryBelowData:=True参数说明:GroupBy 分组字段序号Function 汇总方式:-4157求和,-4112计数TotalList 汇总数据项:保存汇总列序号的数组引用Replace 替换当前分类汇总:逻辑型,默认TPageBreaks 每组数据分页:逻辑型,默认FSummaryBelowData 汇总结果显示在数据下方:逻辑型,默认T&&汇总结果表间切换oExl.ActiveSheet.Outline.ShowLevels RowLevels:=2oExl.ActiveSheet.Outline.ShowLevels RowLevels:=1oExl.ActiveSheet.Outline.ShowLevels RowLevels:=3&&数值格式设置oExl.ActiveSheet.Range("A").NumberFormatLocal="0.00" &&指定区域内的数字显示格式&&对齐设置oExl.ActiveSheet.Range('A1:B1').HorizontalAlignment=3 &&水平方向2左对齐,3居中,4右对齐edRange.VerticalAlignment=2 &&垂直方向1靠上,2居中,3靠下oExl.ActiveSheet.Range('A1:B1').WrapText=.T. &&自动换行oExl.ActiveSheet.Range('A1:B1').Orientation = -4166 &&文字方向-4166 垂直向下oExl.ActiveSheet.Range('A1:B1').AddIndent = False &&缩进oExl.ActiveSheet.Range('A1:B1').IndentLevel = 2 &&缩进2字符oExl.ActiveSheet.Range('A1:B1').ShrinkToFit = .T. &&缩小以填充oExl.ActiveSheet.Range('A1:B1').ReadingOrder = -5002 &&文字阅读方向-5002 根据内容-5003 从左到右oExl.selection.MergeCells=.T. &&合并单元oExl.selection.HorizontalAlignment=2 &&水平方向2左对齐,3居中,4右对齐oExl.selection.VerticalAlignment=2 &&垂直方向1靠上,2居中,3靠下&&字体设置oExl.ActiveSheet.ROWS(1)="黑体" &&设置字体oExl.ActiveSheet.ROWS(1).Font.FontStyle="常规"oExl.ActiveSheet.ROWS(1).Font.Size=14 &&设置字体大小oExl.ActiveSheet.ROWS(1).Font.Bold=.T. &&设置整行字体为粗体oExl.ActiveSheet.ROWS(1).Font.StrikeThrough=.T. &&删除线oExl.ActiveSheet.Cells(1,1).Font.Italic=.T. &&设置字体为斜体oExl.ActiveSheet.ROWS(1).Font.Superscript = .T. &&上标oExl.ActiveSheet.ROWS(1).Font.Subscript = .T. &&下标oExl.ActiveSheet.ROWS(1).Font.OutlineFont = FalseoExl.ActiveSheet.ROWS(1).Font.Shadow = FalseoExl.ActiveSheet.ROWS(1).Font.Underline = -4142 &&下划线oExl.ActiveSheet.ROWS(1).Font.ColorIndex = -4105 &&字体颜色自动设置oExl.ActiveSheet.ROWS(1).Font.Underline = 2 &&下划线类型下划线类型2 单下划线&&边框设置oExl.ActiveSheet.Range("b3:d3").Borders.Weight=2 &&指定边框线宽度其中Borders参数:1-左、2-右、3-顶、4-底、5-斜\、6-斜/;不带参数表示默认上下左右四个边框LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)oExl.ActiveSheet.Range("A1:BE29").Borders(1).LineStyle=1 &&设置四个边框线条的类型oExl.ActiveSheet.Range("A1:BE29").Borders(2).LineStyle=1 &&设置四个边框线条的类型oExl.ActiveSheet.Range("A1:BE29").Borders(3).LineStyle=1 &&设置四个边框线条的类型oExl.ActiveSheet.Range("A1:BE29").Borders(4).LineStyle=1 &&设置四个边框线条的类型&&1 xlContinuous&&2 xlThin&&5 xlDiagonalDown&&6 xlDiagonalUp&&10 xlEdgeRight&&12 xlInsideHorizontal&&行列设置oExl.ActiveSheet.Columns(1).ColumnWidth=20 &&列的宽度(单位:字符个数)oExl.ActiveSheet.Columns(2).ColumnWidth=30oExl.ActiveSheet.Columns("C:BE").ColumnWidth=9.5oExl.ActiveSheet.Columns.AutoFit &&最适合的列宽oExl.ActiveSheet.Rows(1).RowHeight=1/0.035 &&设置指定行的高度(单位:磅)(行高为1厘米,1磅=0.035厘米)oExl.ActiveSheet.Range('A1:B1').Interior.ColorIndex=nColorIndex &&设置底纹常用颜色值ColorIndex1 黑色2 白色3 红色4 鲜绿5 蓝色6 黄色7 粉红8 青绿9 深红10 绿色13 紫罗兰15 灰-25%34 浅青绿36 浅黄38 玫瑰红39 淡紫40 茶色42 水绿46 橙色53 褐色54 梅兰oExl.ActiveSheet.Range('P3:P4').Orientation=-4166 &&文字方向垂直&&同一工作簿中复制工作表副本oExl.WorkSheets(1).Copy(oExl.ActiveWorkBook.Sheets(1))&&不同工作簿oExl.Sheets(1).copy(oExl.Workbooks("BOOK1.XLS").Sheets(1))3、页面设置***********************************************oExl.ActiveSheet.PageSetup.TopMargin=2/0.035 &&设置顶边距oExl.ActiveSheet.PageSetup.BottomMargin=1.5/0.035 &&设置底边距oExl.ActiveSheet.PageSetup.LeftMargin=0 &&设置左边距oExl.ActiveSheet.PageSetup.RightMargin=0 &&设置右边距&&页眉页脚oExl.ActiveSheet.PageSetup.HeaderMargin=1.5/0.035 &&设置页眉边距oExl.ActiveSheet.PageSetup.FooterMargin=0.8/0.035 &&设置页脚边距oExl.ActiveSheet.PageSetup.LeftHeader="&9XXXXXX"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制表人:xxx "&P页序号&N页总数&D日期,&T时间&S删除线&Y下标&Z路径&F文件&A标签&G图片&X上标&""隶属,倾斜""&9九号字体&U下划线&B粗体&&左页眉图片设定oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Filename="D:\2.jpg"oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Height = 45oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Width = 11.25oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Brightness = 0.51oExl.ActiveSheet.PageSetup.LeftHeaderPicture.ColorType = msoPictureGrayscale oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropBottom = 28.35oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = 28.35oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropRight = 28.35oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 28.35oExl.ActiveSheet.PageSetup.CenterHorizontally=.T. &&设置页面水平居中oExl.ActiveSheet.PageSetup.CenterVertically=.T. &&设置页面垂直居中&&设置页面纸张大小oExl.ActiveSheet.PageSetup.Orientation=2 &&页面方向2表示横向oExl.ActiveSheet.PageSetup.PaperSize=11纸张大小:9 A411 A570 A6oExl.ActiveSheet.PageSetup.Draft=.T.oExl.ActiveSheet.PageSetup.FirstPageNumber=1oExl.ActiveSheet.PageSetup.Order=1&&单色打印oExl.ActiveSheet.PageSetup.BlackAndWhite=.T.oExl.ActiveSheet.PageSetup.PrintComments=-4142oExl.ActiveSheet.PageSetup.Zoom=100 &&缩放100%oExl.ActiveSheet.PageSetup.Zoom=.F. &&禁用缩放oExl.ActiveSheet.PageSetup.FitToPagesWide=1 &&调整为一页宽oExl.ActiveSheet.PageSetup.FitToPagesTall=1 &&调整为一页高oExl.ActiveSheet.PageSetup.PrintHeadings=.T.oExl.ActiveSheet.PageSetup.PrintGridLines=.T.oExl.ActiveSheet.PageSetup.PrintErrors=oExl.ActiveSheet.PageSetup.PrintQuality=600 &&打印质量oExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$3" &&固定标题行oExl.ActiveSheet.PageSetup.PrintTitleColumns="$A:$C" &&固定标题列oExl.ActiveSheet.PageSetup.PrintGridlines=.T. &&打印单元格网线*********************************************************&&打印oExl.ActiveSheet.PrintPreview &&打印预览工作表oExl.ActiveSheet.PageSetup.PrintArea="$A$1:$E$30" &&设置打印区域ActiveSheet.PageSetup.PrintArea = "" &&取消打印区域ActiveWorkbook.WebPagePreview &&网页预览oExl.ActiveSheet.PrintOut &&打印输出工作表5、VFP下直接调用EXCEL、WORD文件DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING,STRING lpszFile,STRING, STRING,INTEGERoperate="open"ShellExecute(0,operate,"C:\111.XLS",0,0,1) &&EXCEL文件ShellExecute(0,operate,"C:\111.DOC",0,0,1) &&WORD文件oExcel=Createobject("Excel.application")&&创建Excel对象**对象属性1、添加Sheets.Add before:=Sheets(1) '在第1工作表前添加新工作表Sheets.Add after:=Sheets(Sheets.Count) '在最后工作表后添加新工作表2、移动ActiveSheet.Move before:=Sheets(2) '将当前工作表移动至第2工作表之前3、命名="工作表名" '将当前工作表命名为"工作表名"4、删除可以用以下语句删除当前工作表。
VFP调用EXCEL

VFP(Visual Foxpro)是一种关系型数据库管理系统,由于其强大的数据处理能力及良好的兼容性,使其成为数据库应用程序开发人员强有力的工具而广为使用; 而Excel则是一个优秀的电子表格处理软件,在兼容性、操作界面、公式运算、图表等方面有着独到的优势,成为广大办公应用人员必备的首选软件。
上述两种软件在各自的应用领域均得到了广泛的应用,同时上述两种软件还具有良好的交互编程能力,为两者相辅相成、取长补短奠定了良好的基础。
本文将结合实例介绍VFP与Excel交互编程的方法,在VFP中除了使用OLE技术外,还可使用DDE技术与外部服务器进行数据交换,本文主要讲解VFP中使用OLE技术与Excel交换数据,Excel中借助内置的VBA使用VFP提供的Application对象来调用VFP中的一些功能。
其功能可简述如下:VFP数据表“学生成绩.DBF”中含“学号、姓名、语文、数学”等字段,示例程序将从Excel工作簿“VFP交互.XLS”的工作表“查询”中用“条件”区域(一般为一个矩形区中的数据,该区域名称指定为“条件”,数据形如“语文>60”、“数学<90”等)中的数据作为查询的条件,用“连接条件”区域(一般为一个单元格,其值为“or”或者“and”)来获取组合“条件”的逻辑连接,并将该连接信息的内容以工作表的形式显示出来,然后调用VFP中针对给定表的SQL查询来找出给定条件的记录并显示到Excel中。
下列程序均在VFP 6.0与Excel 2000中调试通过。
Excel驱动VFPExcel内置的VBA语言(Visual Basic For Application)为Excel功能的扩展提供了便利的手段,用户可使用该语言直接驱动VFP完成数据检索等功能。
程序首先生成一个VFP对象,然后用VFP的DoCmd方法执行VFP搜索命令串,其搜索结果再借助于VFP的DataToClip方法拷贝至剪切板,最后VBA将其粘贴至工作表的正确位置,为了每次运行时能将结果插入到工作表中,依次对操作的工作表以“搜索结果”、“搜索结果1”等进行编号。
vfp调用word OR excel

vfp调用word OR excel(一)1.VFP全面控制EXCLVFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。
比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。
这就需要我们在VFP中直接来控制Excel。
下面就在开发VFP应用项目时对Excel的控制作一下介绍:1.创建Excel对象eole=CREATEOBJECT(′Excel.application′)2.添加新工作簿eole.Workbooks.add3.设置第3个工作表为激活工作表eole.Worksheets(″sheet3″).Activate4.打开指定工作簿eole.Workbooks.Open(″c:templl.xls″)5.显示Excel窗口eole.visible=.t.6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″7.给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035(设定行高为1厘米,1磅=0.035厘米)10.在第18行之前插入分页符eole.Worksheets(″Sheet1″).Rows(18).PageBreak=111.在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=313.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.03519.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.03520.设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.03522.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t.23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t. 24.设置页面纸张大小(1-窄行8511 39-宽行1411) eole.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表edRange.Copy27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″).Copy28.粘贴eo le.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial 29.在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31.设置字体eole.ActiveSheet.Cells(2,1)=″黑体″32.设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=2533.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t.34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t.35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表eole.ActiveSheet.PrintPreview37.打印输出工作表eole.ActiveSheet.PrintOut38.工作表另为eole.ActiveWorkbo ok.SaveAs(″c:temp22.xls″)39.放弃存盘eole.ActiveWorkbook.saved=.t.40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit2.VFP数据导出至EXCEL问题这样设计:oexl=createobject("excel.application")oexl.workbooks.addoexl.visible=.t.oexl.workbooks(1).activateoexl.cells(1,1).value="名称1"oexl.cells(1,2).value="名称2"oexl.cells(1,3).value="名称3"3.如何在VFP5.0中利用EXCEL的功能做报表在VFP中调用Excel要利用Automation。
如何用VFP调用API

二、 打开、打印WORD文档
*若要打印文档,则将operate赋值为“print"
operate=“open"
*打开hello.doc文档
ShellExecute(0,operate,“c:\my documents\hello.doc",0,0,1)
三、 带参调用EXE文件
*下列语句将运行记事本程序,并打config.sys进行编辑
ShellExecute(0,“open",“notepad.exe",“config.sys",“c:\",1)
FunctionName :调用函数的名称。它是大小写敏感的。
LibraryName:调用函数的所在地。它一般是一DLL文件名。
cParameterType1 [@] ParamName1, cParameterType2 [@] ParamName2, :当对函数的调用属带参调用时,就应该申明参数的类型及名称。
以上便是ShellExecute常见的几种具体用途,怎么样,没想到在VFP中也能够这样容易地操作各种各样的文件吧!试试看,你肯定能够找到ShellExecute更加多的用途。
(四川 周鸣扬)
VFP中操作多种文件
(07/19/2000)
做为一种数据处理软件,VFP在使用上的简洁是人所共知的。在使用VFP进行应用程序开以时,有时会涉及到一些非数据处理方面的内容,比如在VFP中打开WORD文档、EXCEL图表、利用OE收发电子邮件,这些功能又恰恰是VFP的弱项。通常情况下,我们处理这些问题的方法是使用OLE(现称之为ActiveX)技术来完成。但是,在VFP中要熟练操作OLE对象,又是一件更麻烦的事情。拿用VFP接入互联网来说,你可以在VFP的表单中加入Microsoft Web浏览器控件,但是如果没有专业的技术文档,你要想顺利地使用浏览器控件,这基本上是不可能的。有没有一种更简单的办法来实现上述功能呢?有的。
VFP中调用其他应用程序的方法

VFP中调用其他应用程序的方法在 Visual FoxPro(VFP)中调用其他应用程序可以通过使用 Shell函数或者使用 COM 互操作实现,下面将详细介绍这两种方法。
1. 使用 Shell 函数:Shell 函数用于在操作系统中执行命令行命令或者启动一个应用程序。
通过 Shell 函数可以调用其他应用程序并传递参数。
以下是使用 Shell函数调用其他应用程序的基本步骤:步骤1:使用 Shell 函数执行命令行命令或者启动一个应用程序。
语法:``````其中- windowstyle:可选参数,指定打开的窗口样式,如最大化、最小化等。
例如,调用记事本程序(Notepad.exe)并打开一个文本文件可以使用以下代码:```Shell("notepad.exe C:\Test.txt", 1)```步骤2:为了获取和处理其他应用程序的返回结果,可以使用 Shell 函数的返回值。
语法:``````其中- result:是 Shell 函数的返回值,可用于检查命令是否成功执行。
例如,以下代码将返回打开的记事本窗口的句柄:```hWnd = Shell("notepad.exe", 1)```2.使用COM互操作:步骤1:创建一个COM对象,该对象可以与其他应用程序进行交互。
例如,下面的代码创建一个与 Microsoft Excel 进行交互的 COM 对象:```oExcel = CREATEOBJECT("Excel.Application")```步骤2:调用COM对象的方法和属性来实现与其他应用程序的交互。
例如,下面的代码打开一个 Excel 文件:```oExcel.Workbooks.Open("C:\Test.xlsx")```步骤3:使用完COM对象后,记得将其释放。
例如,下面的代码用于释放 Excel COM 对象:```RELEASE oExcel```需要注意的是,使用COM互操作需要了解被调用应用程序的对象模型,并且正确使用对象的方法和属性。
如何在VFP中调用默认关联的程序打开文件

如何在VFP中调用默认关联的程序打开文件?(2007-01-20 17:13:12)转载分类:『数据库-DB』如何在VFP中调用默认关联的程序打开文件?怎样在一个菜单中建立一个程序或命令打开一个网页或word,excel等文件???---------------------------------------------------------------打开一个网页与word,excel是不一样.1.word,excel要用ACTIVEX的OLECONTROL控件.2.打开一个网页要用到HYPERLINK控件.可以在表单上加一个TEXT一个COMMANG控件,还有一个超级链接HYPERLINK控件. COMMAND.CLICK事件:THISFORM.HYPERLINK.NA VIGATETO(THISFORM.TEXT.V ALUE)在vfp的例子中找到了一个这个问题的解决方法,使用api函数来解决,如下:1、声明函数DECLARE INTEGER ShellExecute ;IN SHELL32.DLL ;INTEGER nWinHandle,;STRING cOperation,;STRING cFileName,;STRING cParameters,;STRING cDirectory,;INTEGER nShowWindow2、在程序中任何地方调用,包括菜单中,打开一个e:\a.htm文件的调用方法如下,=ShellExecute(0,"Open","e:\a.htm","","e:\",1)---------------------------------------------------------------在VFP中我们可以用run来调用由VFP自身生成的.exe文件。
命令格式:run c:\..\*.exe当调用非VFP自身生成的.exe文件时,需要加上绝对路径和参数。
VF中控制EXCEL的常用操作

.VerticalAlignment = 2 &&垂直居中 .NumberFormatLocal = "@" &&设置 3、4 行为字符型内容 endwith ef.Range("A3:A4").Select ef.Selection.Merge &&纵向合并第一列 3、4 行 ef.Range("A3").value='工号' &&设置第一列标题内容 ef.Columns("A").Select &&整列选择 ef.Selection.HorizontalAlignment = 3 &&水平居中 ef.Columns("A:B").Select ef.Selection.NumberFormatLocal = "@" &&设置 A、B 列为字符型内容 ef.Range("B3:B4").Select ef.Selection.Merge &&纵向合并第二列 3、4 行 ef.Range("B3").value='姓名' &&设置第二列标题内容 ef.Columns("B").Select &&整列选择 ef.Selection.HorizontalAlignment = 3 &&水平居中 ef.Range("C3:E3").Select &&横向合并第三行 C-E 列 ef.Selection.Merge ef.Range("C3").value='话务总量' &&第三行大标题为“话务总量”的列 ef.Range("C4").value='电话呼入量' &&“话务总量”下第 1 个小标题“电话呼入量” ef.Range("D4").value='电话呼出量' &&“话务总量”下第 2 个小标题“电话呼出量” ef.Range("E4").value='合 计' &&“话务总量”下第 3 个小标题“合计” ef.Range("F3:H3").Select ef.Selection.Merge ef.Range("F3").value='话务总时间' ef.Range("F4").value='呼入时间' ef.Range("G4").value='呼出时间' ef.Range("H4").value='合 计' ef.Range("I3:K3").Select
用VFP控制EXCEL表格

用VFP控制EXCEL表格如何用VFP控制EXCEL表格[2006年10月26日] 点击数: 1845 【字体:大中小】【双击滚屏】先在EXCEL中实现你所需要的操作内容,并将这些操作步骤用宏记录录制下来。
例如:我想将A1至H4单元格合并;在合并后的单元格内输入“你好,来自网上的朋友。
”;调整字体为“隶书”;调整字体号为“28”;设置单元格内的文字水平方向居中;设置单元格内的文字垂直方向居中。
实现步骤:启动EXCEL ,在“工具”栏中将鼠标移动到“宏(M)”,启动“录制新宏”,为宏起一个名字,单击“确定”按钮。
(此时应出现一个“停止录制宏窗口”)选中A1至H4区域,在区域中单击鼠标右键,单击“设置单元格格式”,单击“对齐”卡片,单击“合并单元格”,同时在此窗口中设置水平居中和垂直居中,输入文字,改变字体,改变字体号。
完成上述内容后,停止录制宏。
回到“工具”栏中将鼠标移动到“宏(M)”,启动“宏(M) ALT F8”编辑刚才录制的宏,将所有的代码全部复制,粘贴到VFP程序中。
以下是宏的原代码,它在VFP中是不能直接运行的,需要进行修改。
Sub 宏1()' 宏1 宏表' ssss记录的宏1999-6-11Range("A1:H4").SelectWith Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenter.WrapText = False.Orientation = 0.AddIndent = False.ShrinkT oFit = False.MergeCells = TrueEnd WithRange("A1:H4").SelectActiveCell.FormulaR1C1 = "你好,来自网上的朋友。
" With ActiveCell.Characters(Start:=1, Length:=11).Font .Name = "宋体".FontStyle = "常规".Size = 28.Strikethrough = False.Superscript = False.Subscript = False.OutlineFont = False.Shadow = False.Underline = xlUnderlineStyleNone.ColorIndex = xlAutomaticEnd WithRange("H17").SelectEnd Sub以下是修改后能够在VFP中运行的代码主意,请在C盘根目录下事先建立BOOK1.XLS文件XLFILE="C:\BOOK1.XLS"HB1=CREATEOBJECT("EXCEL.APPLICATION")HB1.APPLICATION.VISIBLE=.T.HB1.WORKBOOKS.OPEN("&XLFILE")HB1.SHEETS("SHEET1").SELECTHB1.Range("A1:H4").SelectHB1.Selection.HorizontalAlignment = 3 &&水平方向 2左对齐,3居中,4右对齐HB1.Selection.VerticalAlignment = 2 &&垂直方向1靠上,2居中,3靠下HB1.Selection.WrapText = .F. && ??HB1.Selection.Orientation = 0 && ??HB1.Selection.AddIndent = .F. && ??HB1.Selection.ShrinkT oFit = .F. && ??HB1.Selection.MergeCells = .T. && ??HB1.Range("A1:H4").SelectHB1.ActiveCell.FormulaR1C1 = "你好,来自网上的朋友。
用VFP命令控制Word

用VFP命令控制Word用VFP命令控制Word1、创建Word文档Appword=CreateObject("word.application")2、显示Word文档Appword.Visible=.t.3、建立新文档Appword.Documents.Add()4、保存文档Appword.ActiveDocument.SaveAs("E:\abc.doc")5、打开文档Appword.ActiveDocument.Open("E:\abc.doc")6、保存Appword.ActiveDocument.Save7、关闭Appword.ActiveDocument.Close8、退出Appword.Application.Quit9、打印Appword.ActiveDocument.PrintOut10、设置上页边距Appword.ActiveDocument.PageSetup.TopMargin=1.5/0.03511、设置下页边距Appword.ActiveDocument.PageSetup.BottomMargin=1.5/0. 03512、设置左页边距Appword.ActiveDocument.PageSetup.LeftMargin=1.5/0.03513、设置右页边距Appword.ActiveDocument.PageSetup.RightMargin=1.5/0.03514、设置页宽Appword.ActiveDocument.PageSetup.PageWidth=18.4/0.03 515、设置页高Appword.ActiveDocument.PageSetup.PageHeight=26/0.03516、设置页面竖放Appword.ActiveDocument.PageSetup.Orientation=117、设置页面横放Appword.ActiveDocument.PageSetup.Orientation=218 、指定网格youtMode=0 && 0--不指定网格1--指定网格和字符网格2--指定行网格3--文字对齐网格19、设置每页行数Appword.ActiveDocument.PageSetup.LinesPage=4220、设置每行字数Appword.ActiveDocument.PageSetup.ChartLine=1021、页面设为4栏Appword.ActiveDocument.PageSetup.TextColumns.SetCoun t(4)22、设置栏宽Appword.ActiveDocument.PageSetup.TextColumns.Width= 3/0.03523、设置栏间距Appword.ActiveDocument.PageSetup.TextColumns.Specing =0.5/0.03524、插入文字Appword.Selection.Text="如果创建了工具栏"25、插入文字Appword.Selection.InsertAfter(space(6)+"多谢贵公司的支持!")26、指定字号Appword.Selection.FontSize=10.527、设置对齐方式Appword.Selection.ParagraphFormat.Alignment=0 && 0为左对齐 1居中 2右对齐 3两端对齐28、设置字体Appword.Selection.FontName="宋体"29、删除光标前面的字符(回车符等)Appword.Selection.Typebackspace30、删除字符Appword.Selection.Delete(1,1) && 第一个数字:1为下删一字,2为下删到下一个标点第二个数字为数量31、插入新页Appword.Selection.InsertBreak(0)32、回车符Appword.Selection.TypeParagraph && 0--插入新页 1--插入分页符33、移到上一页的页首Appword.Selection.Browser.Previous34、移到下一页的页首Appword.Selection.Browser.Next35、Appword.Selection.MoveRight(3,1,1) && 第一个数字意思:3--移动一句,2--移动到上一个标点,1--移动一个字符&& 第二个数字为移动的数量第三个数字表示选中状态36、Appword.Selection.MoveLeft(3,1,1)37、Appword.Selection.Moveup(4,1,1) && 第一个数字:4--移到上一段开头,5--向上移一行,7--翻一页(PageDown) && 第三个数字表示选中状态38、Appword.Selection.MoveDown(5,1,1) && 第一个数字:4--移到下一段开头,5--向下移一行,7--下翻一页(PageDown) && 第三个数字表示选中状态39、选中全部文字Appword.Selection. Wholestory40、插入表格Appword..ActiveDocument.Table.Add(Appword.Selection.Ra nge,9,61,0) && 插入一个9行6列的表格。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vfp调用word OR excel(二)10.从VFP中导出数据的几种方法!答:当VFP处理好数据后,这时你可以用多种方法将这些数据导出,以便被其它应用程序(如Excel等)所用。
下面向你简单介绍几种导出数据的方法:1.用“导出数据”对话框。
你可以从VFP主菜单中选择“文件/导出…”打开“导出”对话框,在该对话框中的“来源”框中输入表名(c:\vfp\students.dbf),在“类型”中指定要导出数据的类型(Microsoft Excel),在“到”框中输入导出的路径和文件名(C:\excel\aa.xls),然后按“确定”即可。
这时你如果查看command窗口,可发现以下代码:COPY TO C:\excel\aa.XLS TYPE XL52.用COPY TO命令。
COPY TO命令的工作对象是VFP中的表,它要依据“TYPE”项才知道要产生哪一类导出文件。
对于上面的导出过程,可用以下方法实现:USE studentsCOPY TO C:\excel\aa.XLS TYPE XL512.在VFP6中,如何调用已经存在的WORD文件?oW = CREATEOBJECT([word.basic])with oW.Apprestore().Appmaximize().fileopen("路径+文件名.扩展名")ENDWITH13.打开word文件的控件?用RUN /N3 C:\WORD.EXE 文档路径C:\WORD.EXE是我自己写的,你用时换成WORD的真正路径就行了!比如用WORD 打开SD.DOC 就写RUN /N3 C:\WORD.EXE C:\SD.DOC另:TXLS_EOLE = CREATEOBJECT('word.application')TXLS_EOLE.Documents.Open('文件名.doc')TXLS_EOLE.Visible=.t.注意:别忘了关闭哦TXLS_EOLE.Documents.close &&关闭文档TXLS_EOLE.quit &&关闭wordRELEASE TXLS_EOLE &&释放对象再者:fw=alltrim(this.value)if file('&fw')*documents.open filename('&fw')wrdapp = createobject("word.application")wrdapp.visible=.t.*wrdapp.documents.addwrdapp.documents.open(alltrim(this.value))elsemessagebox(fw+chr(13)+'文件不存在,请确认',0+16,'文件路径出错')RETURN(.F.)ENDIF14.在表单中创建一个编辑框,用来显示WORD文档!做一个按扭,在CLICK中写:THISFORM.EDIT1.value=FILETOSTR(GETFILE('DOC'))这个不也行,而且还简单15.强烈建议:直接使用ole可以在表单中打开word,建议不使用这种办法,改为利用api 用windows默认的程序打开word,数据库只存储word文档所在的位置和名字。
16在VFP中调用其他的程序在VFP中我们可以用run来调用由VFP自身生成的.exe文件。
命令格式:run c:\\..\\*.exe当调用非VFP自身生成的.exe文件时,需要加上绝对路径和参数。
一般来说,用VFP运行非VFP自身生成的可执行文件时,会有一个黑色的窗口显示一下。
可以通过加上/n来隐藏这个窗口。
例如运行Windows下的扫雷游戏,命令格式如下:RUN/n C:\\Windows\\Winmine.exe下面运行一个更复杂一点的程序。
调用word打开c:\\下的一个名为mlx.doc的word文件,命令格式如下:run /n3 C:\\Program Files\\Microsoft Office\\Office\\Winword.exe C:\\mlx.doc参数:n 在运行时隐藏VFP的黑色窗口。
3 表示以最大化的方式运行程序。
1正常方式、2最小化方式、3最大化方式在这种情况下,可以通过加上参数使程序程序能够流畅运行,但还是要指定绝对路径,而在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其绝对路径。
比如,在上例中,我们可能无法确定用户的word到底安装在什么地方,如果用户把word安装到了别的地方,上述命令便会出错。
再如,一个.gif文件,有的用户喜欢用ACD See来打开,有的用户喜欢用IE来打开,有的用户喜欢用豪杰来打开,……为了解决这种情况我们可以调用Windows的文件关连来打开文件。
即所有的文件都用系统默认的程序来打开。
这就要调用Windows的Win32 API函数。
调用方式如下:DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,;STRING lpszOP, ;STRING lpszFile, ;STRING lpszParams, ;STRING lpszDir, ;INTEGER fsshowcmdDECLARE INTEGER GetDesktopWindow IN win32apiHWND = GetDesktopWindow()lpszOP = "open"* 指定要打开的文件名lpszFile ="c:\\mlx.doc"lpszParams = ""lpszDir = "c:\\temp"fsshowcmd = 1* 执行ShellExecute命令LNRETURN = ShellExecute(HWND,lpszOP,lpszFile,lpszParams,lpszDir,fsshowcmd)可以用任意的文件名来替换上文中的c:\\mlx.doc 。
如果指定的文件名Windows无法找到相应的关连程序,这时程序将不会做出反应。
有关的参数可以自行偿试进行修改,以达到最佳效果。
(以上的“\\”也可以写成“\”王卫东试验过)(紧接着看下面的ShellExecute使用详解)17.调用ShellExecute()函数打开网页有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。
CreateProcess 因为使用复杂,比较少用。
WinExec主要运行EXE文件。
如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。
首先必须引用shellapi.pas单元:uses ShellAPI;(1).标准用法ShellExecute函数原型及参数含义如下:function ShellExecute( HWND; Operation, FileName, Parameters,Directory; ShowCmd)●hWnd:用于指定父窗口句柄。
当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。
例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。
最常用的动词是"Open", 其它可用的动词是"edit","print","explore" 和"properties".其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。
当参数设为nil时,表示执行默认操作“open”。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。
若返回值小于32,则表示出现错误。
上述仅仅是ShellExecute函数的标准用法,下面将介绍它的特殊用法。
(2).特殊用法(已在《金乡县宅基地管理系统》的“欢迎表单”这使用)在label属性中定义mousepointer=99&&自定义鼠标指针(这里是手型)在label的init事件中添加如下代码:this.MOuseicon='HAND.CUR' &&设定当鼠标移动到该标签时鼠标会变成一只小手。
要有一个小手的.cur文件,我是在QQ中找到的。
******* *********通过调用win32API函数实现打开网页代码***************** 声明ShellExecute函数DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,;STRING lpszOP, ;STRING lpszFile, ;STRING lpszParams, ;STRING lpszDir, ;INTEGER fsshowcmd* 声明GetDesktopWindow函数,该函数激活Windows桌面DECLARE INTEGER GetDesktopWindow IN win32api* 指定从Windows桌面上运行ShellExecute函数HWND=GetDesktopWindow()lpszOP=""* 指定ShellExecute操作的文件为lpszFile='http//:/u/1279340340'lpszParams=""* 指定ShellExecute的缺省目录为C:\lpszDir="C:\"fsshowcmd=1* 执行ShellExecute命令*LNRETURN=ShellExecute(HWND,lpszOP,lpszFile,lpszParams,lpszDir,fsshowcmd)VFP调用Windows的文件关连来打开文件(本例为.jpg文件,已成功使用!)。