搜档网
当前位置:搜档网 › VFP控制EXCEL的方法(终于找到了)

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

VFP控制EXCEL的方法(终于找到了)
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/2410580755.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/2410580755.html,edRange.Rows.Count

nMaxCol=https://www.sodocs.net/doc/2410580755.html,edRange.Columns.Count

&&表头格式设置

oExl.ActiveSheet.Rows(1).Font.Size=16

oExl.ActiveSheet.Rows(1).Font.Bold=.T.

oExl.ActiveSheet.Rows(1).RowHeight=1/0.035

oExl.ActiveSheet.Rows(1).HorizontalAlignment=3

oExl.ActiveSheet.Rows(2).HorizontalAlignment=3

oExl.ActiveSheet.Rows(3).HorizontalAlignment=3

oExl.ActiveSheet.Rows(3).Font.Bold=.T.

oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+'1').Merge

oExl.ActiveSheet.Range('A2:'+CHR(96+nMaxCol)+'2').Merge

*------------------------------------------------------*

&&条件格式隐藏0值

https://www.sodocs.net/doc/2410580755.html,edRange.FormatConditions.Delete

https://www.sodocs.net/doc/2410580755.html,edRange.FormatConditions.Add(1,3,'0')

https://www.sodocs.net/doc/2410580755.html,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.Wei ght=2 &&边框线

*------------------------------------------------------*

&&自动筛选

IF !oExl.ActiveSheet.AutoFilterMode &&判断是否存在自动筛选

oExl.ActiveSheet.Rows(3).Autofilter &&如果不存在自动筛选,则添加自动筛选ENDIF

*------------------------------------------------------*

&&冻结窗格

oExl.ActiveSheet.Range('D4').Select

oExl.ActiveWindow.FreezePanes = .T.

*------------------------------------------------------*

*------------------------------------------------------*

&&分类汇总

Local Arry(1),nMaxRow,nMaxCol

Arry(1)=5

nMaxRow=https://www.sodocs.net/doc/2410580755.html,edRange.Rows.Count

nMaxCol=https://www.sodocs.net/doc/2410580755.html,edRange.Columns.Count

oExl.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.0

oExl.DisplayAlerts=.F. &&不显示警告信息

oExl.Visible=.T. &&显示Excel窗口oExl.Visible=.F. &&不显示Excel窗口oExl.Caption="Excel标题栏" &&更改Excel标题栏

oExl.WorkSheet("Sheet2").Range("A1").PasteSpecial &&粘贴

oExl.Quit &&退出Excel

oExl.DisplayRecentFiles=.T. &&是否显示最近打开文档

oExl.RecentFiles.Maximum=4 &&历史最大纪录数

https://www.sodocs.net/doc/2410580755.html,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=False

oExl.ActiveWorkbook.SetPasswordEncryptionOptions

PasswordEncryptionProvider:="", _

PasswordEncryptionAlgorithm:="OfficeStandard", PasswordEncryptionKeyLength:=40 _

, PasswordEncryptionFileProperties:=False

IF oExl.ActiveWorkbook.FileFormat==39 &&格式为Excel 5.0工作簿ENDIF

oExl.ActiveWorkBook.SaveAs(FileName,FileFormat,PassWord,WriteResPassWord,ReadOn lyRecommended,CreateBackup)

&&另存为

&&参数说明

FileName 字符型,指定文件名

FileFormat 数值型,文件格式

-4143 Microsoft Office Excel

11 DBF4

39 Microsoft Excel 5.0/95

43 Microsoft Excel97-Excel2003 & 5.0/95

44 网页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').Select

oExl.ActiveWindow.FreezePanes = .T.

&&条件格式设定

oExl.ActiveSheet.Range('A1:H18').FormatConditions.Add(Type,Operator,Formula1,Fo rmula2)

Type 类型(1单元格数值,2公式)

Operator 操作符(1介于,2不介于,3等于,4不等于,5大于,6小于,7大于等于,8小于等于)

Formula1 表达式1

Formula2 表达式2,操作符为1介于或2不介于才有效

&&条件格式例句:数值为0者,文字颜色白色

https://www.sodocs.net/doc/2410580755.html,edRange.FormatConditions.Delete

https://www.sodocs.net/doc/2410580755.html,edRange.FormatConditions.Add(1,3,'0')

https://www.sodocs.net/doc/2410580755.html,edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色

&&编辑

https://www.sodocs.net/doc/2410580755.html,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:=False

Paste 粘贴数据: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.A ctiveSheet.Range(CHR(96+ASCAN(Arry,'原币金额'))+'2'),2,,,,,,1)

&&按"原币金额"所在列降序排列,有标题

oExl.ActiveSheet.Rows('1:28').Sort

Key1:=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 xlGuess

1 xlYes,

2 xlNo

1 xlTopToBottom

排序方法:

1 xlPinYin,

2 xlStroke

0 xlSortNormal

Key1 排序字段:取值类型是围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正常

DataOption2

DateOption3

&&分类汇总

LOCAL Array(1)

Array(1)=5

oExl.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 替换当前分类汇总:逻辑型,默认T

PageBreaks 每组数据分页:逻辑型,默认F

SummaryBelowData 汇总结果显示在数据下方:逻辑型,默认T

&&汇总结果表间切换

oExl.ActiveSheet.Outline.ShowLevels RowLevels:=2

oExl.ActiveSheet.Outline.ShowLevels RowLevels:=1

oExl.ActiveSheet.Outline.ShowLevels RowLevels:=3

&&数值格式设置

oExl.ActiveSheet.Range("A").NumberFormatLocal="0.00" &&指定区域的数字显示格式

&&对齐设置

oExl.ActiveSheet.Range('A1:B1').HorizontalAlignment=3 &&水平方向2左对齐,3居中,4右对齐

https://www.sodocs.net/doc/2410580755.html,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)https://www.sodocs.net/doc/2410580755.html,="黑体" &&设置字体

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 = False

oExl.ActiveSheet.ROWS(1).Font.Shadow = False

oExl.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=30

oExl.ActiveSheet.Columns("C:BE").ColumnWidth=9.5

oExl.ActiveSheet.Columns.AutoFit &&最适合的列宽oExl.ActiveSheet.Rows(1).RowHeight=1/0.035 &&设置指定行的高度(单位:磅)(行高为1厘米,1磅=0.035厘米)

oExl.ActiveSheet.Range('A1:B1').Interior.ColorIndex=nColorIndex &&设置底纹常用颜色值ColorIndex

1 黑色

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下划线

&&左页眉图片设定

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Filename="D:\2.jpg"

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Height = 45

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Width = 11.25

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.Brightness = 0.51

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.ColorType = msoPictureGrayscale oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropBottom = 28.35

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = 28.35

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropRight = 28.35

oExl.ActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 28.35

oExl.ActiveSheet.PageSetup.CenterHorizontally=.T. &&设置页面水平居中

oExl.ActiveSheet.PageSetup.CenterVertically=.T. &&设置页面垂直居中

&&设置页面纸大小

oExl.ActiveSheet.PageSetup.Orientation=2 &&页面方向2表示横向

oExl.ActiveSheet.PageSetup.PaperSize=11

纸大小:

9 A4

11 A5

70 A6

oExl.ActiveSheet.PageSetup.Draft=.T.

oExl.ActiveSheet.PageSetup.FirstPageNumber=1

oExl.ActiveSheet.PageSetup.Order=1

&&单色打印

oExl.ActiveSheet.PageSetup.BlackAndWhite=.T.

oExl.ActiveSheet.PageSetup.PrintComments=-4142

oExl.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,INTEGER

operate="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、命名

https://www.sodocs.net/doc/2410580755.html,="工作表名" '将当前工作表命名为"工作表名"

4、删除

可以用以下语句删除当前工作表。

ActiveSheet.Delete

但在删除前Excel会自动弹出提示框,需在用户确认后方可执行删除。为避免这一干扰,可以先用以下语句关闭Excel的警告提示。

Application.DisplayAlerts = False

在删除完成后,再重新打开Excel的警告提示

oExcel.Visible=.T.&&显示Excel窗口

oExcel.Caption="VFP应用程序调用MicrosoftExcel"&&更改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

ReleaseoExcel&&只有释放对象变量,EXCEL进程才会完全关闭

**Worksheets属性

oExcel.Worksheets("sheet3").Activate&&设置第3个工作表为激活工作表

oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1&&在第18行之前插入分页符

oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial&&粘贴

**ActiveWorkbook属性

oExcel.ActiveWorkbook.SaveAs("c:\temp\22.xls")&&工作表另存为

oExcel.ActiveWorkbook.saved=.T.&&放弃存盘,避免出现保存对话框

oExcel.ActiveWorkbook.Save&&存盘

oExcel.ActiveWorkbook.Close(.F.)&&关闭工作簿

oExcel.ActiveWorkbook.Protect('密码',.T.,.T.)&&保护工作薄(第一个.T.:保护工作簿结构,第二个.T.:保护工作簿窗口)

**ActiveSheet属性

https://www.sodocs.net/doc/2410580755.html,edRange.Copy&&拷贝整个工作表

oExcel.ActiveSheet.PrintPreview&&打印预览工作表

oExcel.ActiveSheet.PrintOut&&打印输出工作表

oExcel.ActiveSheet.Protect('密码

',.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.)&&保护工作表

oExcel.ActiveSheet.Protection.AllowEditRanges.Add("3",oExcel.ActiveSheet.Range("A2:D5" ))&&设置允许用户编辑区域

**表格列属性

oExcel.ActiveSheet.Columns(2).Insert&&在第2列之前插入一列

oExcel.ActiveSheet.Columns(1).ColumnWidth=5&&设置指定列的宽度(单位:字符个数)

oExcel.ActiveSheet.Columns(4).PageBreak=0&&在第4列之前删除分页符

oExcel.ActiveSheet.Columns(1).Font.Bold=.T.&&设置整列字体为粗体

**表格行属性

oExcel.ActiveSheet.Rows(2).Insert&&在第2行之前插入一行

oExcel.ActiveSheet.Rows(1).RowHeight=1&&设置指定行的高度(单位:磅)(设定行高为1磅,1磅=0.035厘米)

oExcel.ActiveSheet.Rows("50:100").RowHeight=1&&设置第50行至100行的高度

**表格围属性

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=分散对齐)

oExcel.Range("A4:C4").WrapText=.F.&&文本自动换行

oExcel.ActiveSheet.Range("A4:B5").Merge=.T.&&合并单元格

oExcel.ActiveSheet.Range("A1:E2").Copy&&拷贝指定区域

oExcel.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3&&指定边框线宽度(Borders参数如下)

oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1&&设置四个边框线条的类型

&&(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)

**页面设置

WITHoExcel.ActiveSheet.PageSetup

.CenterHeader="报表1"&&设置页眉

.CenterHeader="&50报表1"&&设置页眉(字体大小),'&'后面的50可以自定义,表示字体的大小

.CenterFooter="第&P页"

&&设置页脚(LeftFoot:居左,CenterFooter:居中,RightFooter:居右)

.CenterFooter="&28第&P页共&N页"

&&设置页脚(字体大小),'&'后面的28可以自定义,表示字体的大小

.HeaderMargin=2/0.035&&设置页眉到顶端边距为2厘米

.FooterMargin=3/0.035&&设置页脚到底边距为3厘米

.TopMargin=2/0.035&&设置顶边距为2厘米

.BottomMargin=4/0.035&&设置底边距为4厘米

.LeftMargin=2/0.035&&设置左边距为2厘米

.RightMargin=2/0.035&&设置右边距为2厘米

.CenterHorizontally=.T.&&设置页面水平居中

.CenterVertically=.T.&&设置页面垂直居中

.Papersize=1&&设置页面纸大小(1-窄行851139-宽行14119:A4)

.Orientation=1&&设置纸方向(1-竖向,2-横向)

.PrintTitleRows="$1:$2"&&设置顶端标题行,(每页都打印行标头(每页顶部出现的单元格的行))

.PrintGridlines=.T.&&打印单元格网线

.Zoom=75&&设置缩放比例为75%

ENDWITH

**单元格设置

WITHoExcel.ActiveSheet.Cells(1,1)&&第一行第一列单元格https://www.sodocs.net/doc/2410580755.html,="黑体"&&字体名字

.Font.Size=25&&大小

.Font.Italic=.T.&&为斜体(Bold-粗体)

.Value="数值"&&给单元格赋值

.ClearContents&&清除单元格公式

ENDWITH

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/2410580755.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

在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/2410580755.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/2410580755.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/2410580755.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&&关闭工作区

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/2410580755.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/2410580755.html,edRange.Rows.Count nMaxCol=https://www.sodocs.net/doc/2410580755.html,edRange.Columns.Count &&表头格式设置 oExl.ActiveSheet.Rows(1).Font.Size=16

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

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

巧将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常见对象的调用方法。

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 *!* 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可以自定义,表示字体的大小

VFP实现EXCEL数据转换

Visual FoxPro是应用广泛的前台数据库开发平台之一,因此在我们日常工作中时常会遇到DBF数据文件。然而随着办公自动化的普及,越来越多的时候需要将DBF文件转化为Excel 电子文档。常用转化方法是在FoxPro中用Copy命令进行格式转化或直接用Excel打开DBF 文件。这两种方式虽然都能达到目的,却不能得到格式规范、可以直接打印输出的报表,且输出的Excel文件中,无法对数据类型进行有效转换,极易出现数据统计错误。有没有更好的方法呢?这里有一个更加通用的方法,在VFP中调用Excel,可以由DBF文件直接生成格式如下图所示一样复杂的Excel报表(如图1)。 具体过程如下: 假设我们要将表Agcallop.dbf文件输出为Excel格式文档,报表形如图1所示。为使通用性更强,页面采用A4纸横向输出,默认字体为宋体10号,页脚处添加页号。 部分程序代码如下: m.outfilename=putfile('输出结果','agcallop','xls') &&取导出文件名称 图1 Excel报表 ef=CREA TEOBJECT('Excel.application') &&调用Excel程序 ef.Workbooks.add &&添加工作簿 ef.Worksheets("sheet1").Activate &&激活第一个工作表 ef.visible=.t. &&显示Excel界面 ef.Cells.Select &&选择整张表 ef.Selection.Font.Size = 10

&&设置整表默认字体大小为10 select 0 use agcallop &&选择被导出的表 num=reccount() &&求导出总记录数 go top i=5 ef.range("F1:K1").Select &&选择标题栏所在单元格 ef.Selection.Merge &&合并单元格 with ef.range("F1 ") &&设置标题及字体属性 .value='客户服务部业务代表工作量情况统计表' https://www.sodocs.net/doc/2410580755.html,="黑体" .Font.size=18 endwith ef.Rows(2).RowHeight=1/0.035 &&设置第二行高度为1cm ef.range("H2:O2").Select &&选定统计条件栏所在单元格

VFP与Excel交互编程

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驱动VFP Excel内置的VBA语言(Visual Basic For Application)为Excel功能的扩展提供了便利的手段,用户可使用该语言直接驱动VFP完成数据检索等功能。程序首先生成一个VFP对象,然后用VFP的DoCmd方法执行VFP搜索命令串,其搜索结果再借助于VFP的DataToClip 方法拷贝至剪切板,最后VBA将其粘贴至工作表的正确位置,为了每次运行时能将结果插入到工作表中,依次对操作的工作表以“搜索结果”、“搜索结果1”等进行编号。 Sub exceluseFox () Dim oFox As Object ’声明oFox为一个对象 Dim SCommand As String ’SQL对应的命令串变量 Dim cell As Variant Dim choice As String Dim join As String

巧让VFP数据生成Excel报表示例

巧让VFP数据生成Excel报表示例 * 编号:A0027 * 功能:巧让VFP数据生成Excel报表示例 * 说明:不能打印备注型和通用型字段CLOSE DATABASES all SET DATE YMD SET CENTURY on SET PATH TO d:\vfp98 USE RKQK200802 ALIAS FoxTable IN 0 m.outfilename=putfile('输出结果','RKQK','xls') SELECT FoxTable &&取导出文件名称 ef=CREATEOBJECT('Excel.application') &&调用Excel程序 efapp=ef.application efapp.Workbooks.add efapp.activewindow.windowstate=2 &&添加工作簿 osheet=efapp.activesheet &&激活第一个工作表 ef.visible=.t.

&&显示Excel界面 ef.Cells.Select &&选择整张表 ef.Selection.Font.Size = 11 &&设置整表默认字体大小为11 num=reccount() &&求导出总记录数 go top i=5 ef.range("F1:K1").Select &&选择标题栏所在单元格 ef.Selection.Merge &&合并单元格 with ef.range("F1 ") &&设置标题及字体属性 .value='陈集小学各科任课情况一览表' https://www.sodocs.net/doc/2410580755.html,="宋体" .Font.bold=.t. .Font.size=18 .Font.Color=RGB(255,0,0) endwith with ef.range("A3:P4 ")

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/2410580755.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 &&出版社

VFP完全控制EXCEL

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. && 放弃存盘 https://www.sodocs.net/doc/2410580755.html,edRange.Copy && 拷贝整个工作表 eole.ActiveSheet.Range("A1:E2").Copy && 拷贝指定区域 eole.WorkSheet("Sheet2").Range("A1").PasteSpecial && 粘贴 eole.ActiveWorkbook.Save && 存盘(自动存盘不提问) eole.Workbooks.close && 关闭工作簿 eole.quit && 退出Excel 2、单元格的设置 *********************************** eole.ActiveSheet.Columns("D:D").Delete && 删除列 eole.ActiveSheet.Columns("A:B").Delete && 删除列 eole.ActiveSheet.Columns(1).ColumnWidth=20 && 列的宽度(单位:字符个数) eole.ActiveSheet.Columns(2).ColumnWidth=30 eole.ActiveSheet.Columns("C:BE").ColumnWidth=9.5 eole.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列之前插入一列

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. && 放弃存盘 https://www.sodocs.net/doc/2410580755.html,edRange.Copy && 拷贝整个工作表 eole.ActiveSheet.Range("A1:E2").Copy && 拷贝指定区域 eole.WorkSheet("Sheet2").Range("A1").PasteSpecial && 粘贴 eole.ActiveWorkbook.Save && 存盘(自动存盘不提问) eole.Workbooks.close && 关闭工作簿 eole.quit && 退出Excel 2、单元格的设置 *********************************** eole.ActiveSheet.Columns("D:D").Delete && 删除列 eole.ActiveSheet.Columns("A:B").Delete && 删除列 eole.ActiveSheet.Columns(1).ColumnWidth=20 && 列的宽度(单位:字符个数) eole.ActiveSheet.Columns(2).ColumnWidth=30 eole.ActiveSheet.Columns("C:BE").ColumnWidth=9.5 eole.Selection.Columns.AutoFit && 最适合的列宽

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东莞市广众商贸有限公司表格" 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制表人:'+cUser+' 制表时间:"+TTOC(DATETIME()) *------------------------------------------------------* &&整体格式设置 oExl.ActiveSheet.Rows.Font.Size=9 https://www.sodocs.net/doc/2410580755.html,='宋体' oExl.ActiveSheet.Rows.RowHeight=0.5/0.035 oExl.ActiveSheet.Rows.NumberFormatLocal="0.00_ ;[红色]-0.00" oExl.ActiveSheet.Rows.VerticalAlignment=2 &&单元格内容垂直居中

相关主题