VFP全面控制EXCEL.docx

上传人:scccc 文档编号:14557777 上传时间:2022-02-09 格式:DOCX 页数:17 大小:95.18KB
返回 下载 相关 举报
VFP全面控制EXCEL.docx_第1页
第1页 / 共17页
VFP全面控制EXCEL.docx_第2页
第2页 / 共17页
VFP全面控制EXCEL.docx_第3页
第3页 / 共17页
VFP全面控制EXCEL.docx_第4页
第4页 / 共17页
VFP全面控制EXCEL.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《VFP全面控制EXCEL.docx》由会员分享,可在线阅读,更多相关《VFP全面控制EXCEL.docx(17页珍藏版)》请在三一文库上搜索。

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.&显示Excel窗口e

2、ole.visible=.F.&不显示Excel 窗口eole.Caption=VFP应用程序调用 MicrosoftExcel& 更改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.ActiveWorkbo

3、ok.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).ColumnWidth=9.5eole.Sel

4、ection.Columns.AutoFit&最适合的列宽eole.ActiveSheet.PrintPreview&打印预览工作表Word文档资料指定边框线宽度LineStyle 值:1与7细实、2一细虚、9一双细实线eole.ActiveSheet.Range(A1:BE29).Borders(1).LineStyle=1eole.ActiveSheet.Range(A1:BE29).Borders(2).LineStyle=1eole.ActiveSheet.Range(A1:BE29).Borders(3).LineStyle=1eole.ActiveSheet.Range(A1:BE

5、29).Borders(4).LineStyle=1&设置四个边框线条的类型&设置四个边框线条的类型&设置四个边框线条的类型&设置四个边框线条的类型eole.ActiveSheet.Rows(1).Inserteole.ActiveSheet.Columns(2).Inserteole.cells(1,2).value=ABTMCeole.cells(2,2).value=&BBBBeole.ActiveSheet.Cells(1,4).ClearContents&在第1行之前插入一行&在第2列之前插入一列&给单元格赋值&给单元格赋值&去除单元格公式eole.ActiveSheet.Rows(

6、1).RowHeight=1/0.&设置指定行的高度单位:磅* 行高为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.Italic=.t. &eole.Range(A3:BE3).selecteole.selection.WrapText = .T.&eole.selection.HorizontalAlignment=3

7、& 设置字体设置字体大小设置整行字体为粗体设置字体为斜体自动换行水平方向 2左对齐,3居中,4右对齐eole.selection.VerticalAlignment = 2& 垂直方向 1靠上 ,2居中,3靠下eole.Range(A2:B2).selecteole.selection.MergeCells = .T.& 合并单兀eole.ActiveSheet.Range(b3:d3).Borders(2).Weight=3 &其中Borders参数:1一左、2一右、3一顶、4一底、5一斜、6一斜/;eole.selection.VerticalAlignment& 垂直方向 1靠上 ,2居

8、中,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.eole.ActiveSheet.PageSetup.FooterMargin=3/0.eole.ActiveSheet.Page

9、Setup.TopMargin=4/0.eole.ActiveSheet.PageSetup.BottomMargin=4/0.eole.ActiveSheet.PageSetup.LeftMargin=2/0.eole.ActiveSheet.PageSetup.RightMargin=2/0.eole.ActiveSheet.PageSetup.CenterHorizontally=.t.eole.ActiveSheet.PageSetup.CenterVertically=.t.eole.ActiveSheet.PageSetup.PaperSize=8(1 一窄行eole.Active

10、Sheet.PageSetup.Orientation=2&设置页眉到顶端边距为 2厘米&设置页脚到底边距为 3厘米&设置顶边距为4厘米&设置底边距为4厘米&设置左边距为2厘米&设置右边距为2厘米&设置页面水平居中&设置页面垂直居中&设置页面纸大小8 5 11 39 -宽行 14 11)&横向eole.ActiveSheet.PageSetup.PrintTitleRows=$1:$3 &定义固定行eole.ActiveSheet.PageSetup.PrintTitleColumns=$A:$C &定义固定列eole.ActiveSheet.PageSetup.CenterHeader=eo

11、le.ActiveSheet.PageSetup.CenterFooter=eole.Worksheets(Sheet1).Rows(18).PageBreak=1eole.ActiveSheet.Columns(4).PageBreak=0eole.ActiveSheet.PageSetup.PrintGridlines=.t.&14&BTMC &设置页眉表第&P页&设置页脚&在第18行之前插入分页符&在第4列之前删除分页符&打印单元格网线eole.ActiveSheet.PrintOut&打印输出工作表oExcel.ActiveSheet.PageSetup.Zoom=90&缩放90%4、

12、记录条数的利用*一般来讲,EXCEL表的来源为DBF文件,列、行应该是可以预知的USE 111COUNT TO AAAUSEeole.ActiveSheet.Range(FWQ).Borders(1).LineStyle=1eole.ActiveSheet.Range(FWQ).Borders(2).LineStyle=1eole.ActiveSheet.Range(FWQ).Borders(3).LineStyle=1eole.ActiveSheet.Range(FWQ).Borders(4).LineStyle=1&设置四个边框线条的类型&设置四个边框线条的类型&设置四个边框线条的类型&设

13、置四个边框线条的类型5、VFP下直接调用 EXCEL、WORD 文件*FWQ = A3:M+ALLT(STR(AAA+?) ? 为 EXCEL 表插入的行数DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING,;STRING lpszFile, STRING, STRING, INTEGERoperate= openShellExecute(0,operate,C:111.XLS,0,0,1)&EXCEL 文件ShellExecute(0,operate,C:111.DOC,0,0,1)&WORD 文件*VFP全面限制E

14、XCEL本文来自 CSDN 博客: :/2913.aspxVFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作.比方我们可以利用VFP进行处理数据,而利用 Excel的预览打印功能进行报表打印.这就需要我们在VFP中直接来限制 Excel.下面就在开发 VFP应用工程时对 Excel的限制作一下介绍:*!* 1 .创立 Excel对象oExcel= Createobject (Excel.application)*!* 2 .添加新工作簿oExcel.Workbooks. Add*!* 3 .设置第3个工作表为激活工作表oExcel.Works

15、heets(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 为数据库字段名)*!* 8 .设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns (1).ColumnWidth=5*!* 9

16、.设置指定行的高度(单位:磅)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.ActiveSheet. Columns .PageBreak=0*!* 12 .指定边框线宽度(Borders参数如下)o

17、le.ActiveSheet. Range (b3:d3).BorderS(2).Weight=3*!* 13.设置四个边框线条的类型oExcel.ActiveSheet. Range (b3:d3).BorderS(2).LineStyle=1Word文档资料(其中Borders参数:1一左、2一右、3一顶、4细实、2 一细虚、4 一点虚、9一双细实线)*!* 14.设置页眉oExcel.ActiveSheet.PageSetup.CenterHeader=*!* 15 .设置页眉(字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader=&50表示字体的

18、大小*!* 16.设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter=*!* 17.设置页脚(字体大小)oExcel.ActiveSheet.PageSetup.CenterFooter=&28表示字体的大小底、5一斜、6一斜 / ; LineStyle 值:1 与 7 -报表1报表1 &后面的50可以自定义,第&P页第&P页&后面的28可以自定义,*!* 18 .设置页眉到顶端边距为2厘米oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.*!* 19 .设置页脚到底边距为3厘米oExcel.ActiveShee

19、t.PageSetup.FooterMargin=3/0.*!* 20 .设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.*!* 21 .设置底边距为 4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.*!* 22 .设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.*!* 23 .设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.*!* 24 .设置页面水平居中oExcel.A

20、ctiveSheet.PageSetup.CenterHorizontally=.T.*!* 25 .设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.T.*!* 26 .设置页面纸大小 1 -窄行8511 39 -宽行1411 9:A4oExcel.ActiveSheet.PageSetup.Papersize=1*!* 27.打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.Word文档资料*!* 28 .拷贝整个工作表Word文档资料oExcel.ActiveSheet.

21、UsedRange.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 ,

22、设置字体大小oExcel.ActiveSheet.Cells(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.A

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

24、(Str(i)+、+xlapp mandBars(i).accName+(NAME:+xla pp mandBars(i). Name + INDEX:+ Alltrim (Str(xlapp mandBars(i). Index )+)bars2=xlapp mandbars(i).accChildCountFor j=1 To bars2Tryobj=xlapp mandbars(i). Controls (j)Str1=Str1+ Chr (13)+ +Alltrim (Str(j)+、+xlapp mandbars(i). Controls (j).accname+(ID:+ Allt

25、rim (Str(xlapp mandBars(i). Controls (j). Id)+)For k=1 To obj.accChildCountTryIf Not Empty (obj. Controls (k).accname )Str1=Str1+ Chr (13)+ +Alltrim (Str(k)+、+obj. Controls (k).accName+ (ID :+ Alltrim (Str(obj. Controls (k). Id)+)EndifCatchExitEndtryEndforCatchExitEndtryEndforWait Windows Alltrim (S

26、tr(i)+ / +Alltrim (Str(bars)+ +Str(i/bars*100,10,2)+% NowaitEndforSave 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

27、不正常)RETURNENDIF创立 EXCEL 实例:oExcel=CreateObject(Excel.Application)该实例创立后,任何对EXCEL的操作都针对该实例进行,关闭EXCEL后应释放该实例变量:RELEASE oExcel翻开已存在的 EXCEL 文件:oExcel.WorkBooks.Open(&lcFileName) &lcFileName 为 Excel 文件名打 开 带 有 读 写 密 码 的 文 件:oExcel.WorkBooks.Open(&lcFileName,.F.,&R_Pwd,&W_Pwd)&lcFileName- 文件名,R_Pwd-读密码,W_

28、Pwd-写密码,第二个参数表示读写方式:.T.只读,.F.读写设置新增工作薄的工作表数:oExcel.SheetsInNewWorkbook=1&新建工作表数量定为1个oExcel.WorkSheets.Count&如新增 EXCEL 工作薄:oExcel.WorkBooks.Add 当前工作薄工作表总数lnSheetCnt=oExcel.WorkSheets.count新增EXCEL工作表:oExcel.Sheets.Add &不带参数为增加至当前工作表之前 在指定工作表后新建工作表:oExcel.Sheets.Add,oExcel.SheetslnSheet,1,-4167&lnSheet

29、 为指定表号在最后工作表后新建工作表:oExcel.Sheets.Add,lnSheetsCnt,1,-4167&lnSheetCnt为工作表总数&激活工作表1&删除工作表2新表&重命名工作表3&最小化=-4140,最大化=-4137 ,&关闭.F.翻开.T.激活工作表:oExcel.WorkSheets(Sheet1).Activate 删除工作表:oExcel.WorkSheets(Sheet2).Delete 命名工作表:oExcel.WorkSheets(Sheet3).Name=使 EXCEL 可视:oExcel.Visible=.T. Excel 的窗口限制:oExcel.Wind

30、owState = -4140 复原=-4143后台操作报警关闭:oExcel.DisplayAlerts=.F.设置工作薄的标题: oExcel.Caption=Vfp 限制Excel操作当前工作薄换名存盘:oExcel.ActiveWorkBook.SaveAs(&lcFileName)换名存为文本文件:oExcel.ActiveWorkBook.Saveas(&lcFileName,-4158)加密码换名存盘oExcel.ActiveWorkbook.SaveAs(&lcFileName,-4143,3721,3721,.F., .F.)工作薄存盘:oExcel.WorkBooks.Sa

31、ve 关闭工作薄:oExcel.WorkBooks.Close退出EXCEL: oExcel.Quit &关闭EXCEL后通常应释放实例变量:Release oExcel打印当前工作簿oExcel.ActiveWorkBook.PrintOut1,oExcel.WorkSheets.count,1,.T.* 默认直接打印整个工作簿:oExcel.ActiveWorkBook.PrintOut*参数1-数值:当前工作簿中进行打印的起始工作表号默认1*参数2-数值:当前工作簿中进行打印的结束工作表号默认最末*参数3-数值:打印份数默认1*参数4-是预览打印还是直接打印:.T.-预览打印,.F.-直

32、接打印默认.F.打印当前工作表:oExcel.ActiveSheet.PrintOut&共八个参数*参数1-数值:起始页号,省略那么默认为开始位置*参数2-数值:终止页号,省略那么默认为最后一页*参数3-数值:打印份数,省略那么默认为1份*参数4-逻辑值:是否预览,省略那么默认为直接打印.F.*参数5-字符值:设置活动打印机名称,省略那么为默认打印机*参数6-逻辑值:是否输出到文件,省略那么默认为否(.F.),假设选.T.且参数8为空,那么Excel提示输入要输出的文件名*参数7-逻辑值:输出类型,省略那么默认为(.T.)逐份打印,否那么逐页打印*参数8-字符值:当参数6为.T.时,设置要打印

33、到的文件名用VFP限制EXECL的选择打印机的窗口oExcel.application.dialogs(8).show预览当前工作表:oExcel.ActiveSheet.PrintPreview当前工作表页面设置: oExcel.ActiveSheet.PageSetupWith oExcel.ActiveSheet.PageSetup.CenterFooter= 第+&P+页 共+&N+页.LeftFooter=制表人:+AllTrim(lcUserName).rightfooter= 制表日期:.TopMargin=2.5/0.BottomMargin=2.5/0.LeftMargin=

34、1.4/0.RightMargin=0.5/0.FooterMargin=3.5/0.PrintTitleRows = $1:$3&如:&页脚中间&页脚左边&页脚右边+Dtoc(Date()&*边距&底边距&左边距&右边距&脚高距&固定打印的*端标题行(第1-3行).Orientation = 1.PaperSize=9.PrintQuality = EndWith&打印方向:1为纵向,2为横向&纸类型:A4(注意:不同打印机与版本可能有不同)&打印精度EXCEL文件导至DBF中时,直接转换会出现致命错误,这时可选择从包含大量含公式的将EXCEL另存为文本文件再导至DBF中可保数据不丧失:oE

35、xcel.WorkBooks.Open(D:123.xls)oExcel.ActiveWorkBook.Saveas(D:123.txt,-4158 )&注意参数-4158不能错假设判断EXCEL或某个XLS文件是否已经翻开(防止不可预知的错误发生)LOCAL lOldSetOpt,mChanNumlOldSetOpt = DDESetOption(SAFETY)=DDESetOption(SAFETY,.F.)mChanNum = DDEInitiate(Excel,SYSTEM)*mChanNum = DDEInitiate(Excel,&lcFileName)如:D:123.XLSIF mChanNum -1=messagebox( 程序EXCEL已经翻开,请先将其关闭!,64,系统提示!)*= messagebox( 文件+lcFileName+已经翻开,请先将其关闭!,64,系统提示!)=DDETerminate(mChanNum)=DDESetOption(SAFETY,lOldSetOpt)RETURNENDIF&EXCEL是否已经翻开&lcFileName 某 XLS 文件名,Word文档资料Word文档资料

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1