当前位置:文档之家› VF中控制EXCEL的常用操作

VF中控制EXCEL的常用操作

VF中控制EXCEL的常用操作myexcel=createobject('excel.application')&&创建一个对象myexcel.visible=.t.&&可见&&bookexcel=myexcel.workbooks.addbookexcel=myexcel.workbooks.open("C:\Documents andSettings\Administrator\桌面\学习\dd.xls")&&打开指定文件nrows=bookexcel.worksheets('sheet1')&&打开工作表UsedRange =edRange&&返回工作表中可使用的区域,UsedRange表的属性usedrange.columns.count&&计算共几列r=usedrange.rows.count&&汇总行c=usedrange.columns.count&&汇总列with myexcel.application.sheets('sheet3').select.sheets.add&&添加一个工作表 = 'ddddd'&&重命名表endwithmyexcel.Worksheets('sheet1').Activate&&选择表为当前工作表myexcel.cells(1,1).value='sss'&&1,1处的值为myexcel.activesheet.columns(2).columnwidth=15&&第2列的列宽设myexcel.activesheet.rows(2).rowheight=50&&设第2行的行高myexcel.activesheet.rows(2).insert&&第2行前插入一行myexcel.activesheet.columns(2).insert&&第2列前插入一列myexcel.activesheet.Cells(1,1).Font.size=25&&设置1,1的字体大小myexcel.activesheet.Cells(1,1)='黑体'&&设置字体myexcel.activesheet.Cells(1,1).clear&&清除内容myexcel.activesheet.range('A1:C2').select&&选择区域myexcel.selection.merge &&选择区域合并单元格myexcel.Range('a1').Formula='=sum(b2,b3,b4,b5)'&&在A1中键入一个公式myexcel.range('a1').ClearContentsmyexcel.activesheet.Columns('A:B').Select&&整列选中myexcel.Selection.NumberFormatLocal="@" &&设置选中的区域为字符型数据myexcel.activesheet.rows(1).selectmyexcel.Selection.EntireRow.Delete&&删除选中的行myexcel.Selection.columns(1).Delete&&删除第几的列myexcel.workbooks.close&&关闭工作区*myexcel.workbooks.close(.f.)&&关闭工作区不提示保存myexcel.quit&&excel*********************************************************生成一个表并显示可用的sheets&&oExcel = CREATE("Excel.Application")&&oExcel.Workbooks.ADD&&FOR EACH oMyVar IN oExcel.sheets&& ? &&NEXT oMyVar在 VFP 中控制 Excel 的小小经验集获取工作表名称在以下示例中,创建了一个 microsoft excel 实例,添加了一个新的工作簿。

使用 foreach 语句显示工作簿中每个工作表的名称。

此示例要求在运行示例的机器上正确安装 microsoft excel。

oExcel = CREATE("Excel.Application")oExcel.Workbooks.ADDFOR EACH oMyVar IN oExcel.sheets? NEXT oMyVarExcel报表巧生成巧让FoxPro数据生成Excel报表Visual FoxPro是应用广泛的前台数据库开发平台之一,因此在我们日常工作中时常会遇到DBF数据文件。

然而随着办公自动化的普及,越来越多的时候需要将DBF文件转化为Excel电子文档。

常用转化方法是在FoxPro中用Copy命令进行格式转化或直接用Excel打开DBF文件。

这两种方式虽然都能达到目的,却不能得到格式规范、可以直接打印输出的报表,且输出的Excel文件中,无法对数据类型进行有效转换,极易出现数据统计错误。

有没有更好的方法呢?这里有一个更加通用的方法,在VFP中调用Excel,可以由DBF文件直接生成格式如下图所示一样复杂的Excel报表(如图1)。

Excel报表具体过程如下:编辑推荐文章● 新鲜接触Excel 2000 XP● Excel 2000公式应用的几条经验● Excel 2000函数应用之信息函数假设我们要将表Agcallop.dbf文件输出为Excel格式文档,报表形如图1所示。

为使通用性更强,页面采用A4纸横向输出,默认字体为宋体10号,页脚处添加页号。

部分程序代码如下:m.outfilename=putfile('输出结果','agcallop','xls')&&取导出文件名称ef=CREATEOBJECT('Excel.application')&&调用Excel程序ef.Workbooks.add&&添加工作簿ef.Worksheets("sheet1").Activate&&激活第一个工作表ef.visible=.t.&&显示Excel界面ef.Cells.Select&&选择整张表ef.Selection.Font.Size = 10&&设置整表默认字体大小为10select 0use agcallop&&选择被导出的表num=reccount()&&求导出总记录数go topi=5ef.range("F1:K1").Select&&选择标题栏所在单元格ef.Selection.Merge&&合并单元格with ef.range("F1 ")&&设置标题及字体属性.value='客户服务部业务代表工作量情况统计表'="黑体".Font.size=18endwithef.Rows(2).RowHeight=1/0.035&&设置第二行高度为1cmef.range("H2:O2").Select&&选定统计条件栏所在单元格ef.Selection.Merge&&合并单元格ef.range("H2").Font.size=10ef.range("H2").HorizontalAlignment=4&&设置内容对齐方式为右对齐,3为居中,2为右对齐ef.range("H2").value='统计时间:'+dtoc(date())+' 打印日期:'+dtoc(date())ef.Rows("3:4").Selectwith ef.Selection.HorizontalAlignment = 3&&设置3、4行为水平对齐.VerticalAlignment = 2&&垂直居中.NumberFormatLocal = "@"&&设置3、4行为字符型内容endwithef.Range("A3:A4").Selectef.Selection.Merge&&纵向合并第一列3、4行ef.Range("A3").value='工号'&&设置第一列标题内容ef.Columns("A").Select&&整列选择ef.Selection.HorizontalAlignment = 3&&水平居中ef.Columns("A:B").Selectef.Selection.NumberFormatLocal = "@"&&设置A、B列为字符型内容ef.Range("B3:B4").Selectef.Selection.Merge&&纵向合并第二列3、4行ef.Range("B3").value='姓名'&&设置第二列标题内容ef.Columns("B").Select&&整列选择ef.Selection.HorizontalAlignment = 3&&水平居中ef.Range("C3:E3").Select&&横向合并第三行C-E列ef.Selection.Mergeef.Range("C3").value='话务总量'&&第三行大标题为“话务总量”的列ef.Range("C4").value='电话呼入量'&&“话务总量”下第1个小标题“电话呼入量”ef.Range("D4").value='电话呼出量'&&“话务总量”下第2个小标题“电话呼出量”ef.Range("E4").value='合计'&&“话务总量”下第3个小标题“合计”ef.Range("F3:H3").Selectef.Selection.Mergeef.Range("F3").value='话务总时间'ef.Range("F4").value='呼入时间'ef.Range("G4").value='呼出时间'ef.Range("H4").value='合计'ef.Range("I3:K3").Selectef.Selection.Mergeef.Range("I3").value='单个话务平均时间'ef.Range("I4").value='呼入时间'ef.Range("J4").value='呼出时间'ef.Range("K4").value='合计'ef.Range("L3:L4").Selectef.Selection.Mergeef.Range("L3").value='累计工作时间'ef.Range("M3:M4").Selectef.Selection.Mergeef.Range("M3").value='无效时间'ef.Range("N3:N4").Selectef.Selection.Mergeef.Range("N3").value='录入量'ef.Range("O3:O4").Selectef.Selection.Mergeef.Range("O3").value='有效时间比'接下来通过scan语句,依次为每一行每一列单元格赋值。

相关主题