ImageVerifierCode 换一换
格式:DOCX , 页数:209 ,大小:92.48KB ,
资源ID:8692188      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8692188.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Visual Foxpro中如何实现对EXCEL表格的操作.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Visual Foxpro中如何实现对EXCEL表格的操作.docx

1、Visual Foxpro中如何实现对EXCEL表格的操作Visual Foxpro中如何实现对EXCEL表格的操作VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:1创建Excel对象oExcel=CREATEOBJECT(Excel.application)2添加新工作簿oExcel.Workbooks.add3设置第3个工作表为激活工作表oExcel.Wo

2、rksheets(sheet3).Activate4打开指定工作簿oExcel.Workbooks.Open(c:templl.xls)5显示Excel窗口oExcel.visible=.t.6更改Excel标题栏oExcel.Caption=VFP应用程序调用Microsoft Excel7给单元格赋值oExcel.cells(1,4).value=XM(XM为数据库字段名)8设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns(1).ColumnWidth=59设置指定行的高度(单位:磅)oExcel.ActiveSheet.Rows(1).RowHeig

3、ht=1(设定行高为1磅,1磅=0.035厘米)oExcel.ActiveSheet.Rows(50:100).RowHeight=1 &设置第50行至100行的高度10在第18行之前插入分页符oExcel.Worksheets(Sheet1).Rows(18).PageBreak=111在第4列之前删除分页符oExcel.ActiveSheet.Columns(4).PageBreak=012指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(b3:d3).Borders(2).Weight=313设置四个边框线条的类型oExcel.ActiveSheet.R

4、ange(b3:d3).Borders(2).LineStyle=1(其中Borders参数:1左、2右、3顶、4底、5斜、6斜/;LineStyle值:1与7细实、2细虚、4点虚、9双细实线)14设置页眉oExcel.ActiveSheet.PageSetup.CenterHeader=报表114设置页眉(字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader=&50报表1 &后面的50可以自定义,表示字体的大小15设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter=第&P页15.设置页脚(字体大小)oExcel.

5、ActiveSheet.PageSetup.CenterFooter=&28第&P页 &后面的28可以自定义,表示字体的大小16设置页眉到顶端边距为2厘米oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.03517设置页脚到底边距为3厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.03518设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.03519设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4

6、/0.03520设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.03521设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.03522设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.t.23设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.t.24设置页面纸张大小(1窄行8 5 11 39宽行14 11 9:A4)oExcel.ActiveSheet.Pa

7、geSetup.PaperSize=125打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.t.26拷贝整个工作表oExcel.ActiveSheet.UsedRange.Copy27拷贝指定区域oExcel.ActiveSheet.Range(A1:E2).Copy28粘贴oExcel.WorkSheet(Sheet2).Range(A1).PasteSpecial29在第2行之前插入一行oExcel.ActiveSheet.Rows(2).Insert30在第2列之前插入一列oExcel.ActiveSheet.Columns(2).I

8、nsert31设置字体oExcel.ActiveSheet.Cells(2,1).Font.Name=黑体32设置字体大小oExcel.ActiveSheet.Cells(1,1).Font.Size=2533设置字体为斜体oExcel.ActiveSheet.Cells(1,1).Font.Italic=.t.34设置整列字体为粗体oExcel.ActiveSheet.Columns(1).Font.Bold=.t.35清除单元格公式oExcel.ActiveSheet.Cells(1,4).ClearContents36打印预览工作表oExcel.ActiveSheet.PrintPrev

9、iew37打印输出工作表oExcel.ActiveSheet.PrintOut38. oExcel.CommandBars(1).Controls(1).accChild(18).Execute &打印(菜单序号18为Excel2003的打印项) &不同版本Excel的菜单序号可以通过以下程序取得 *(需要在VFP7.0以上运行) oXls=GETOBJECT(,excel.sheet) XlApp=oXLS.APPLICATION XlSheet=XlApp.ActiveSheet bars=xlapp.CommandBars.COUNT STR= FOR i=1 TO bars STR=S

10、TR+CHR(13)+ALLTRIM(STR(i)+、+xlapp.CommandBars(i).accName+(NAME:+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) STR=STR+CHR(13)+ +ALLTRIM(STR(j)+、+mandbars(i).CONTROLS(j).accname+(ID:+ALLTRIM

11、(STR(xlapp.CommandBars(i).CONTROLS(j).ID)+) FOR k=1 TO obj.accChildCount TRY IF NOT EMPTY(obj.CONTROLS(k).accname ) STR=STR+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)+

12、 / +ALLTRIM(STR(bars)+ +STR(i/bars*100,10,2)+% NOWAIT ENDFOR SAVE TO XLS.txt ALL LIKE STR MODIFY COMMAND XLS.txt RETURN39工作表另存为oExcel.ActiveWorkbook.SaveAs(c:temp22.xls)检测当前目录是否有同名的EXCEL表,如果有先删除,再另存IF !FILE(SYS(5) + CURDIR() + result.xls) oExcel.ActiveWorkbook.SaveAs(SYS(5) + CURDIR() + result.xls)E

13、LSE lcFileName = loExcel.GetSaveAsFilename(result, Excel (*.xls), *.xls)IF !EMPTY(lcFileName) IF FILE(lcFileName) DELETE FILE (lcFileName) ENDIF oExcel.ActiveWorkbook.SaveAs(lcFileName) ENDIFENDIF40放弃存盘 & 避免出现保存对话框oExcel.ActiveWorkbook.saved=.t.41.存盘oExcel.ActiveWorkbook.save42关闭工作簿oExcel.Workbooks.

14、close43退出ExceloExcel.quitRELEASE oExcel &只有释放对象变量, EXCEL进程才会完全关闭44合并单元格oExcel.ActiveSheet.Range(A4:B5).MergeCells=.t.45下列设置大家自己理解With crfole.ActiveSheet.PageSetup .LeftHeader = chr(13)+左页眉 .CenterHeader = 中页眉 .RightHeader = 右页眉 .LeftFooter = 左页脚 .CenterFooter = 中页脚 .RightFooter = 右页脚 .orientation=1

15、&1竖排,2横排EndWithWith crfole.Range(A4:C4) .MergeCells = .t. .WrapText =.f. .Orientation = 0 .AddIndent =.f. .ShrinkToFit = .f.EndWith46文本对齐 oExcel.range(A4:c4).HorizontalAlignment =1 &水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐) oExcel.range(A4:c4).VerticalAlignment =2 &垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5

16、=分散对齐)47拷贝整个工作表(含格式)oExcel.activesheet.cells.copy &拷贝oExcel.sheets(1).select &选择第一工作表oExcel.ActiveSheet.Paste &粘贴oExcel.ActiveSheet.Cells(3,4).value & ActiveSheet 为当前的Sheet工作薄名字,Cells(3,4).value 为第3行第4列的值以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及中文Windows 98 48. 显示某个单元格的批注内容oExcel=CREATEOBJECT(Excel.a

17、pplication)oExcel.Workbooks.OPEN(d:TESTtesta.xls)oExcel.VISIBLE=.T.?oExcel.Range(B5).Comment.Text &显示B5单元格的批注内容oExcel.Workbooks.CLOSEoExcel.QUITRELEASE oExcel49.oExcel.ActiveSheet.PageSetup.PrintTitleRows=$1:$1 &每页都打印行标头(每页顶部出现的单元格的行)50.保护工作表:oExcel.ActiveSheet.PROTECT(密码,.T.,.T.,.T.,.T.,.T.,.T.,.T.

18、,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.)51.保护工作薄oExcel.ActiveWorkbook.PROTECT(密码,.T.,.T.)第一个.T.:保护工作簿结构第二个.T.:保护工作簿窗口52.设置允许用户编辑区域oExcel.ActiveSheet.Protection.AllowEditRanges.Add(区域3,oExcel.ActiveSheet.Range(A2:D5)53.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.oExcel.DisplayAlerts = .F. 如果不想在宏运行时被无穷无尽的提示和警告消息所困扰

19、,就将本属性设置为 False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。如果将本属性设置为 False,那么宏运行结束后, Microsoft Excel 并不自动将其设置回 True。故当宏运行结束后,都应将本属性设置回 True 值。54.将当前工作表中的已用区域(只读)存入数组。strPath=D:TEST123.xlsLOCAL oExceloExcel=CREATEOBJECT(Excel.Application)oExcel.WorkBooks.OPEN(strPath)arrTableInfo=oExcel.ActiveSheet.Used

20、Range.VALUE &将当前工作表中的已用区域(只读)存入数组。oExcel.QUITRELEASE oExcelINSERT INTO 表名 FROM arrTableInfo55.设置excel批注的字体(excel 2000实现了,如下:)ole.Range(a3).Comment.Shape.Select & 此命令要求批注的 Visible=.t.ole.selection.Font.size=9ole.selection.Font.name=黑体ole.selection.Font.bold=.f.注:该组命令要求先选中批注框,否则写成 ole.Range(a3).Commen

21、t.Shape.Font.size=9 则出错,不知为何!-如何取得当前EXCEL表中工作表的数目及各工作表的名称?CLEARLOCAL lnSheetCountoExcel=CREATEOBJECT(EXCEL.APPLICATION) &创建Excel对象oExcel.WORKBOOKS.OPEN(c:111321.xls) &打开指定工作簿WITH oExcel lnSheetCount=.WorkBooks(1).Sheets.Count &统计工作表数量ENDWITH?当前EXCEL表中工作表的数目为:+ALLTRIM(STR(lnSheetCount)FOR EACH oMyVar

22、 IN oExcel.sheets ?当前EXCEL表中工作表的名称分别为+oMyVar.name &显示Excel表中所有工作表NEXT oMyVaroExcel.WORKBOOKS.CLOSE &关闭工作簿oExcel.QUIT &退出Excel-获取工作表名称在以下示例中,创建了一个 microsoft excel 实例,添加了一个新的工作簿。使用 foreach 语句显示工作簿中每个工作表的名称。此示例要求在运行示例的机器上正确安装 microsoft excel。oExcel = CREATE(Excel.Application)oExcel.Workbooks.ADDFOR EAC

23、H oMyVar IN oExcel.sheets ? oMyVar.nameNEXT oMyVar-Excel报表巧生成巧让FoxPro数据生成Excel报表Visual FoxPro是应用广泛的前台数据库开发平台之一,因此在我们日常工作中时常会遇到DBF数据文件。然而随着办公自动化的普及,越来越多的时候需要将DBF文件转化为Excel电子文档。常用转化方法是在FoxPro中用Copy命令进行格式转化或直接用Excel打开DBF文件。这两种方式虽然都能达到目的,却不能得到格式规范、可以直接打印输出的报表,且输出的Excel文件中,无法对数据类型进行有效转换,极易出现数据统计错误。有没有更好的

24、方法呢?这里有一个更加通用的方法,在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=CREATEOBJEC

25、T(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

26、.range(F1 )&设置标题及字体属性.value=客户服务部业务代表工作量情况统计表.Font.Name=黑体.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为居中,4为右对齐ef.range(H2).value=统计时间:+dtoc(date()+ 打印

27、日期:+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&

28、水平居中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=话务总量&第三行

29、大标题为“话务总量”的列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(I

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1