Visual Foxpro中如何实现对EXCEL表格的操作Word文档下载推荐.docx
- 文档编号:21828380
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:209
- 大小:92.48KB
Visual Foxpro中如何实现对EXCEL表格的操作Word文档下载推荐.docx
《Visual Foxpro中如何实现对EXCEL表格的操作Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Visual Foxpro中如何实现对EXCEL表格的操作Word文档下载推荐.docx(209页珍藏版)》请在冰豆网上搜索。
d3"
).Borders
(2).Weight=3
13.设置四个边框线条的类型
oExcel.ActiveSheet.Range("
).Borders
(2).LineStyle=1
(其中Borders参数:
1-左、2-右、3-顶、4-底、5-斜、6-斜/;
LineStyle值:
1与7-细实、2-细虚、4-点虚、9-双细实线)
14.设置页眉
oExcel.ActiveSheet.PageSetup.CenterHeader="
报表1"
14.设置页眉(字体大小)
50报表1"
&
'
后面的50可以自定义,表示字体的大小
15.设置页脚
oExcel.ActiveSheet.PageSetup.CenterFooter="
第&
P页"
15.设置页脚(字体大小)
28第&
后面的28可以自定义,表示字体的大小
16.设置页眉到顶端边距为2厘米
oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035
17.设置页脚到底边距为3厘米
oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035
18.设置顶边距为2厘米
oExcel.ActiveSheet.PageSetup.TopMargin=2/0.035
19.设置底边距为4厘米
oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035
20.设置左边距为2厘米
oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.035
21.设置右边距为2厘米
oExcel.ActiveSheet.PageSetup.RightMargin=2/0.035
22.设置页面水平居中
oExcel.ActiveSheet.PageSetup.CenterHorizontally=.t.
23.设置页面垂直居中
oExcel.ActiveSheet.PageSetup.CenterVertically=.t.
24.设置页面纸张大小(1-窄行851139-宽行14119:
A4)
oExcel.ActiveSheet.PageSetup.PaperSize=1
25.打印单元格网线
oExcel.ActiveSheet.PageSetup.PrintGridlines=.t.
26.拷贝整个工作表
oExcel.ActiveSheet.UsedRange.Copy
27.拷贝指定区域
A1:
E2"
).Copy
28.粘贴
oExcel.WorkSheet("
Sheet2"
).Range("
A1"
).PasteSpecial
29.在第2行之前插入一行
oExcel.ActiveSheet.Rows
(2).Insert
30.在第2列之前插入一列
oExcel.ActiveSheet.Columns
(2).Insert
31.设置字体
oExcel.ActiveSheet.Cells(2,1).Font.Name="
黑体"
32.设置字体大小
oExcel.ActiveSheet.Cells(1,1).Font.Size=25
33.设置字体为斜体
oExcel.ActiveSheet.Cells(1,1).Font.Italic=.t.
34.设置整列字体为粗体
oExcel.ActiveSheet.Columns
(1).Font.Bold=.t.
35.清除单元格公式
oExcel.ActiveSheet.Cells(1,4).ClearContents
36.打印预览工作表
oExcel.ActiveSheet.PrintPreview
37.打印输出工作表
oExcel.ActiveSheet.PrintOut
38.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
STR='
FORi=1TObars
STR=STR+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)
STR=STR+CHR(13)+'
'
+ALLTRIM(STR(j))+'
+mandbars(i).CONTROLS(j).accname+'
(ID:
+ALLTRIM(STR(xlapp.CommandBars(i).CONTROLS(j).ID))+'
FORk=1TOobj.accChildCount
IFNOTEMPTY(obj.CONTROLS(k).accname)
+ALLTRIM(STR(k))+'
+obj.CONTROLS(k).accName+'
(ID:
+ALLTRIM(STR(obj.CONTROLS(k).ID))+'
ENDIF
CATCH
EXIT
ENDTRY
ENDFOR
WAITWINDOWSALLTRIM(STR(i))+'
/'
+ALLTRIM(STR(bars))+'
+STR(i/bars*100,10,2)+'
%'
NOWAIT
SAVETOXLS.txtALLLIKESTR
MODIFYCOMMANDXLS.txt
RETURN
39.工作表另存为
oExcel.ActiveWorkbook.SaveAs("
\temp\22.xls"
检测当前目录是否有同名的EXCEL表,如果有先删除,再另存
IF!
FILE(SYS(5)+CURDIR()+"
result.xls"
oExcel.ActiveWorkbook.SaveAs(SYS(5)+CURDIR()+"
ELSE
lcFileName=loExcel.GetSaveAsFilename("
result"
"
Excel(*.xls),*.xls"
EMPTY(lcFileName)
IFFILE(lcFileName)
DELETEFILE(lcFileName)
ENDIFoExcel.ActiveWorkbook.SaveAs(lcFileName)
ENDIF
40.放弃存盘&
避免出现保存对话框
oExcel.ActiveWorkbook.saved=.t.
41.存盘
oExcel.ActiveWorkbook.save
42.关闭工作簿
oExcel.Workbooks.close
43.退出Excel
oExcel.quit
RELEASEoExcel&
只有释放对象变量,EXCEL进程才会完全关闭
44.合并单元格
A4:
B5"
).MergeCells=.t.
45.下列设置大家自己理解
Withcrfole.ActiveSheet.PageSetup
.LeftHeader=chr(13)+"
左页眉"
.CenterHeader="
中页眉"
.RightHeader="
右页眉"
.LeftFooter="
左页脚"
.CenterFooter="
中页脚"
.RightFooter="
右页脚"
.orientation=1&
1竖排,2横排
EndWith
Withcrfole.Range("
C4"
.MergeCells=.t.
.WrapText=.f.
.Orientation=0
.AddIndent=.f.
.ShrinkToFit=.f.
46.文本对齐
oExcel.range("
c4"
).HorizontalAlignment=1&
水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)
).VerticalAlignment=2&
垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐)
47.拷贝整个工作表(含格式)
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企业版下运行通过,运行环境为Excel97及中文Windows98
48.显示某个单元格的批注内容
oExcel.Workbooks.OPEN("
d:
\TEST\testa.xls"
oExcel.VISIBLE=.T.
?
oExcel.Range("
).Comment.Text&
显示B5单元格的批注内容
oExcel.Workbooks.CLOSE
oExcel.QUIT
RELEASEoExcel
49.oExcel.ActiveSheet.PageSetup.PrintTitleRows="
$1:
$1"
每页都打印行标头(每页顶部出现的单元格的行)
50.保护工作表:
oExcel.ActiveSheet.PROTECT('
密码'
.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.)
51.保护工作薄
oExcel.ActiveWorkbook.PROTECT('
.T.,.T.)
第一个.T.:
保护工作簿结构
第二个.T.:
保护工作簿窗口
52.设置允许用户编辑区域
oExcel.ActiveSheet.Protection.AllowEditRanges.Add("
区域3"
oExcel.ActiveSheet.Range("
A2:
D5"
))
53.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.
oExcel.DisplayAlerts=.F.
如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为False;
这样每次出现需用户应答的消息时,MicrosoftExcel将选择默认应答。
如果将本属性设置为False,那么宏运行结束后,MicrosoftExcel并不自动将其设置回True。
故当宏运行结束后,都应将本属性设置回True值。
54.将当前工作表中的已用区域(只读)存入数组。
strPath='
D:
\TEST\123.xls'
LOCALoExcel
Excel.Application"
oExcel.WorkBooks.OPEN(strPath)
arrTableInfo=oExcel.ActiveSheet.UsedRange.VALUE&
将当前工作表中的已用区域(只读)存入数组。
INSERTINTO表名FROMarrTableInfo
55.设置excel批注的字体(excel2000实现了,如下:
ole.Range("
a3"
).Comment.Shape.Select&
此命令要求批注的Visible=.t.
ole.selection.Font.size=9
ole.selection.Font.name="
ole.selection.Font.bold=.f.
注:
该组命令要求先选中批注框,否则写成ole.Range("
).Comment.Shape.Font.size=9则出错,不知为何!
--------------------------------------------------------------
如何取得当前EXCEL表中工作表的数目及各工作表的名称?
CLEAR
LOCALlnSheetCount
EXCEL.APPLICATION"
)&
创建Excel对象
oExcel.WORKBOOKS.OPEN("
\111\321.xls"
打开指定工作簿
WITHoExcel
lnSheetCount=.WorkBooks
(1).Sheets.Count&
统计工作表数量
ENDWITH
当前EXCEL表中工作表的数目为:
+ALLTRIM(STR(lnSheetCount))
FOREACHoMyVarINoExcel.sheets
?
当前EXCEL表中工作表的名称分别为'
+oMyVar.name&
显示Excel表中所有工作表
NEXToMyVar
oExcel.WORKBOOKS.CLOSE&
关闭工作簿
oExcel.QUIT&
退出Excel
获取工作表名称
在以下示例中,创建了一个microsoftexcel实例,添加了一个新的工作簿。
使用foreach语句显示工作簿中每个工作表的名称。
此示例要求在运行示例的机器上正确安装microsoftexcel。
oExcel=CREATE("
oExcel.Workbooks.ADD
oMyVar.name
Excel报表巧生成
巧让FoxPro数据生成Excel报表
VisualFoxPro是应用广泛的前台数据库开发平台之一,因此在我们日常工作中时常会遇到DBF数据文件。
然而随着办公自动化的普及,越来越多的时候需要将DBF文件转化为Excel电子文档。
常用转化方法是在FoxPro中用Copy命令进行格式转化或直接用Excel打开DBF文件。
这两种方式虽然都能达到目的,却不能得到格式规范、可以直接打印输出的报表,且输出的Excel文件中,无法对数据类型进行有效转换,极易出现数据统计错误。
有没有更好的方法呢?
这里有一个更加通用的方法,在VFP中调用Excel,可以由DBF文件直接生成格式如下图所示一样复杂的Excel报表(如图1)。
Excel报表
具体过程如下:
编辑推荐文章
●新鲜接触Excel2000XP
●Excel2000公式应用的几条经验
●Excel2000函数应用之信息函数
假设我们要将表Agcallop.dbf文件输出为Excel格式文档,报表形如图1所示。
为使通用性更强,页面采用A4纸横向输出,默认字体为宋体10号,页脚处添加页号。
部分程序代码如下:
m.outfilename=putfile('
输出结果'
'
agcallop'
xls'
取导出文件名称
ef=CREATEOBJECT('
Excel.application'
调用Excel程序
ef.Workbooks.add
添加工作簿
ef.Worksheets("
sheet1"
激活第一个工作表
ef.visible=.t.
显示Excel界面
ef.Cells.Select
选择整张表
ef.Selection.Font.Size=10
设置整表默认字体大小为10
select0
useagcallop
选择被导出的表
num=reccount()
求导出总记录数
gotop
i=5
ef.range("
F1:
K1"
).Select
选择标题栏所在单元格
ef.Selection.Merge
合并单元格
withef.range("
F1"
设置标题及字体属性
.value='
客户服务部业务代表工作量情况统计表'
.Font.Name="
.Font.size=18
endwith
ef.Rows
(2).RowHeight=1/0.035
设置第二行高度为1cm
H2:
O2"
选定统计条件栏所在单元格
H2"
).Font.size=10
).HorizontalAlignment=4
设置内容对齐方式为右对齐,3为居中,4为右对齐
).value='
统计时间:
+dtoc(date())+'
打印日期:
+dtoc(date())
ef.Rows("
3:
4"
withef.Selection
.HorizontalAlignment=3
设置3、4行为水平对齐
.VerticalAlignment=2
垂直居中
.NumberFormatLocal="
@"
设置3、4行为字符型内容
ef.Range("
A3:
A4"
纵向合并第一列3、4行
A3"
工号'
设置第一列标题内容
ef.Columns("
A"
整列选择
ef.Selection.HorizontalAlignment=3
水平居中
A:
B"
ef.Selection.NumberFormatLocal="
设置A、B列为字符型内容
B3:
B4"
纵向合并第二列3、4行
B3"
姓名'
设置第二列标题内容
C3:
E3"
横向合并第三行C-E列
C3"
话务总量'
第三行大标题为“话务总量”的列
电话呼入量'
“话务总量”下第1个小标题“电话呼入量”
D4"
电话呼出量'
“话务总量”下第2个小标题“电话呼出量”
E4"
合计'
“话务总量”下第3个小标题“合计”
F3:
H3"
F3"
话务总时间'
F4"
呼入时间'
G4"
呼出时间'
H4"
I3:
K3"
I3"
单个话务平均时间'
I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual Foxpro中如何实现对EXCEL表格的操作 Foxpro 如何 实现 EXCEL 表格 操作