VB中引用Excel属性
1.创建Excel对象
eole=CREATEOBJECT(′Excel.application′)
2.添加新工作簿
eole。Workbooks。add
3.设置第3个工作表为激活工作表
eole.Worksheets(″sheet3″).Activate
4.打开指定工作簿
eole=CREATEOBJECT(′Excel.application′)
2.添加新工作簿
eole。Workbooks。add
3.设置第3个工作表为激活工作表
eole.Worksheets(″sheet3″).Activate
4.打开指定工作簿
eole。Workbooks。Open(″c:\temp\ll.xls″)
5.显示Excel窗口
eole。visible=.t。
6.更改Excel标题栏
eole。Caption=″VFP应用程序调用Microsoft Excel″
7.给单元格赋值
eole。cells(1,4).value=XM(XM为数据库字段名)
8.设置指定列的宽度(单位:字符个数)
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=5
9.设置指定行的高度(单位:磅)
eole.ActiveSheet.Rows(1)。RowHeight=1/0.035
(设定行高为1厘米,1磅=0.035厘米)
10.在第18行之前插入分页符
eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
11.在第4列之前删除分页符
eole.ActiveSheet.Columns(4)。PageBreak=0
12.指定边框线宽度(Borders参数如下)
ole.ActiveSheet.Range(″b3:d3″)。Borders(2)。Weight=3
13.设置四个边框线条的类型
eole。ActiveSheet。Range(″b3:d3″)。Borders(2).LineStyle=1
(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细 实线)
14.设置页眉
12.指定边框线宽度(Borders参数如下)
ole.ActiveSheet.Range(″b3:d3″)。Borders(2)。Weight=3
13.设置四个边框线条的类型
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。035
17.设置页脚到底边距为3厘米
eole。ActiveSheet.PageSetup。FooterMargin=3/0.035
18.设置顶边距为2厘米
15.设置页脚
eole.ActiveSheet.PageSetup。CenterFooter=″第&P页″
16.设置页眉到顶端边距为2厘米
eole。ActiveSheet。PageSetup.HeaderMargin=2/0。035
17.设置页脚到底边距为3厘米
eole。ActiveSheet.PageSetup。FooterMargin=3/0.035
18.设置顶边距为2厘米
eole。ActiveSheet。PageSetup.TopMargin=2/0.035
19.设置底边距为4厘米
eole。ActiveSheet。PageSetup。BottomMargin=4/0.035
20.设置左边距为2厘米
veole。ActiveSheet。PageSetup。LeftMargin=2/0。035
21.设置右边距为2厘米
eole。ActiveSheet.PageSetup。RightMargin=2/0.035
22.设置页面水平居中
eole。ActiveSheet。PageSetup.CenterHorizontally=.t。
23.设置页面垂直居中
eole.ActiveSheet。PageSetup.CenterVertically=。t.
24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11)
eole.ActiveSheet。PageSetup.PaperSize=1
25.打印单元格网线
eole.ActiveSheet.PageSetup.PrintGridlines=.t.
eole。ActiveSheet。PageSetup.CenterHorizontally=.t。
23.设置页面垂直居中
eole.ActiveSheet。PageSetup.CenterVertically=。t.
24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11)
eole.ActiveSheet。PageSetup.PaperSize=1
25.打印单元格网线
eole.ActiveSheet.PageSetup.PrintGridlines=.t.
26.拷贝整个工作表
eole.ActiveSheet.UsedRange.Copy
27.拷贝指定区域
eole.ActiveSheet.Range(″A1:E2″)。Copy
28.粘贴
eole。WorkSheet(″Sheet2″).Range(″A1″)。PasteSpecial
29.在第2行之前插入一行
eole.ActiveSheet.Rows(2).Insert
30.在第2列之前插入一列
eole。ActiveSheet。Columns(2).Insert
31.设置字体
eole。ActiveSheet.Cells(2,1).Font.Name=″黑体″
32.设置字体大小
eole.ActiveSheet。Cells(1,1).Font。Size=25
33.设置字体为斜体
30.在第2列之前插入一列
eole。ActiveSheet。Columns(2).Insert
31.设置字体
eole。ActiveSheet.Cells(2,1).Font.Name=″黑体″
32.设置字体大小
eole.ActiveSheet。Cells(1,1).Font。Size=25
33.设置字体为斜体
eole。ActiveSheet。Cells(1,1)。Font。Italic=.t。
34.设置整列字体为粗体
eole.ActiveSheet.Columns(1)。Font.Bold=.t。
35.清除单元格公式
eole。ActiveSheet.Cells(1,4)。ClearContents
36.打印预览工作表
eole.ActiveSheet.PrintPreview
37.打印输出工作表
eole.ActiveSheet。PrintOut
38.工作表另为
eole。ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
39.放弃存盘
eole。ActiveWorkbook。saved=.t。
40.关闭工作簿
eole。Workbooks.close
eole.ActiveSheet。PrintOut
38.工作表另为
eole。ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
39.放弃存盘
eole。ActiveWorkbook。saved=.t。
40.关闭工作簿
eole。Workbooks.close
41.退出Excel
eole.quit
-—-----—-————----—————-—-———-—--————------——--—--—--—-—--—---——----—-———————-—-—-—--—------—--—-
◆访问EXCEL:ExcelSheet = GetObject(’’,'Excel。Sheet')
返回结果为类,则成功。例:
ExcelSheet = GetObject('’,'Excel.Sheet’)
If Type("ExcelSheet")#’O’ THEN
=MessageBox( "访问Excel失败!请检查你的系统是否正确安装 Excel 软件!",48,"Excel不正常")
RETURN
ENDIF
返回结果为类,则成功。例:
ExcelSheet = GetObject('’,'Excel.Sheet’)
If Type("ExcelSheet")#’O’ THEN
=MessageBox( "访问Excel失败!请检查你的系统是否正确安装 Excel 软件!",48,"Excel不正常")
RETURN
ENDIF
◆创建EXCEL实例:oExcel=CreateObject("Excel.Application")
该实例创建后,任何对EXCEL的操作都针对该实例进行,关闭EXCEL后应释放该实例变量:RELEASE oExcel
◆打开已存在的EXCEL文件:oExcel。WorkBooks。Open("&lcFileName") &&lcFileName为Excel文件名
打开带有读写密码的文 件:oExcel.WorkBooks.Open(”&lcFileName”,,。F.,,”&R_Pwd","&W_Pwd") &&lcFileName—文件名,R_Pwd-读密码,W_Pwd-写密码,第二个参数表示读写方式:。T.只读,。F.读写
◆设置新增工作薄的工作表数:oExcel.SheetsInNewWorkbook=1 &&新建工作表数量定为1个
◆新增EXCEL工作薄:oExcel.WorkBooks。Add
该实例创建后,任何对EXCEL的操作都针对该实例进行,关闭EXCEL后应释放该实例变量:RELEASE oExcel
◆打开已存在的EXCEL文件:oExcel。WorkBooks。Open("&lcFileName") &&lcFileName为Excel文件名
打开带有读写密码的文 件:oExcel.WorkBooks.Open(”&lcFileName”,,。F.,,”&R_Pwd","&W_Pwd") &&lcFileName—文件名,R_Pwd-读密码,W_Pwd-写密码,第二个参数表示读写方式:。T.只读,。F.读写
◆设置新增工作薄的工作表数:oExcel.SheetsInNewWorkbook=1 &&新建工作表数量定为1个
◆新增EXCEL工作薄:oExcel.WorkBooks。Add
◆当前工作薄工作表总数:oExcel。WorkSheets。Count &&如:lnSheetCnt=oExcel.WorkSheets。count
◆新增EXCEL工作表:oExcel.Sheets.Add &&不带参数为增加至当前工作表之前
在指定工作表后新建工作表:oExcel。Sheets.Add(,oExcel。Sheets(lnSheet),1,-4167) &&lnSheet为指定表号
在最后工作表后新建工作表:oExcel.Sheets.Add(,lnSheetsCnt,1,—4167) &&lnSheetCnt为工作表总数
◆激活工作表:oExcel.WorkSheets("Sheet1")。Activate &&激活工作表1
删除工作表:oExcel.WorkSheets("Sheet2").Delete &&删除工作表2
命名工作表:oExcel.WorkSheets("Sheet3”).Name=”新表" &&重命名工作表3
◆使EXCEL可视:oExcel。Vsible=。T。
◆新增EXCEL工作表:oExcel.Sheets.Add &&不带参数为增加至当前工作表之前
在指定工作表后新建工作表:oExcel。Sheets.Add(,oExcel。Sheets(lnSheet),1,-4167) &&lnSheet为指定表号
在最后工作表后新建工作表:oExcel.Sheets.Add(,lnSheetsCnt,1,—4167) &&lnSheetCnt为工作表总数
◆激活工作表:oExcel.WorkSheets("Sheet1")。Activate &&激活工作表1
删除工作表:oExcel.WorkSheets("Sheet2").Delete &&删除工作表2
命名工作表:oExcel.WorkSheets("Sheet3”).Name=”新表" &&重命名工作表3
◆使EXCEL可视:oExcel。Vsible=。T。
◆Excel的窗口控制:oExcel.WindowState = —4140 &&最小化=—4140,最大化=-4137,还原=—4143
◆后台操作报警关闭:oExcel。DisplayAlerts=。F。 &&关闭(。F.) 打开(.T。)
◆设置工作薄的标题:oExcel。Caption="Vfp控制Excel操作”
◆当前工作薄换名存盘:oExcel.ActiveWorkBook.SaveAs(”&lcFileName")
换名存为文本文件:oExcel.ActiveWorkBook.Saveas("&lcFileName",-4158)
◆工作薄存盘:oExcel.WorkBooks。Save
◆关闭工作薄:oExcel.WorkBooks。Close
◆退出EXCEL:oExcel.Quit &&关闭EXCEL后通常应释放实例变量:Release oExcel
◆后台操作报警关闭:oExcel。DisplayAlerts=。F。 &&关闭(。F.) 打开(.T。)
◆设置工作薄的标题:oExcel。Caption="Vfp控制Excel操作”
◆当前工作薄换名存盘:oExcel.ActiveWorkBook.SaveAs(”&lcFileName")
换名存为文本文件:oExcel.ActiveWorkBook.Saveas("&lcFileName",-4158)
◆工作薄存盘:oExcel.WorkBooks。Save
◆关闭工作薄:oExcel.WorkBooks。Close
◆退出EXCEL:oExcel.Quit &&关闭EXCEL后通常应释放实例变量:Release oExcel
◆打印当前工作簿:oExcel.ActiveWorkBook.PrintOut(1,unt,1,.T。)
*默认直接打印整个工作簿:oExcel.ActiveWorkBook.PrintOut()
*参数1—数值:当前工作簿中进行打印的起始工作表号(默认1)
*参数2—数值:当前工作簿中进行打印的结束工作表号(默认最末)
*参数3-数值:打印份数(默认1)
*参数4—是预览打印还是直接打印:.T。—预览打印,.F.—直接打印(默认。F.) setoption
◆打印当前工作表:oExcel。ActiveSheet。PrintOut() &&共八个参数
*参数1—数值:起始页号,省略则默认为开始位置
*参数2—数值:终止页号,省略则默认为最后一页
*参数3-数值:打印份数,省略则默认为1份
*参数4-逻辑值:是否预览,省略则默认为直接打印(.F.)
*参数5—字符值:设置活动打印机名称,省略则为默认打印机
*参数6—逻辑值:是否输出到文件,省略则默认为否(。F.),若选.T。且参数8为空,则Excel提示输入要输出的文件名
*参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印
*参数8—字符值:当参数6为。T。时,设置要打印到的文件名
◆预览当前工作表:oExcel.ActiveSheet。PrintPreview
◆当前工作表页面设置:oExcel.ActiveSheet。PageSetup &&如:
With oExcel.ActiveSheet.PageSetup
。CenterFooter=”第”+"&P"+”页 共”+"&N”+”页” &&页脚中间
.LeftFooter="制表人:”+AllTrim(lcUserName) &&页脚左边
。rightfooter=”制表日期:"+Dtoc(Date()) &&页脚右边
.TopMargin=2.5/0。035 &&顶边距
.BottomMargin=2.5/0.035 &&底边距
.LeftMargin=1.4/0.035 &&左边距
。
*参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印
*参数8—字符值:当参数6为。T。时,设置要打印到的文件名
◆预览当前工作表:oExcel.ActiveSheet。PrintPreview
◆当前工作表页面设置:oExcel.ActiveSheet。PageSetup &&如:
With oExcel.ActiveSheet.PageSetup
。CenterFooter=”第”+"&P"+”页 共”+"&N”+”页” &&页脚中间
.LeftFooter="制表人:”+AllTrim(lcUserName) &&页脚左边
。rightfooter=”制表日期:"+Dtoc(Date()) &&页脚右边
.TopMargin=2.5/0。035 &&顶边距
.BottomMargin=2.5/0.035 &&底边距
.LeftMargin=1.4/0.035 &&左边距
。
RightMargin=0。5/0。035 &&右边距
。FooterMargin=3。5/0.035 &&脚高距
。PrintTitleRows = "$1:$3” &&固定打印的顶端标题行(第1-3行)
。Orientation = 1 &&打印方向: 1为纵向,2为横向
.PaperSize=9 &&纸张类型: A4(注意:不同打印机与版本可能有不同)
.PrintQuality = 180 &&打印精度
EndWith
◆从包含大量内含公式的EXCEL文件导至DBF中时,直接转换会出现致命错误,这时可选择将EXCEL另存为文本文件再导至DBF中可保数据不丢失:
oExcel.WorkBooks。Open(’D:\123.xls')
oExcel。ActiveWorkBook.Saveas(’D:\',—4158 ) &&注意参数—4158不能错
◆若判断EXCEL或某个XLS文件是否已经打开(避免不可预知的错误发生):
LOCAL lOldSetOpt,mChanNum
。FooterMargin=3。5/0.035 &&脚高距
。PrintTitleRows = "$1:$3” &&固定打印的顶端标题行(第1-3行)
。Orientation = 1 &&打印方向: 1为纵向,2为横向
.PaperSize=9 &&纸张类型: A4(注意:不同打印机与版本可能有不同)
.PrintQuality = 180 &&打印精度
EndWith
◆从包含大量内含公式的EXCEL文件导至DBF中时,直接转换会出现致命错误,这时可选择将EXCEL另存为文本文件再导至DBF中可保数据不丢失:
oExcel.WorkBooks。Open(’D:\123.xls')
oExcel。ActiveWorkBook.Saveas(’D:\',—4158 ) &&注意参数—4158不能错
◆若判断EXCEL或某个XLS文件是否已经打开(避免不可预知的错误发生):
LOCAL lOldSetOpt,mChanNum
lOldSetOpt = DDESetOption("SAFETY”)
= DDESetOption(”SAFETY”,.F。)
mChanNum = DDEInitiate('Excel’,'SYSTEM’) &&EXCEL是否已经打开
**mChanNum = DDEInitiate('Excel',’&lcFileName') &&lcFileName某XLS文件名,如:D:\123.XLS
IF mChanNum <〉 —1
= messagebox('程序 EXCEL 已经打开,请先将其关闭!',64,’系统提示!')
** = messagebox('文件 ’+lcFileName+’ 已经打开,请先将其关闭!’,64,’系统提示!’)
= DDETerminate(mChanNum)
= DDESetOption("SAFETY",lOldSetOpt)
RETURN
ENDIF
= DDESetOption(”SAFETY”,.F。)
mChanNum = DDEInitiate('Excel’,'SYSTEM’) &&EXCEL是否已经打开
**mChanNum = DDEInitiate('Excel',’&lcFileName') &&lcFileName某XLS文件名,如:D:\123.XLS
IF mChanNum <〉 —1
= messagebox('程序 EXCEL 已经打开,请先将其关闭!',64,’系统提示!')
** = messagebox('文件 ’+lcFileName+’ 已经打开,请先将其关闭!’,64,’系统提示!’)
= DDETerminate(mChanNum)
= DDESetOption("SAFETY",lOldSetOpt)
RETURN
ENDIF
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(App。Path & ”\文件名.xls”) '打开已经存在的EXCEL工件簿文件
Set xlBook = xlApp.Workbooks.Open(App。Path & ”\文件名.xls”) '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets(”sheel1”) ’设置活动工作表,sheet1表示表名,可以使用字符型变量代替。
xlSheet。Activate '激活工作表,让它处于前台活动中。
xlBook.RunAutoMacros (xlAutoOpen) '运行自动开启宏Macro1(),在EXCEL中加入以下宏
’Sub auto_open() ’这是VBA中的自动打开时运行的宏
’ 您要宏自动运行的程序,比如可以call其它的宏,这样VB在打开EXCEL时,使用上面的语句就可以先运行这个宏
’End Sub
xlSheet。Cells.Item(行数,列数) =值 ’给EXCEL对象中的表的单元格附值。
xlSheet。Rows(”7:7")。Select ’选定EXCEL表的第7行
xlApp.Selection。Delete shift:=xlUp ’删除选定的行
xlSheet.Rows(7)。Insert ’在第7行处插入一行
ActiveSheet。PageSetup。CenterHeader ="页眉内容" ’给页眉附值
xlSheet。Range(”f7:h7”)。Select '选定f7:h7之间的单元格,下面的程序是把它们合
Set xlSheet = xlBook.Worksheets(”sheel1”) ’设置活动工作表,sheet1表示表名,可以使用字符型变量代替。
xlSheet。Activate '激活工作表,让它处于前台活动中。
xlBook.RunAutoMacros (xlAutoOpen) '运行自动开启宏Macro1(),在EXCEL中加入以下宏
’Sub auto_open() ’这是VBA中的自动打开时运行的宏
’ 您要宏自动运行的程序,比如可以call其它的宏,这样VB在打开EXCEL时,使用上面的语句就可以先运行这个宏
’End Sub
xlSheet。Cells.Item(行数,列数) =值 ’给EXCEL对象中的表的单元格附值。
xlSheet。Rows(”7:7")。Select ’选定EXCEL表的第7行
xlApp.Selection。Delete shift:=xlUp ’删除选定的行
xlSheet.Rows(7)。Insert ’在第7行处插入一行
ActiveSheet。PageSetup。CenterHeader ="页眉内容" ’给页眉附值
xlSheet。Range(”f7:h7”)。Select '选定f7:h7之间的单元格,下面的程序是把它们合
并。
Application。CutCopyMode = False
With xlApp。Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
。AddIndent = False
。IndentLevel = 0
。ShrinkToFit = False
。ReadingOrder = xlContext
.MergeCells = True
End With
-—--—----———--—-————--—-—---——-----——-————--—--—-——----—-———-—--—-—---—-———--—----—-——-——————-———-—————--—---
Application。CutCopyMode = False
With xlApp。Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
。AddIndent = False
。IndentLevel = 0
。ShrinkToFit = False
。ReadingOrder = xlContext
.MergeCells = True
End With
-—--—----———--—-————--—-—---——-----——-————--—--—-——----—-———-—--—-—---—-———--—----—-——-——————-———-—————--—---
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论