《在vfp中直接来控制excel》由会员分享,可在线阅读,更多相关《在vfp中直接来控制excel(14页珍藏版)》请在金锄头文库上搜索。
1、在 VFP 中直接来控制 Excel*!*VFP 和 Excel 都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用 VFP 进行处理数据,而利用 Excel 的预览打印功能进行报表打印。这就需要我们在 VFP 中直接来控制 Excel。下面就在开发 VFP 应用项目时对 Excel 的控制作一下介绍: oExcel=Createobject(Excel.application) &创建 Excel 对象 *对象属性 oExcel.Visible=.T. &显示 Excel 窗口 oExcel.Caption=VFP 应用程序调用 Micro
2、soft Excel &更改 Excel 标题栏 oExcel.DisplayAlerts = .F. &关闭提示和警告消息,运行结束后,应将本属性设置回 True 值 oExcel.cells(1,4).Value=XM(XM 为数据库字段名) &给单元格赋值 *Workbooks 属性 oExcel.Workbooks.Add &添加新工作簿 oExcel.Workbooks.Open(c:templl.xls) &打开指定工作簿 oExcel.Workbooks.Close &关闭工作簿 oExcel.Quit &退出 Excel Release oExcel &只有释放对象变量, EX
3、CEL 进程才会完全关闭 *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:temp22.xls) &工作表另存为 oExcel.ActiveWorkbook.saved=.T. &放
4、弃存盘,避免出现保存对话框 oExcel.ActiveWorkbook.Save &存盘 oExcel.ActiveWorkbook.Close(.F.) &关闭工作簿 oExcel.ActiveWorkbook.Protect(密码,.T.,.T.) &保护工作薄(第一个.T.:保护工作簿结构,第二个.T.:保护工作簿窗口) *ActiveSheet 属性 oExcel.ActiveSheet.UsedRange.Copy &拷贝整个工作表 oExcel.ActiveSheet.PrintPreview &打印预览工作表 oExcel.ActiveSheet.PrintOut &打印输出工作
5、表 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
6、&设置指定列的宽度(单位:字符个数) 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).
7、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. &合并单元格 o
8、Excel.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双细实线) *页面设置 WITH oExcel.ActiveSheet.PageSetup .Ce
9、nterHeader=报表 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=
10、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窄行 8511 39宽行 1411 9:A4) .Orientation=1 &设置纸张方向(1-竖向,2-横向) .PrintTitleRows=$1:$2 &设置顶端标题
11、行,(每页都打印行标头(每页顶部出现的单元格的行)) .PrintGridlines=.T. &打印单元格网线 .Zoom=75 &设置缩放比例为 75% ENDWITH *单元格设置 WITH oExcel.ActiveSheet.Cells(1,1) &第一行第一列单元格 .Font.Name=黑体 &字体名字 .Font.Size=25 &大小 .Font.Italic=.T. &为斜体(Bold-粗体) .Value=数值 &给单元格赋值 .ClearContents &清除单元格公式 ENDWITH *以下为一些过程 *检测当前目录是否有同名的 EXCEL 表,如果有先删除,再另存
12、If !File(Sys(5) + Curdir() + result.xls) oExcel.ActiveWorkbook.SaveAs(Sys(5) + Curdir() + result.xls) Else lcFileName = loExcel.GetSaveAsFilename(result, Excel (*.xls), *.xls) If !Empty(lcFileName) If File(lcFileName) Delete File (lcFileName) Endif oExcel.ActiveWorkbook.SaveAs(lcFileName) Endif Endi
13、f *!*拷贝整个工作表(含格式) 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 列的值 *!* 显示某个单元格的批注内容 oExcel=Createobject(Excel.application) oExcel.Workbooks.Open(d:TESTtest
14、a.xls) oExcel.Visible=.T. ?oExcel.Range(B5).Comment.Text &显示 B5 单元格的批注内容 oExcel.Workbooks.Close oExcel.Quit Release oExcel *!* 将当前工作表中的已用区域(只读)存入数组。 strPath=D:TEST123.xls Local oExcel oExcel=Createobject(Excel.Application) oExcel.WorkBooks.Open(strPath) arrTableInfo=oExcel.ActiveSheet.UsedRange.Valu
15、e &将当前工作表中的已用区域(只读)存入数组。 oExcel.Quit Release oExcel Insert Into 表名 From arrTableInfo *!* 设置 excel 批注的字体(excel 2000 实现了,如下:) ole.Range(a3).Comment.Shape.Select & 此命令要求批注的 Visible=.t. ole.Selection.Font.Size=9 ole.Selection.Font.Name=黑体 ole.Selection.Font.bold=.F. 注:该组命令要求先选中批注框,否则写成 ole.Range(a3).Comment.Shape.Font.Size=9 则出错,不知为何! *!* 如何取得当前 EXCEL 表中工作表的数目及各工作表的名称? Clear Local lnSheetCount oExcel=Createobject(EXCEL.APPLICATION) &创建 Excel 对象 oExcel.WORKBOOKS.Open(c:111321.xls) &打开指定工作簿 With oExcel lnSheetCount=.W