VFP全面控制EXCEL--精选文档_第1页
VFP全面控制EXCEL--精选文档_第2页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、最近正好有空,看到不少人对VFP控制EXCEL有兴趣,现将上次的“精华贴”重新整理一下,供各位爱好者参考!oExcel.Selection.NumberFormatLocal = &把被选定的单元格设为文本格式1、对象的创建与关闭*eole=CREATEOBJECT(Excel.application)& 创建Excel对象eole.Workbooks.add& 添加新工作簿eole.Worksheets(sheet3).Activate& 设置第3个工作表为激活工作表eole.Workbooks.Open(D:ABC11.xls)& 打开指定工作簿eole.visible=.t.& 显示Ex

2、cel窗口eole.visible=.F.& 不显示Excel窗口eole.Caption=VFP应用程序调用Microsoft Excel& 更改Excel标题栏eole.ActiveWorkbook.SaveAs(D:ABC22.xls)& 工作表另为eole.ActiveWorkbook.saved=.t.& 放弃存盘eole.ActiveSheet.UsedRange.Copy& 拷贝整个工作表eole.ActiveSheet.Range(A1:E2).Copy& 拷贝指定区域eole.WorkSheet(Sheet2).Range(A1).PasteSpecial& 粘贴eole.A

3、ctiveWorkbook.Save& 存盘(自动存盘不提问)eole.Workbooks.close& 关闭工作簿eole.quit& 退出Excel2、单元格的设置*eole.ActiveSheet.Columns(D:D).Delete& 删除列eole.ActiveSheet.Columns(A:B).Delete& 删除列 eole.ActiveSheet.Columns(1).ColumnWidth=20& 列的宽度(单位:字符个数)eole.ActiveSheet.Columns(2).ColumnWidth=30eole.ActiveSheet.Columns(C:BE).Co

4、lumnWidth=9.5eole.Selection.Columns.AutoFit& 最适合的列宽eole.ActiveSheet.Range(b3:d3).Borders(2).Weight=3& 指定边框线宽度(其中Borders参数:1左、2右、3顶、4底、5斜、6斜/;LineStyle值:1与7细实、2细虚、4点虚、9双细实线)eole.ActiveSheet.Range(A1:BE29).Borders(1).LineStyle=1 & 设置四个边框线条的类型eole.ActiveSheet.Range(A1:BE29).Borders(2).LineStyle=1 & 设置四

5、个边框线条的类型eole.ActiveSheet.Range(A1:BE29).Borders(3).LineStyle=1 & 设置四个边框线条的类型eole.ActiveSheet.Range(A1:BE29).Borders(4).LineStyle=1 & 设置四个边框线条的类型eole.ActiveSheet.Rows(1).Insert& 在第1行之前插入一行eole.ActiveSheet.Columns(2).Insert& 在第2列之前插入一列eole.cells(1,2).value=ABTMC& 给单元格赋值eole.cells(2,2).value=&BBBB& 给单元

6、格赋值eole.ActiveSheet.Cells(1,4).ClearContents& 清除单元格公式eole.ActiveSheet.Rows(1).RowHeight=1/0.035& 设置指定行的高度(单位:磅)*(行高为1厘米,1磅=0.035厘米)eole.ActiveSheet.ROWS(1).Font.Name=黑体& 设置字体eole.ActiveSheet.ROWS(1).Font.Size=14& 设置字体大小eole.ActiveSheet.ROWS(1).Font.Bold=.t.& 设置整行字体为粗体eole.ActiveSheet.Cells(1,1).Font

7、.Italic=.t.& 设置字体为斜体eole.Range(A3:BE3).selecteole.selection.WrapText = .T.& 自动换行eole.selection.HorizontalAlignment=3& 水平方向2左对齐,3居中,4右对齐eole.selection.VerticalAlignment = 2& 垂直方向1靠上,2居中,3靠下eole.Range(A2:B2).selecteole.selection.MergeCells = .T.& 合并单元eole.selection.HorizontalAlignment=2& 水平方向2左对齐,3居中,

8、4右对齐eole.selection.VerticalAlignment = 2& 垂直方向1靠上,2居中,3靠下eole.Range(A5:M5).selecteole.Selection.Interior.ColorIndex = 34& 设置行颜色为淡兰eole.ActiveSheet.Range(A1:BE29).NumberFormatLocal = ;_ * #,#0.00_ ; _ * -#,#0.00_ ;_ * +-+?_ ;_ _ & 指定区域内的数字显示格式3、打印页面的设置*eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035&

9、 设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.035& 设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.TopMargin=4/0.035& 设置顶边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.035& 设置底边距为4厘米eole.ActiveSheet.PageSetup.LeftMargin=2/0.035& 设置左边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.035& 设置右边距为2厘

10、米eole.ActiveSheet.PageSetup.CenterHorizontally=.t.& 设置页面水平居中 eole.ActiveSheet.PageSetup.CenterVertically=.t.& 设置页面垂直居中eole.ActiveSheet.PageSetup.PaperSize=8& 设置页面纸张大小(1窄行8 5 11 39宽行14 11)eole.ActiveSheet.PageSetup.Orientation=2& 横向eole.ActiveSheet.PageSetup.PrintTitleRows=$1:$3& 定义固定行eole.ActiveShee

11、t.PageSetup.PrintTitleColumns=$A:$C& 定义固定列eole.ActiveSheet.PageSetup.CenterHeader= &14&BTMC& 设置页眉eole.ActiveSheet.PageSetup.CenterFooter=表_第&P页& 设置页脚eole.Worksheets(Sheet1).Rows(18).PageBreak=1& 在第18行之前插入分页符eole.ActiveSheet.Columns(4).PageBreak=0& 在第4列之前删除分页符eole.ActiveSheet.PageSetup.PrintGridlines

12、=.t.& 打印单元格网线eole.ActiveSheet.PrintPreview& 打印预览工作表eole.ActiveSheet.PrintOut& 打印输出工作表oExcel.ActiveSheet.PageSetup.Zoom=90 &缩放90%4、记录条数的利用*一般来讲,EXCEL表的来源为DBF文件,列、行应该是可以预知的USE 111COUNT TO AAAUSEFWQ= A3:M+ALLT(STR(AAA+?)?为EXCEL表插入的行数eole.ActiveSheet.Range(FWQ).Borders(1).LineStyle=1& 设置四个边框线条的类型eole.Ac

13、tiveSheet.Range(FWQ).Borders(2).LineStyle=1& 设置四个边框线条的类型eole.ActiveSheet.Range(FWQ).Borders(3).LineStyle=1& 设置四个边框线条的类型eole.ActiveSheet.Range(FWQ).Borders(4).LineStyle=1& 设置四个边框线条的类型5、VFP下直接调用EXCEL、WORD文件*DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING, ;STRING lpszFile, STRING, STRI

14、NG, INTEGERoperate= openShellExecute(0,operate,C:111.XLS,0,0,1)& EXCEL文件ShellExecute(0,operate,C:111.DOC,0,0,1)& WORD文件*VFP全面控制EXCEL本文来自CSDN博客:VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:*!* 1创建Excel对象

15、oExcel=Createobject(Excel.application)*!* 2添加新工作簿oExcel.Workbooks.Add*!* 3设置第3个工作表为激活工作表oExcel.Worksheets(sheet3).Activate*!* 4打开指定工作簿oExcel.Workbooks.Open(c:templl.xls)*!* 5显示Excel窗口oExcel.Visible=.T.*!* 6更改Excel标题栏oExcel.Caption=VFP应用程序调用Microsoft Excel*!* 7给单元格赋值oExcel.cells(1,4).Value=XM(XM为数据库字

16、段名)*!* 8设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns(1).ColumnWidth=5*!* 9设置指定行的高度(单位:磅)oExcel.ActiveSheet.Rows(1).RowHeight=1(设定行高为1磅,1磅=0.035厘米)oExcel.ActiveSheet.Rows(50:100).RowHeight=1 &设置第50行至100行的高度*!* 10在第18行之前插入分页符oExcel.Worksheets(Sheet1).Rows(18).PageBreak=1*!* 11在第4列之前删除分页符oExcel.ActiveSh

17、eet.Columns(4).PageBreak=0*!* 12指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(b3:d3).BorderS(2).Weight=3*!* 13设置四个边框线条的类型oExcel.ActiveSheet.Range(b3:d3).BorderS(2).LineStyle=1(其中Borders参数:1左、2右、3顶、4底、5斜、6斜/;LineStyle值:1与7细实、2细虚、4点虚、9双细实线)*!* 14设置页眉oExcel.ActiveSheet.PageSetup.CenterHeader=报表1*!* 15设置页眉(

18、字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader=&50报表1 &后面的50可以自定义,表示字体的大小*!* 16设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter=第&P页*!* 17.设置页脚(字体大小)oExcel.ActiveSheet.PageSetup.CenterFooter=&28第&P页 &后面的28可以自定义,表示字体的大小*!* 18设置页眉到顶端边距为2厘米oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035*!* 19设置页脚到底边距为3厘

19、米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035*!* 20设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.035*!* 21设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035*!* 22设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.035*!* 23设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.035

20、*!* 24设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.T.*!* 25设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.T.*!* 26设置页面纸张大小(1窄行8511 39宽行1411 9:A4)oExcel.ActiveSheet.PageSetup.Papersize=1*!* 27打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.*!* 28拷贝整个工作表oExcel.ActiveSheet.Use

21、dRange.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.Ce

22、lls(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.CommandBa

23、rs(1).Controls(1).accChild(18).Execute &打印(菜单序号18为Excel2003的打印项)&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=Getobject(,excel.sheet)XlApp=oXLS.ApplicationXlSheet=XlApp.ActiveSheetbars=xlapp.CommandBars.CountStr1=For i=1 To bars Str1=Str1+Chr(13)+Alltrim(Str(i)+、+xlapp.CommandBars(i).accName+(NAME:+

24、xlapp.CommandBars(i).Name+ INDEX:+Alltrim(Str(xlapp.CommandBars(i).Index)+) bars2=mandbars(i).accChildCount For j=1 To 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)+) For k=1 To obj.acc

25、ChildCount Try If Not Empty(obj.Controls(k).accname ) Str1=Str1+Chr(13)+ +Alltrim(Str(k)+、+obj.Controls(k).accName+ (ID:+ Alltrim(Str(obj.Controls(k).Id)+) Endif Catch Exit Endtry Endfor Catch Exit Endtry Endfor Wait Windows Alltrim(Str(i)+ / +Alltrim(Str(bars)+ +Str(i/bars*100,10,2)+% NowaitEndforS

26、ave To Xls.txt All Like Str1Modify Command Xls.txtReturn访问EXCEL:ExcelSheet = GetObject(,Excel.Sheet) 返回结果为类,则成功。例:ExcelSheet = GetObject(,Excel.Sheet)If Type(ExcelSheet)#O THEN =MessageBox( 访问Excel失败!请检查你的系统是否正确安装 Excel 软件!,48,Excel不正常) RETURNENDIF创建EXCEL实例:oExcel=CreateObject(Excel.Application) 该实例

27、创建后,任何对EXCEL的操作都针对该实例进行,关闭EXCEL后应释放该实例变量:RELEASE oExcel打开已存在的EXCEL文件:oExcel.WorkBooks.Open(&lcFileName) &lcFileName为Excel文件名 打开带有读写密码的文件:oExcel.WorkBooks.Open(&lcFileName,.F.,&R_Pwd,&W_Pwd) &lcFileName-文件名,R_Pwd-读密码,W_Pwd-写密码,第二个参数表示读写方式:.T.只读,.F.读写设置新增工作薄的工作表数:oExcel.SheetsInNewWorkbook=1 &新建工作表数量定

28、为1个新增EXCEL工作薄:oExcel.WorkBooks.Add当前工作薄工作表总数:oExcel.WorkSheets.Count &如:lnSheetCnt=oExcel.WorkSheets.count新增EXCEL工作表:oExcel.Sheets.Add &不带参数为增加至当前工作表之前 在指定工作表后新建工作表:oExcel.Sheets.Add(,oExcel.Sheets(lnSheet),1,-4167) &lnSheet为指定表号 在最后工作表后新建工作表:oExcel.Sheets.Add(,lnSheetsCnt,1,-4167) &lnSheetCnt为工作表总数

29、激活工作表:oExcel.WorkSheets(Sheet1).Activate &激活工作表1 删除工作表:oExcel.WorkSheets(Sheet2).Delete &删除工作表2 命名工作表:oExcel.WorkSheets(Sheet3).Name=新表 &重命名工作表3使EXCEL可视:oExcel.Visible=.T.Excel的窗口控制:oExcel.WindowState = -4140 &最小化=-4140,最大化=-4137,还原=-4143后台操作报警关闭:oExcel.DisplayAlerts=.F. &关闭(.F.) 打开(.T.)设置工作薄的标题:oEx

30、cel.Caption=Vfp控制Excel操作当前工作薄换名存盘:oExcel.ActiveWorkBook.SaveAs(&lcFileName) 换名存为文本文件:oExcel.ActiveWorkBook.Saveas(&lcFileName,-4158) 加密码换名存盘:oExcel.ActiveWorkbook.SaveAs(&lcFileName,-4143,3721,3721,.F., .F.)工作薄存盘:oExcel.WorkBooks.Save关闭工作薄:oExcel.WorkBooks.Close退出EXCEL:oExcel.Quit &关闭EXCEL后通常应释放实例变量

31、:Release oExcel打印当前工作簿:oExcel.ActiveWorkBook.PrintOut(1,oExcel.WorkSheets.count,1,.T.) *默认直接打印整个工作簿:oExcel.ActiveWorkBook.PrintOut() *参数1-数值:当前工作簿中进行打印的起始工作表号(默认1) *参数2-数值:当前工作簿中进行打印的结束工作表号(默认最末) *参数3-数值:打印份数(默认1) *参数4-是预览打印还是直接打印:.T.-预览打印,.F.-直接打印(默认.F.)打印当前工作表:oExcel.ActiveSheet.PrintOut() &共八个参数

32、*参数1-数值:起始页号,省略则默认为开始位置 *参数2-数值:终止页号,省略则默认为最后一页 *参数3-数值:打印份数,省略则默认为1份 *参数4-逻辑值:是否预览,省略则默认为直接打印(.F.) *参数5-字符值:设置活动打印机名称,省略则为默认打印机 *参数6-逻辑值:是否输出到文件,省略则默认为否(.F.),若选.T.且参数8为空,则Excel提示输入要输出的文件名 *参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印 *参数8-字符值:当参数6为.T.时,设置要打印到的文件名用VFP控制EXECL的选择打印机的窗口 oExcel.application.dialogs(8).show预览当前工作表:oExcel.ActiveSheet.PrintPrev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论