VFP全面控制EXCEL.docx
- 文档编号:7550036
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:10
- 大小:23.32KB
VFP全面控制EXCEL.docx
《VFP全面控制EXCEL.docx》由会员分享,可在线阅读,更多相关《VFP全面控制EXCEL.docx(10页珍藏版)》请在冰点文库上搜索。
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应用程序调用MicrosoftExcel” &&更改Excel标题栏
eole。
ActiveWorkbook.SaveAs(”D:
\ABC\22。
xls") &&工作表另为
eole。
ActiveWorkbook。
saved=。
t. &&放弃存盘
eole。
ActiveSheet.UsedRange。
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列之前插入一列
eole.cells(1,2)。
value="ABTMC" &&给单元格赋值
eole。
cells(2,2)。
value=”&BBBB" &&给单元格赋值
eole.ActiveSheet.Cells(1,4)。
ClearContents &&清除单元格公式
eole。
ActiveSheet.Rows
(1)。
RowHeight=1/0。
035 &&设置指定行的高度(单位:
磅)
*(行高为1厘米,1磅=0.035厘米)
eole。
ActiveSheet.ROWS
(1)。
Font.Name=”黑体" &&设置字体
eole。
ActiveSheet.ROWS
(1)。
Font。
Size=14 &&设置字体大小
eole。
ActiveSheet.ROWS
(1).Font。
Bold=。
t。
&&设置整行字体为粗体
eole.ActiveSheet.Cells(1,1)。
Font。
Italic=。
t. &&设置字体为斜体
eole。
Range(”A3:
BE3”)。
select
eole。
selection.WrapText=。
T. &&自动换行
eole.selection。
HorizontalAlignment=3 &&水平方向 2左对齐,3居中,4右对齐
eole.selection.VerticalAlignment=2 &&垂直方向 1靠上 ,2居中,3靠下
eole.Range(”A2:
B2”).select
eole.selection。
MergeCells=。
T。
&&合并单元
eole.selection。
HorizontalAlignment=2 &&水平方向 2左对齐,3居中,4右对齐
eole.selection。
VerticalAlignment=2 &&垂直方向 1靠上 ,2居中,3靠下
eole。
Range("A5:
M5”)。
select
eole。
Selection.Interior.ColorIndex=34 &&设置行颜色为[淡兰]
eole。
ActiveSheet。
Range(”A1:
BE29”).NumberFormatLocal=;
"_*#,##0。
00_;_*—#,##0。
00_;_*"+"-"+"?
?
_;_@_" &&指定区域内的数字显示格式
3、打印页面的设置 *********************************
eole。
ActiveSheet.PageSetup.HeaderMargin=2/0。
035 &&设置页眉到顶端边距为2厘米
eole。
ActiveSheet.PageSetup。
FooterMargin=3/0.035 &&设置页脚到底边距为3厘米
eole.ActiveSheet。
PageSetup。
TopMargin=4/0.035 &&设置顶边距为4厘米
eole。
ActiveSheet。
PageSetup.BottomMargin=4/0。
035 &&设置底边距为4厘米
eole.ActiveSheet。
PageSetup.LeftMargin=2/0.035 &&设置左边距为2厘米
eole.ActiveSheet。
PageSetup.RightMargin=2/0.035 &&设置右边距为2厘米
eole.ActiveSheet。
PageSetup。
CenterHorizontally=.t. &&设置页面水平居中
eole。
ActiveSheet.PageSetup.CenterVertically=。
t. &&设置页面垂直居中
eole.ActiveSheet。
PageSetup.PaperSize=8 &&设置页面纸张大小
(1-窄行851139-宽行1411)
eole.ActiveSheet.PageSetup.Orientation=2 &&横向
eole.ActiveSheet。
PageSetup。
PrintTitleRows="$1:
$3" &&定义固定行
eole.ActiveSheet.PageSetup.PrintTitleColumns="$A:
$C” &&定义固定列
eole.ActiveSheet.PageSetup.CenterHeader=”&14&BTMC" &&设置页眉
eole。
ActiveSheet.PageSetup。
CenterFooter=”表__第&P页" &&设置页脚
eole。
Worksheets(”Sheet1")。
Rows(18)。
PageBreak=1 &&在第18行之前插入分页符
eole.ActiveSheet.Columns(4)。
PageBreak=0 &&在第4列之前删除分页符
eole。
ActiveSheet。
PageSetup.PrintGridlines=.t. &&打印单元格网线
eole。
ActiveSheet.PrintPreview &&打印预览工作表
eole.ActiveSheet。
PrintOut &&打印输出工作表
oExcel.ActiveSheet.PageSetup.Zoom=90&&缩放90%
4、记录条数的利用 *********************************
一般来讲,EXCEL表的来源为DBF文件,列、行应该是可以预知的
USE111
COUNTTOAAA
USE
FWQ ="A3:
M”+ALLT(STR(AAA+?
)) ?
为EXCEL表插入的行数
eole.ActiveSheet.Range(FWQ)。
Borders
(1).LineStyle=1 &&设置四个边框线条的类型
eole.ActiveSheet。
Range(FWQ).Borders
(2).LineStyle=1 &&设置四个边框线条的类型
eole.ActiveSheet。
Range(FWQ).Borders(3).LineStyle=1 &&设置四个边框线条的类型
eole.ActiveSheet。
Range(FWQ).Borders(4).LineStyle=1 &&设置四个边框线条的类型
5、VFP下直接调用EXCEL、WORD文件 *********************************
DECLAREINTEGERShellExecuteINshell32。
DLLINTEGERHWND,STRING,;
STRINGlpszFile,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文件
****************************************
VFP全面控制EXCEL
本文来自CSDN博客:
http:
//blog。
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应用程序调用MicrosoftExcel"
*!
*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
*!
*20.设置顶边距为2厘米
oExcel。
ActiveSheet.PageSetup.TopMargin=2/0.035
*!
*21.设置底边距为4厘米
oExcel.ActiveSheet.PageSetup。
BottomMargin=4/0.035
*!
*22.设置左边距为2厘米
oExcel.ActiveSheet.PageSetup.LeftMargin=2/0。
035
*!
*23.设置右边距为2厘米
oExcel。
ActiveSheet。
PageSetup.RightMargin=2/0。
035
*!
*24.设置页面水平居中
oExcel.ActiveSheet.PageSetup。
CenterHorizontally=。
T.
*!
*25.设置页面垂直居中
oExcel。
ActiveSheet。
PageSetup。
CenterVertically=。
T.
*!
*26.设置页面纸张大小(1-窄行851139-宽行14119:
A4)
oExcel。
ActiveSheet.PageSetup.Papersize=1
*!
*27.打印单元格网线
oExcel.ActiveSheet.PageSetup。
PrintGridlines=。
T。
*!
*28.拷贝整个工作表
oExcel。
ActiveSheet.UsedRange。
Copy
*!
*29.拷贝指定区域
oExcel.ActiveSheet。
Range(”A1:
E2")。
Copy
*!
*30.粘贴
oExcel。
WorkSheet(”Sheet2”)。
Range("A1")。
PasteSpecial
*!
*31.在第2行之前插入一行
oExcel。
ActiveSheet。
Rows
(2)。
Insert
*!
*32.在第2列之前插入一列
oExcel。
ActiveSheet.Columns
(2)。
Insert
*!
*33.设置字体
oExcel。
ActiveSheet.Cells(2,1).Font。
Name=”黑体”
*!
*34.设置字体大小
oExcel。
ActiveSheet.Cells(1,1)。
Font。
Size=25
*!
*35.设置字体为斜体
oExcel.ActiveSheet.Cells(1,1).Font。
Italic=。
T.
*!
*36.设置整列字体为粗体
oExcel.ActiveSheet。
Columns
(1).Font.Bold=。
T。
*!
*37.清除单元格公式
oExcel。
ActiveSheet。
Cells(1,4).ClearContents
*!
*38.打印预览工作表
oExcel.ActiveSheet.PrintPreview
*!
*39.打印输出工作表
oExcel.ActiveSheet。
PrintOut
*!
*40.oExcel。
CommandBars
(1)。
Controls
(1).accChild(18).Execute&&打印(菜单序号18为Excel2003的‘打印’项)
&&不同版本Excel的菜单序号可以通过以下程序取得
*(需要在VFP7.0以上运行)
oXls=Getobject("","excel。
sheet”)
XlApp=oXLS。
Application
XlSheet=XlApp。
ActiveSheet
bars=xlapp。
CommandBars.Count
Str1=’’
Fori=1Tobars
Str1=Str1+Chr(13)+Alltrim(Str(i))+'、'+xlapp.CommandBars(i).accName+’(NAME:
’+xlapp.CommandBars(i)。
Name+’INDEX:
'+Alltrim(Str(xlapp.CommandBars(i)。
Index))+')'
bars2=mandbars(i)。
accChildCount
Forj=1Tobars2
Try
obj=mandbars(i)。
Controls(j)
Str1=Str1+Chr(13)+’’+Alltrim(Str(j))+'、'+mandbars(i)。
Controls(j)。
accname+’(ID:
'+Alltrim(Str(xlapp.CommandBars(i).Controls(j)。
Id))+’)'
Fork=1Toobj。
accChildCount
Try
IfNotEmpty(obj。
Controls(k).accname)
Str1=Str1+Chr(13)+’’+Alltrim(Str(k))+'、'+obj。
Controls(k)。
accName+'(ID:
’+Alltrim(Str(obj。
Controls(k).Id))+')’
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 全面 控制 EXCEL