VFP与Excel都可以用来进行处理数据库表格Word文档格式.docx
- 文档编号:3200078
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:25
- 大小:33.58KB
VFP与Excel都可以用来进行处理数据库表格Word文档格式.docx
《VFP与Excel都可以用来进行处理数据库表格Word文档格式.docx》由会员分享,可在线阅读,更多相关《VFP与Excel都可以用来进行处理数据库表格Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
).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"
*15.设置页眉(字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader="
50报表1"
'
后面的50可以自定义,表示字体的大小
*16.设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter="
第&
P页"
*17.设置页脚(字体大小)oExcel.ActiveSheet.PageSetup.CenterFooter="
28第&
后面的28可以自定义,表示字体的大小
*18.设置页眉到顶端边距为2厘MoExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035
*19.设置页脚到底边距为3厘MoExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035
*20.设置顶边距为2厘MoExcel.ActiveSheet.PageSetup.TopMargin=2/0.035
*21.设置底边距为4厘MoExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035
*22.设置左边距为2厘MoExcel.ActiveSheet.PageSetup.LeftMargin=2/0.035
*23.设置右边距为2厘MoExcel.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.ApplicationXlSheet=XlApp.ActiveSheet
bars=xlapp.CommandBars.CountStr1='
For
i=1
To
bars
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
j=1
bars2
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))+'
k=1
obj.accChildCount
If
Not
Empty(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
Endfor
SaveToXls.txt
AllLike
Str1ModifyCommandXls.txtReturn
*41.工作表另存为oExcel.ActiveWorkbook.SaveAs("
/temp/22.xls"
)*检测当前目录是否有同名的EXCEL表,如果有先删除,再另存If
!
File(Sys(5)+
Curdir()+"
result.xls"
oExcel.ActiveWorkbook.SaveAs(Sys(5)+
)Else
lcFileName=loExcel.GetSaveAsFilename("
result"
"
Excel(*.xls),*.xls"
If
Empty(lcFileName)
IfFile(lcFileName)
DeleteFile
(lcFileName)
oExcel.ActiveWorkbook.SaveAs(lcFileName)
Endif*!
*42.放弃存盘&
避免出现保存对话框oExcel.ActiveWorkbook.saved=.T.
*43.存盘oExcel.ActiveWorkbook.Save
*44.关闭工作簿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横排Endwith
With
crfole.Range("
C4"
)
.MergeCells=.T.
.WrapText=.F.
.Orientation=0
.AddIndent=.F.
.ShrinkToFit=.F.Endwith
*48.文本对齐oExcel.Range("
c4"
).HorizontalAlignment=1
水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)oExcel.Range("
).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企业版下运行通过,运行环境为Excel97及中文Windows98
*50.显示某个单元格的批注内容oExcel=Createobject("
oExcel.Workbooks.Open("
d:
/TEST/testa.xls"
oExcel.Visible=.T.
?
oExcel.Range("
).Comment.Text
显示B5单元格的批注内容oExcel.Workbooks.CloseoExcel.QuitRelease
oExcel
*51.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;
这样每次出现需用户应答的消息时,MicrosoftExcel将选择默认应答。
如果将本属性设置为False,那么宏运行结束后,MicrosoftExcel并不自动将其设置回True。
故当宏运行结束后,都应将本属性设置回True值。
*56.将当前工作表中的已用区域(只读)存入数组。
strPath='
D:
/TEST/123.xls'
Local
oExcel=Createobject("
Excel.Application"
oExcel.WorkBooks.Open(strPath)
arrTableInfo=oExcel.ActiveSheet.UsedRange.Value
将当前工作表中的已用区域(只读)存入数组。
oExcel.QuitRelease
oExcelInsertInto
表名
From
arrTableInfo
*57.设置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则出错,不知为何!
*58.如何取得当前EXCEL表中工作表的数目及各工作表的名称?
Clear
lnSheetCount
EXCEL.APPLICATION"
创建Excel对象oExcel.WORKBOOKS.Open("
/111/321.xls"
打开指定工作簿With
lnSheetCount=.WorkBooks
(1).Sheets.Count
统计工作表数量Endwith?
当前EXCEL表中工作表的数目为:
+Alltrim(Str(lnSheetCount))ForEach
oMyVar
In
oExcel.sheets
?
当前EXCEL表中工作表的名称分别为'
+oMyVar.Name
显示Excel表中所有工作表Next
oMyVar
oExcel.WORKBOOKS.Close
关闭工作簿oExcel.Quit
退出Excel
*59.获取工作表名称在以下示例中,创建了一个microsoftexcel实例,添加了一个新的工作簿。
使用foreach语句显示工作簿中每个工作表的名称。
此示例要求在运行示例的机器上正确安装microsoftexcel。
oExcel=
Create("
oExcel.Workbooks.Add
ForEach
oMyVar.NameNext
*60.虽然用APPENDFromtx.XlsTypeXL8可以更简单的追加数据,但有时会导致程序非法错误退出(除非先另存为Excel5.0)
*61.VFP控制EXCL文件另存为DBF(EXCEL后台运行)fil=Thisform.List1.Value
其值为一个包含路径的文件名oExcel=Createobject('
Excel.application'
oExcel.Workbooks.Open(fil)
打开文件oExcel.Selection.AutoFilter
关闭(如果无则打开)自动筛选oExcel.Range("
F1000"
).Select
选中从第1行到1000行的前6列数据(另存后只有这些数据)asfil=Strtran(Upper(Strtran(fil,Substr(fil,1,Rat('
/'
fil)),'
/windows/desktop/cphz/'
)),'
.XLS'
'
.dbf'
)&
要保存的文件名IfFile(asfil)
DeleteFile
asfilEndifoExcel.ActiveWorkbook.SaveAs(asfil,8)
另存为DBFoExcel.ActiveWorkbook.saved=.T.
不保存当前EXCEL表oExcel.Workbooks.Close
关闭表oExcel.Quit
退出EXCELRelease
释放变量
*************VFP中例子******************lcFileName='
/TEST.XLS'
oExcel=Createobject('
oExcel.Workbooks.Open('
lcFileName'
打开文件R=oExcel.SHEETS
(1).UsedRange.Rows.Count
有数据的总行数C=oExcel.SHEETS
(1).UsedRange.Columns.Count
有数据的总列数oExcel.Cells(R,C).Select
选中数据oExcel.Selection.NumberFormatLocal="
@"
把被选定的单元格设为文本格式oExcel.Columns.AutoFit
让所有的列宽都自动调整oExcel.DisplayAlerts=.F.
oExcel.ActiveWorkbook.SaveAs('
/TEST.DBF'
8)
另存为DBF
*oExcel.ActiveWorkbook.SaveAs('
/NewTest.xls'
39)&
另存为5.0的Excel,或用43表示95/97格式oExcel.ActiveWorkbook.saved=.T.
释放变量Messagebox('
Excel文件:
/TEST.XLS另存为D:
/TEST.DBF完成!
64,'
信息提示'
)***********VB例子*************
功能:
VB调用Excel,将一个Excel文件另存为Dbf。
前提:
要安装Excel'
DimoExcel
AsObjectlcSFileName="
/test.xls"
源Excel文件名
lcDFileName="
/test1.dbf"
目标Dbf文件名Set
Createobject("
创建Excel对象
oExcel.Workbooks.Open
(lcSFileName)
打开Excel表*R=oExcel.SHEETS
(1).UsedRange.ROWS.Count'
有数据的总行数
*C=oExcel.SHEETS
(1).UsedRange.Columns.Count'
有数据的总列数
*oExcel.Cells(R,C).Select'
选中数据
*oExcel.Columns.AutoFit'
让所有的列宽都自动调整oExcel.DisplayAlerts=Flase
不显示提示框
oExcel.ActiveWorkbook.SaveAs
FileName:
=lcDFileName,FileFormat:
=8
oExcel.ActiveWorkbook.saved=Ture
不保存当前EXCEL表
oExcel.Workbooks.Close
关闭表
oExcel.Quit
退出EXCELSet
oExcel=Nothing
释放对象
MsgBox("
"
lcSFileName&
另存为"
lcDFi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP Excel 可以 用来 进行 处理 数据库 表格