关于vfp控制excel、word的常用东东

      数据库学习笔记 2007-4-15 17:56

关于vfp控制excel、word的常用东东
头大 mailto:ppp1117@163.com
大家对vfp中通过OLE调用excel、word完成报表、数据转换等功能还感兴趣,请按以下步骤得到完整的VBA帮
助:
1、安装ms office 97/2000;
2、启动excel、word,单击“工具”-“宏”-“Visual Basic编辑器”进入,再选“帮助”菜单即可(注
意:第一次使用VBA帮助会提示插入光盘安装VBA帮助的)。
现将excel下常见的东东搜集整理如下:
    1.创建Excel对象
    _ole_excel = CreateObject("Excel.Application")
    2.打开指定工作表
    _ole_excel.WorkBooks.Open("工作表文件名")    && 要打开的工作表名(xls)必须是全路径
    3.添加新工作簿
    _ole_excel.WorksBooks.Add
    4.激活指定的工作簿
    _ole_excel.WorkSheets("工作簿名").Activate
    5.设置Excel对象为可见,一般为调试用
    _ole_excel.visible = .t.
    6.更改Excel对象标题栏
    _ole_excel.Caption = "VFP程序OLE调用Excel"
    7.给单元格赋值
    _ole_excel.cells(行,列).value = 变量    && 重要,一般由VFP传递数据给excel即由此句,可以是
VFP支持的任何数据
    8.设置指定列的宽度
    _ole_excel.ActiveSheet.Columns(列).ColumnWidth = 字符个数
    9.设置指定行的高度(默认单位:磅)
    _ole_excel.ActiveSheet.Rows(行).RowHeight = 1/0.035   && 设定行高为1厘米,1磅=0.035厘米
    10.在第18行之前插入分页符
    _ole_excel.WorkSheets("Sheet1").Rows(18).PageBreak = 1
    11.在第4列之前删除分页符
    _ole_excel.ActiveSheet.Columns(4).PageBreak = 0
    12.设置四个边框线条的类型及风格
    _ole_excel.ActiveSheet.Range(范围).Borders(线型).LineStyle = 1  && 范围指起止的单元格,
如"B1:H9";
         Borders为边框线条:1-左,2-右,3-顶,4-底,5-斜线\,6-斜线/;
         LineStyle为线型参数:1-细实线,2-细虚线,……4-点虚线,……,9-双细实线
    13.指定边框线宽度(Borders为边框线条,参见上条;默认单位:磅)
    _ole_excel.ActiveSheet.Range(范围).Borders(线型).Weight = 2
    14.设置页眉
    _ole_excel.ActiveSheet.PageSetup.CenterHeader = "什么什么报表"
    15.设置页脚
    _ole_excel.ActiveSheet.PageSetup.CenterFooter = "第&P页"
    16.设置页眉到顶端边距
    _ole_excel.ActiveSheet.PageSetup.HeaderMargin = 2/0.035   && 2厘米
    17.设置页脚到底边边距
    _ole_excel.ActiveSheet.PageSetup.FooterMargin = 3/0.035   && 3厘米
    18.设置顶边距
    _ole_excel.ActiveSheet.PageSetup.TopMargin = 3/0.035      && 3厘米
    19.设置底边距
    _ole_excel.ActiveSheet.PageSetup.BottomMargin = 3/0.035   && 3厘米
    20.设置左边距
    _ole_excel.ActiveSheet.PageSetup.LeftMargin = 3/0.035     && 3厘米
    21.设置右边距
    _ole_excel.ActiveSheet.PageSetup.RightMargin = 3/0.035    && 3厘米
    22.设置页面水平居中
    _ole_excel.ActiveSheet.PageSetup.CenterHorizontally = .t.
    23.设置页面垂直居中
    _ole_excel.ActiveSheet.PageSetup.CenterVertically = .t.
    24.设置页面纸张大小,重要!很多网友需要的东东
    _ole_excel.ActiveSheet.PageSetup.PaperSize = 纸张类型  && 下面列出常见的纸张;
    可为下列 XlPaperSize 常量之一(某些打印机可能不支持所有的这些纸张大小);
    常量               数值  意义;
    xlPaperLetter         1  Letter (8-1/2 in. x 11 in.)
    xlPaperA3             8  A3 (297 mm x 420 mm)
    xlPaperA4             9  A4 (210 mm x 297 mm)
    xlPaperA4Small       10  A4 Small (210 mm x 297 mm)
    xlPaperA5            11  A5 (148 mm x 210 mm)
    xlPaperB4            12  B4 (250 mm x 354 mm)
    xlPaperB5            13  B5 (182 mm x 257 mm)
    xlPaperFanfoldUS     39  U.S. Standard Fanfold (14-7/8 in. x 11 in.)
    xlPaperUser              用户自定义
    25.打印单元格网线
    _ole_excel.ActiveSheet.PageSetup.PrintGridLines = .t.
    26.拷贝整个工作表
    _ole_excel.ActiveSheet.UsedRange.Copy
    27.拷贝指定区域
    _ole_excel.ActiveSheet.Range(范围).Copy
    28.粘贴
    _ole_excel.WorkSheet("工作簿").Range(单元格).PasteSpecial  && 单元格如"K9"
    29.在第2行之前插入一行
    _ole_excel.ActiveSheet.Rows(2).Insert
    30.在第2列之前插入一列
    _ole_excel.ActiveSheet.Columns(2).Insert
    31.设置字体
    _ole_excel.ActiveSheet.Cells(行,列).Font.Name = "黑体"
    32.设置字体大小(默认单位:点)
    _ole_excel.ActiveSheet.Cells(行,列).Font.Size = 16
    33.设置字体为斜体
    _ole_excel.ActiveSheet.Cells(行,列).Font.Italic = .t.
    34.设置整列字体为粗体
    _ole_excel.ActiveSheet.Columns(列).Font.Bold = .t.
    35.合并单元格,重要!
    _ole_excel.Worksheets("工作簿名").Range(范围).merge     && 范围必须指定起止的单元格,
如"A1:B4"
    36.撤销合并单元格,上述操作的逆操作
    _ole_excel.Worksheets("工作簿名").Range(范围).unmerge
    37.在单元格中设置公式(重要,一般可以用来实现计算汇总、求平均等很多功能)
    _ole_excel.cells(行,列).value = "=公式"    && 可以使用所有VBA内部函数,如sum()等。注意:不
能使用VFP的函数啊!
    38.清除单元格中的公式
    _ole_excel.cells(行,列).ClearContents
    39.打印预览工作表,
    _ole_excel.ActiveSheet.PrintPreview
    40.打印输出工作表
    _ole_excel.ActiveSheet.PrintOut
    41.工作表另存为
    _ole_excel.ActiveWorkBook.SaveAs("新的工作表文件名")
    42.放弃存盘
    _ole_excel.ActiveWorkBook.Saved = .t.   && 注意:一般得执行此句,免得出现保存对话框!很多网
友说excel退出后仍然驻留内存就因未正确处理保存操作!
    43.关闭工作簿
    _ole_excel.WorkBooks.Close
    44.退出Excel
    _ole_excel.Quit
现将word下常见的东东搜集整理如下:
    1.创建word对象
    _ole_word = CreateObject("Word.Basic")
    2.打开指定文档
    _ole_word.FileOpen("文档名")    && 要打开的文档(doc)必须是全路径
--------------------------------------
excel函数:
1、COUNT(value1,value2, ...)返回参数的个数。利用函数 COUNT 可以计算数组或单元格区域中数字项的个
数。
2、COUNTIF(range,criteria)计算给定区域内满足特定条件的单元格的数目。
Range   为需要计算其中满足条件的单元格数目的单元格区域。
Criteria   为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。例如,条件可以表
示为 32、"32"、">32"、"apples"。
3、COUNTBLANK(range)计算指定单元格区域中空白单元格的数目。
即使单元格中含有返回值为 ""(空文本)的公式,该单元格也会计算在内,但包含零值的单元格不计算在
内。
4、COUNTA(value1,value2, ...)返回参数组中非空值的数目。利用函数 COUNTA 可以计算数组或单元格区域
中数据项的个数。
value1, value2, ...   所要计数的值,参数个数为 1~30 个。在这种情况下,参数值可以是任何类型,它
们可以包括空字符 (""),但不包括空白单元格。如果参数是数组或单元格引用,则数组或引用中的空白单元
格将被忽略。如果不需要统计逻辑值、文字或错误值,请使用函数 COUNT。
▲生成Excel文件如何设定最适合的列宽?
●eole.Columns("B:B").EntireColumn.AutoFit

   sht.range("&sf").Rows.AutoFit
   sht.range("&sf").Columns.AutoFit 

--------------------------------------------------
COUNT(value1,value2, ...)
倒底如何调用才能知道EXCEL当前 SHEET的总行数与总列数??
愚昧。看不懂。只好烦请你详细说明。
刚试验: 35.合并单元格,重要!
    _ole_excel.Worksheets("工作簿名").Range(范围).merge     && 范围必须指定起止的单元格,
如"A1:B4"
       好象也合并不了!  myexcel.worksheetd("e:\zzz\xls99.xls").range("a1:b4").merge
-------------------------------------------------
1、当前行、当前列没意义;
2、水平居中:
_ole_excel.WorkSheets("Sheet1").Range("A1:A5").HorizontalAlignment = xlHAlignCenter
    垂直居中:
_ole_excel.WorkSheets("Sheet1").Rows(2).VerticalAlignment = xlVAlignCenter
3、合并的是工作簿而非工作表!你那句是指工作表啊
----------------------------------------------
当前的总行数、总列数:
    .ActiveSheet.UsedRange.rows.count
      .ActiveSheet.UsedRange.columns.count
---------------------------------------------
▲能够让打开的窗口作为VFP的子窗口吗?
●_ole_excel.visible = .t.
▲请问各位高手,在VFP6.0中生成Execl表格,如何设置“顶端标题行”和“左边标题列”
● With ActiveSheet.PageSetup
        .PrintTitleRows = "$ 1:$ 3"
        .PrintTitleColumns = ""
    End With
● eole.ActiveSheet.PageSetup.PrintTitleRows = "$ 1:$ 1"
eole.ActiveSheet.PageSetup.PrintTitleColumns = "$ A:$ A"

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}