发信人: nomean() 
整理人: hunter__fox(2002-03-16 23:24:47), 站内信件
 | 
 
 
【 在 ywg (大杨) 的大作中提到: 】
 : VFP的打印功能大家都知道很臭,现在我要用EXCEL先生成一个打印模板,
 : 然后在VFP程序中根据EXCEL模板来生成一个可以打印的EXCEL文件,最后
 : 直接调用EXCEL来控制打印的问题。
 : 现在的难题是如何在VFP中向一个EXCEL模板文件中传入指定的数据?
 :    .......
 附上一篇网络文档,也许对你有用。
 
 用VFP控制EXCEL
 
   原作者:焦赞康 
 
   VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合 起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用E xcel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下 面就在开发VFP应用项目时对Excel的控制作一下介绍:
 
   1.创建Excel对象
 
   eole=CREATEOBJECT(′Excel.application′)
 
   2.添加新工作簿
 
   eole.Workbooks.add
 
   3.设置第3个工作表为激活工作表
 
   eole.Worksheets(″sheet3″).Activate
 
   4.打开指定工作簿
 
   eole.Workbooks.Open(″c:\temp\ll.xls″)
 
   5.显示Excel窗口
 
   eole.visible=.t.
 
   6.更改Excel标题栏
 
   eole.Caption=″VFP应用程序调用Microsoft Excel″
 
   7.给单元格赋值
 
   eole.cells(1,4).value=XM(XM为数据库字段名)
 
   8.设置指定列的宽度(单位:字符个数)
 
   eole.ActiveSheet.Columns(1).ColumnWidth=5
 
   9.设置指定行的高度(单位:磅)
 
   eole.ActiveSheet.Rows(1).RowHeight=1/0.035
 
   (设定行高为1厘米,1磅=0.035厘米)
 
   10.在第18行之前插入分页符
 
   eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
 
   11.在第4列之前删除分页符
 
   eole.ActiveSheet.Columns(4).PageBreak=0
 
   12.指定边框线宽度(Borders参数如下)
 
   ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3
 
   13.设置四个边框线条的类型
 
   eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1
 
   (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineS tyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)
 
   14.设置页眉
 
   eole.ActiveSheet.PageSetup.CenterHeader=″报表1″
 
   15.设置页脚
 
   eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″
 
   16.设置页眉到顶端边距为2厘米
 
   eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
 
   17.设置页脚到底边距为3厘米
 
   eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
 
   18.设置顶边距为2厘米
 
   eole.ActiveSheet.PageSetup.TopMargin=2/0.035
 
   19.设置底边距为4厘米
 
   eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
 
   20.设置左边距为2厘米
 
   veole.ActiveSheet.PageSetup.LeftMargin=2/0.035
 
   21.设置右边距为2厘米
 
   eole.ActiveSheet.PageSetup.RightMargin=2/0.035
 
   22.设置页面水平居中
 
   eole.ActiveSheet.PageSetup.CenterHorizontally=.t.
 
   23.设置页面垂直居中
 
   eole.ActiveSheet.PageSetup.CenterVertically=.t.
 
   24.设置页面纸张大小(1-窄行8511 39-宽行1411)
 
   eole.ActiveSheet.PageSetup.PaperSize=1
 
   25.打印单元格网线
 
   eole.ActiveSheet.PageSetup.PrintGridlines=.t.
 
   26.拷贝整个工作表
 
   eole.ActiveSheet.UsedRange.Copy
 
   27.拷贝指定区域
 
   eole.ActiveSheet.Range(″A1:E2″).Copy
 
   28.粘贴
 
   eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial
 
   29.在第2行之前插入一行
 
   eole.ActiveSheet.Rows(2).Insert
 
   30.在第2列之前插入一列
 
   eole.ActiveSheet.Columns(2).Insert
 
   31.设置字体
 
   eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″
 
   32.设置字体大小
 
   eole.ActiveSheet.Cells(1,1).Font.Size=25
 
   33.设置字体为斜体
 
   eole.ActiveSheet.Cells(1,1).Font.Italic=.t.
 
   34.设置整列字体为粗体
 
   eole.ActiveSheet.Columns(1).Font.Bold=.t.
 
   35.清除单元格公式
 
   eole.ActiveSheet.Cells(1,4).ClearContents
 
   36.打印预览工作表
 
   eole.ActiveSheet.PrintPreview
 
   37.打印输出工作表
 
   eole.ActiveSheet.PrintOut
 
   38.工作表另为
 
   eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)
 
   39.放弃存盘
 
   eole.ActiveWorkbook.saved=.t.
 
   40.关闭工作簿
 
   eole.Workbooks.close
 
   41.退出Excel
 
   eole.quit
 
   以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及 中文Windows 98。
  
 
  -- 我颤颤地伸出手
 却没能握住一丝温柔
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.119.46]
  | 
 
 
 |