将Excel建立的工作簿文件转换成VFP成绩报表
XLS和DBF文件轻松转换
提示:如果单元格中包含小数,而这些数字为“常规”格式,则该数值将按照与它最接近的整数取整。如果要保留小数点后面的数字,则须选中该单元格,点击“格式→单元格”,进入“数字”选项卡,在“分类”栏中选择“数值”,然后指定需要保留的小数位数。
将XLS文件转换为DBF文件还有一个方法,就是在FoxPro里单击“文件→导入”,在“类型”栏选择Excel版本,然后选择Excel文件和工作表,最后按“确定”即可。导出文件的存储位置可以在“导入”对话框中找到。
当把Excel工作表转换为DBF文件时,Excel工作表第一行中的文本将作为DBF文件的字段名。转换后的数据类型将决定每一字段(列)的数据类型。如果某个字段的第一行没有数据,则此字段的数据类型将转换为文本,即使该字段下面的行中包含数字,这些数字也将转换为文本。
由于工作表中只有可见的数据才可以被转换,所以在转换之前建议先加宽Excel中的列宽,使所有的数据均可见。
XLS→DBF
打开如图所示的Excel工作表“个人所得税.XLS”,单击“文件→另存为”,在“文件类型”选择框中,选择“DBF 3 (dBASEⅢ) (*.DBF)”,单击“保存”按钮,接下来系统会弹出询问对话框,一路单击“确定”或“是”按钮,最后退出Excel。找到刚转换成的DBF文件,双击它,即可启动FoxPro将它打开。
XLS和DBF文件轻松转换
在实际工作中,各个部门之间经常需要相互配合,比如笔者是一名财务人员,使用Excel计算个人所得税,而劳资部门则使用一套FoxPro编写的软件。于是,两个部门之间的数据交换就成了首先要解决的问题。那么,该怎样实现FoxPro的DBF文件与Excel的XLS文件之间的相互转换呢?
提示:将DBF文件转换为XLS文件还有一个方法,在FoxPro里单击“文件→导出”,在“类型”栏选择Excel版本,然后选择目标地址,最后按“确定”即可。
浅谈VFP与Excel中数据的相互调用
。 。 。 。. 。 . 。 。 . 。 。 。
T 技 术
浅谈 VFP与 E e 中数据 的相互 调用 c x l
彭 杰 ( 州职业 技术学 院 四川达州 6 5 01 达 30 ) 摘 要; 本文提 出了Ex e和Viu l F x r 中数据 相互转 化调用的一 些方法, cl s a o P o 主要从 实际操作这个 角度进行 了阐述 , 井通过一些例子详细
讲 述 了这 些 方 法 的 执 行 过 程 。
关键词 : x e V P 数据调 用 操 作 应 用 E cl F 中图分 类号 : P3 1. T 9 1 3 文献标 识 码 :A E cl x e作为 一 种 优秀 的 电 子表 格处 理 软 件, 兼容性、 作界面、 其 操 公式 运 算 、 图表 等 方 面 有 着 独 到 的优 势 , 由于 其 操 作 简 单 更 易上手 , 因此 它 的一 般 应 用 技 术 已逐 渐 被 广大计 算机 用户所 掌握 l i a F x r ( V s l o P o 简 u 称VF  ̄ 是 一种 关 系 型数 据 库 管 理 系 统 , P) U 由于 其 强 大 的 数据 处 理 能 力 及 良好 的 兼 容 性 , 其 成 为数 据 库 应 用 程 序 开 发 人 员的 使 强 有 力 工 具 , P 许 多 数 据 库 系统 设 计 VF 是 者钟 爱 的 开 发 平 台 , 良 好 的 对 象 可视 性 其 和事 件 驱 动 等 特 点给 系统 开 发 带 来 许 多 方 便 , 合 新 时代 的 应 用 设 计 要 求 。 述 两 个 符 上 软 件 在 各 自的 应 用领 域 均 得 到 了广 泛 的 应 用 , 时 上 述 两 个 软 件 还 具 有 良好 的 交 互 同 编程 能 力 , 两者 相 辅 相成 、 长 补 短 达 到 为 取 珠 联 璧 合 的效 果 。 文 结合 实 例 , 不 同 的 本 从 角度介 绍 几种VF 和 E c l P x e数据 相 互调 用 的 方 法 , 复杂 的 程 序 解 释成 操作 , 经 常 使 将 为 用这 两 个 软 件 的人 带 来 方 便 。
从Excel表转移数据到VFP表的编程实现方法
从Excel表转移数据到VFP表的编程实现方法高进龙,崔尚森,王文林(长安大学,陕西西安710054)摘要:把整个一个Excel表数据转换为VFP表并不难,难就难在把Excel表中某些行某些列的数据转移到已有数据的某个VFP表中,而且可能还会遇到两表间相应数据列的名称、数据类型、排列顺序不同的问题。
作者用VFP编程,轻松实现了这一数据转移工作。
本文将就这一程序的设计思想和实现方法做简要介绍。
关键词:Excel表,VFP表,转移数据,编程实现作者简介:高进龙(1964-),男,陕西华阴市人,长安大学地测学院教务办公室主任,讲师。
一、问题的提出VFP(Visual Foxpro)是一种关系型数据库管理系统,其强大的数据处理能力及其面向对象的编程能力,使其得到数据库应用程序开发人员的广泛使用。
而Excel则是一个优秀的电子表格处理软件,在兼容性、操作界面、公式运算、图表表现等方面有着独到的优势,成为广大办公应用人员常用的工具。
因为两种软件各有短长,所以在实际应用中常会遇到两者之间数据的转移问题。
把整个VFP表转换为Excel表或者把整个Excel表转换为VFP表的工作,两种软件都提供了相应的转换功能,一般用户很容易操作。
但是把Excel表中部分数据转移到已存在的VFP表中的情况就要复杂得多。
两种表的数据转移可能存在以下三个方面的问题:一是Excel表中可能存在某些行的数据不需要或不能被转移,需要转移或者可以转移的仅是其中较规范的某些行;二是Excel表并非所有列的数据,而只是某些列的数据需要被转移到VFP表的相应数据列中,两表中相应列的名称和顺序可能不一致;三是Excel表中与VFP表对应数据列的数据类型可能不一致。
因此,对业已存在的这两类数据表间数据转移工作,用手工完成非常麻烦和费时。
在工作实践中,作者运用VFP编程驱动Excel的能力,设计完成了从Excel到VFP的数据转移程序,成功地解决了这一问题。
巧将Excel建立的工作簿文件转成VFP成绩报表
巧将Excel建立的工作簿文件转成VFP成绩报表图1找到需导入的电子工作簿能否将Excel 2000建立的工作簿文件转化成Microsoft Excel 5.0和97(XLS)格式?启动Excel 2000,打开“另存为”对话框,发现保存类型可以保存为Microsoft Excel 5.0/95工作簿,于是将Excel 2000建立的工作簿文件保存为Microsoft Excel 5.0/95工作簿,再进行VFP中的“导入”操作,工作簿被成功导入了。
在“命令”窗口中,输入“list”,查看导入的结果,无误!用“list stru”,发现“字段名”、类型、字段“宽度”不合要求,在“命令”窗口使用“modi stru”命令分别按要求对“字段名”、类型、字段“宽度”进行修改,如图2所示。
图2对字段宽度进行修改修改完毕,用VFP进行“导出”操作,如图3所示,至此符合要求的VFP成绩报表制作完成了。
图3用VFP进行导出利用VFP制作财务报表——谈VFP与Excel的交互操作在VFP中制作财务报表(或者是其他报表),通常的方法是利用VFP的报表生成器一步一步地生成,这种方法用起来很麻烦,而且打印出来的报表格式也不能尽如人意。
提到制作报表,你可能够马上想到大名鼎鼎的Excel,我们能不能将二者结合起来——利用VFP的数据处理的结果,再使用Excel排版并且打印输出,而且还要让二者结合得天衣无缝呢?答案是肯定的,利用OLE技术,你能够很容易地实现上述想法。
大家对VFP的CreateObject函数可能不会陌生,利用CreateObject函数,你能够在VFP中创建并使用任何在你计算机上注册了的类(通常在安装应用程序时,应用程序都会向注册表里添加类信息)。
也就是说你能够在VFP中调用任何应用程序为你的数据处理服务。
CreateObject的具体用法如下:CREATEOBJECT(ClassName[eParameter1,eParameter2,...])其中,ClassName指明欲建立对象的类名。
vfp中关于excel中取数或转成dbf的代码
1、如果要从单个固定格式excel中取数,代码如下oExcel=Createobject("EXCEL.APPLICATION") &&创建Excel对象oExcel.WORKBOOKS.Open("filename") &&打开指定工作簿m1=oexcel.cells(4,3).valuem2=oexcel.cells(79,3).valuem3=oexcel.cells(71,3).valuem4=oexcel.cells(42,3).valuem5=oexcel.cells(4,9).value然后可以把这些需要的变量放到dbf中去。
2、如果要在一个有相同格式的、有许多表单的excel表中取数,代码可以这样:oExcel=Createobject("EXCEL.APPLICATION") &&创建Excel对象oExcel.WORKBOOKS.Open("file") &&打开指定工作簿USE sheetname &&建立一个数据库,放excel文件的所有表单名ZAP &&清空For Each oMyVar In oExcel.sheets &&读excel的表单名APPEND BLANKREPLACE sheetn WITH &&加入Excel表中所有工作表到sheetn ame中的sheetn字段Next oMyVar &&读下一个表单名USE sheetnamesheetnn=TRIM(sheetn)oExcel.worksheets("&sheetnn").select &&打开sheetname数据库,读出表单名,并选定。
EXCEL文档和VFP-(DBF)数据库文档的相互转换
EXCEL文档与VFP (DBF)数据库文档的互相转换(以EXCEL2003和VFP6.0为例进行说明,其他版本类似)在办公过程中,有时为适应不同程序的需要,我们需要进行文档的转换。
微软的办公软件是我们使用得最多的。
在MS OFFICE中的EXCEL和VFP的数据库DBF文档之间进行转换,很多人都会把DBF文档转换成EXCEL文档,不就是直接导出就行了嘛。
但是,把EXCEL文档转换成DBF 数据库文档很多人就不会了,这里详细解说一下具体操作。
一、VFP数据库文档(*.dbf)转EXCEL文档(*.xls)直接导出成EXCEL(*.xls)文档就行了。
1、启用VFP6.0,打开要转换的DBF文档。
可点击“显示”-“浏览”查看刚打开的DBF数据库文档。
2、点击“文件”-“导出(E)……”,打开对话框,在“类型”里选择Microsoft Excel 5.0(XLS),在“到(O)”里输入将要生成的文件存储位置及文件名,也可点如下红圈里位置直接指明位置,点保存。
此时就将VFP数据库文档(*.dbf)转换成了EXCEL文档(*.xls)文档,可直接打开新生成的EXCEL文档,保存时会出现如下提示,直接点是保存为EXCEL2003版的格式。
二、将EXCEL文档(*.xls) 转成VFP数据库文档(*.dbf)一般我们可以直接使用VFP的导入功能。
启动VFP6.0,点击“文件”-“导入(I)……”,打开对话框,在“类型”里选择Microsoft Excel 5.0(XLS),定位到来源文件,再点确定就生成了一个新的DBF文档。
但是,我们再进行浏览时会发现字段名不对,本来应该是字段名的成了第一条记录了!如下图:实际上我们的操作略作修改就可以了方法1:(此法最简单)在对EXCEL保存时选“另存为”,选择保存类型为DBF4(Dbase IV)(*.dbf)格式。
当鼠标点选的单元格在数据区域外进行保存时,会出现以下提示框:当点选了数据区域内的单元格后再进行保存操作就可以了。
VFP实现EXCEL数据转换
Visual FoxPro是应用广泛的前台数据库开发平台之一,因此在我们日常工作中时常会遇到DBF数据文件。
然而随着办公自动化的普及,越来越多的时候需要将DBF文件转化为Excel 电子文档。
常用转化方法是在FoxPro中用Copy命令进行格式转化或直接用Excel打开DBF 文件。
这两种方式虽然都能达到目的,却不能得到格式规范、可以直接打印输出的报表,且输出的Excel文件中,无法对数据类型进行有效转换,极易出现数据统计错误。
有没有更好的方法呢?这里有一个更加通用的方法,在VFP中调用Excel,可以由DBF文件直接生成格式如下图所示一样复杂的Excel报表(如图1)。
具体过程如下:假设我们要将表Agcallop.dbf文件输出为Excel格式文档,报表形如图1所示。
为使通用性更强,页面采用A4纸横向输出,默认字体为宋体10号,页脚处添加页号。
部分程序代码如下:m.outfilename=putfile('输出结果','agcallop','xls')&&取导出文件名称图1 Excel报表ef=CREA TEOBJECT('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.range("F1 ")&&设置标题及字体属性.value='客户服务部业务代表工作量情况统计表' ="黑体".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为居中,2为右对齐ef.range("H2").value='统计时间:'+dtoc(date())+'打印日期:'+dtoc(date()) ef.Rows("3:4").Selectwith ef.Selection.HorizontalAlignment = 3&&设置3、4行为水平对齐.V erticalAlignment = 2&&垂直居中.NumberFormatLocal = "@"&&设置3、4行为字符型内容endwithef.Range("A3:A4").Selectef.Selection.Merge&&纵向合并第一列3、4行ef.Range("A3").V alue='工号'&&设置第一列标题内容ef.Columns("A").Select&&整列选择ef.Selection.HorizontalAlignment = 3&&水平居中ef.Columns("A:B").Selectef.Selection.NumberFormatLocal = "@"&&设置A、B列为字符型内容ef.Range("B3:B4").Selectef.Selection.Merge&&纵向合并第二列3、4行ef.Range("B3").V alue='姓名'&&设置第二列标题内容ef.Columns("B").Select&&整列选择ef.Selection.HorizontalAlignment = 3&&水平居中ef.Range("C3:E3").Select&&横向合并第三行C-E列ef.Selection.Mergeef.Range("C3").V alue='话务总量'&&第三行大标题为“话务总量”的列ef.Range("C4").V alue='电话呼入量'&&“话务总量”下第1个小标题“电话呼入量”ef.Range("D4").V alue='电话呼出量'&&“话务总量”下第2个小标题“电话呼出量”ef.Range("E4").V alue='合计'&&“话务总量”下第3个小标题“合计”ef.Range("F3:H3").Selectef.Selection.Mergeef.Range("F3").V alue='话务总时间'ef.Range("F4").V alue='呼入时间'ef.Range("G4").V alue='呼出时间'ef.Range("H4").V alue='合计'ef.Range("I3:K3").Selectef.Selection.Mergeef.Range("I3").V alue='单个话务平均时间'ef.Range("I4").V alue='呼入时间'ef.Range("J4").V alue='呼出时间'ef.Range("K4").V alue='合计'ef.Range("L3:L4").Selectef.Selection.Mergeef.Range("L3").V alue='累计工作时间'ef.Range("M3:M4").Selectef.Selection.Mergeef.Range("M3").V alue='无效时间'ef.Range("N3:N4").Selectef.Selection.Mergeef.Range("N3").V alue='录入量'ef.Range("O3:O4").Selectef.Selection.Mergeef.Range("O3").V alue='有效时间比'接下来通过scan语句,依次为每一行每一列单元格赋值。
如何在vfp中调用excel实现图、表的制作(之八)
如何在vfp中调用excel实现图、表的制作(之八)如何在vfp中调用excel实现图、表的制作(之八)本讲纯属凑数,将搜集的一些可能用到的VFP调用Excel指令语句罗列出来供各位在编程时参考。
所幸没有稿酬可赚,也就没有骗稿费之嫌,各位看官也就不会责怪我。
呵呵。
1. 创建Excel对象eole=CreateObject(“Excel.application”)2. 添加新的工作簿eole.Workbooks.Add3. 打开指定工作簿eole.Workbooks.Open(“C:\demo.xls”)4. 设置第三个工作表为激活(作用)工作表eole.WorkSheets(“Sheet3”).Activate5. 是否显示Excel窗口eole.Visible=.T. (.T. 显示;.F.不显示)6.关闭工作簿eole.Workbooks.Close7.退出Exceleole.quit8.保存当前工作簿eole.ActiveWorkbook.Save9.当前工作簿另存为eole.ActiveWorkbook.SaveAs(“e:\temp\my1.xls”)10.退出时是否存盘eole.ActiveWorkbook.Saved=.F. (.F. 放弃存盘;.T.不放弃存盘)11.是否防止警告框的出现eole.DisplayAlerts=.F. (.F. 不出现;.T.出现)12.运行Excel宏eole.Application.Run(“宏1”)13.当前屏不显示零值eole.ActiveWindow.DisplayZeros=.F.14.更改Excel标题栏内容eole.Caption=”趋势分析表”15. 给单元格赋值eole.Cells(1,4).Value=3.141616.选定区域eole.ActiveSheet.Range(“A1:G10”).Select17.清除区域eole. ActiveSheet.Range(“A1:G10”).Clear18.合并单元格eole.ActiveSheet.Range(“A1:B2”).Merge19. 设置字体eole.ActiveSheet.Cells(2,1)=”隶书”20. 设置字号eole.ActiveSheet.Cells(2,1).font.size=1621.设置字体颜色eole.ActiveSheet.Cells(1,1).font.ColorIndex=322.字体设为斜体eole.ActiveSheet.Cells(1,1).font.Italic=.T.23.文字带下划线eole. ActiveSheet.Range(“A2:A2”).font.underline=.T.24.整列字体为粗体eole.ActiveSheet.Columns(2).font.bold=.T.25.设置单元格背景色eole. ActiveSheet.Cells(3,4).Interior.ColorIndex = 46 26.调整列宽eole.Range(“A1:H1”).ColumnWidth=12.527.调整指定列宽度eole.ActiveSheet.Column(2).ColumnWidth=2028.单元格文字居中eole.Cells(1,8).HorizontalAlignment=329.插行eole.ActiveSheet.Rows(1).Insert30.删行eole.ActiveSheet.Rows[8].Delete31.插列eole.ActiveSheet.Columns(2).Insert32.删列eole.Columns("D:D").Selecteole.Selection.Delete(-4159)33.删除指定工作表指定列eole.WorkSheets(“Sheet1”).Row(3).Delete34.调整行高eole.ActiveSheet.Rows(5).RowHeight=4035.块拷贝eole.Range(“A1:J3”).Selecteole.Selection.Copy或:eole.ActiveSheet.Range(“A1:E2”).Copy36.块粘贴eole.Range(“A1:A1”).Selecteole.ActiveSheet.Paste37.拷贝整个工作表ed.Range.Copy / eole.Cells.Copy 38.在指定工作表指定单元格粘贴eole.WorkSheets(“Sheet2”).Range(“A1”).PasteSpecial 39.单元格设置公式eole.Range(“A1”).Fornula=”=10*Rand()”40.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents41.插入新工作表eole.Sheets.Add42.删除某个工作表eole.Sheets(“Sheet2”).Selecteole.ActiveWindow.SelectSheets.Delete43.返回当前工作簿工作表的总数eole.WorkSheets.Count44.返回Sheet1工作表的表名eole.WorkSheets(1).Name45.工作表更名eole.Sheets(2).Name=”损益表”46. 设置表格四个边框线条的类型eole.ActiveSheet.Range(“B3:D3”).Borders(2).Linestyl e=1 其中:borders参数:1-左 2-右 3-顶 4-底 5-斜/ 6-反斜\Linestyle参数:1和7-细实线;2-细虚线;4-点虚线;9:双细实线47. 设置表格边框线粗细eole.ActiveSheet.Range(“B3:D3”).Borders(2).Weight=348.在指定行插入分页符eole.WorkSheets(“Sheet1”).Rows(10).PageBreak=149.在指定列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=050.打印预览工作表eole.ActiveSheet.PrintPreview51.打印输出eole.ActiveSheet.Printout52.报表打印方向eole.ActiveSheet.PageSetup.Orientation=1 (1:垂直打印2:水平打印)53.设置页面纸张尺寸eole.ActiveSheet.PageSetup.PaperSize=954.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridLines=.T.55.报表水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.T.56.报表垂直居中eole.ActiveSheet.PageSetup. CenterVertically=.T.57.设置报表页眉eole.ActiveSheet.PageSetup.CenterHeader=”报表1”58.设置报表页脚eole.ActiveSheet.PageSetup.CenterFoo ter=”第6页”59.设置报表左边距eole.ActiveSheet.PageSetup.LeftMargin=2/0.035 (2厘米)60.设置报表右边距eole.ActiveSheet.PageSetup.RightMargin=2/0.03561.设置报表顶边距eole.ActiveSheet.PageSetup.T opMargin=2/0.03562.设置报表底边距eole.ActiveSheet.PageSetup.BottomMargin=2/0.035关于VFP调用Excel 编程最后再罗嗦几句。
VFP控制EXCEL的方法
VFP控制EXCEL的方法VFP(Visual FoxPro)是一种面向对象的数据库管理系统,可以通过它来控制和操作Excel。
下面将详细介绍一些使用VFP控制Excel的方法。
1. 建立与Excel的连接:首先需要建立与Excel的连接,可以使用OLE(Object Linking and Embedding)技术来实现。
通过OLE创建一个Excel应用程序实例,然后使用该实例进行操作。
```foxprooExcel = CREATEOBJECT("Excel.Application") && 创建Excel应用程序实例oWorkbook = oExcel.Workbooks.Add( && 新建一个工作簿oWorksheet = oWorkbook.WorkSheets(1) && 获取第一个工作表```2. 设置Excel对象的属性:Excel应用程序有很多属性可以设置,比如设置显示/隐藏工作窗口、设置自动保存等。
例如,以下代码将Excel应用程序窗口设置为不可见:```foxprooExcel.Visible = .F. && 不显示Excel窗口```3. 操作Excel工作表:通过Excel应用程序实例的oWorksheet对象,可以对Excel工作表进行操作。
比如,设置单元格的值、获取单元格内容、设置字体、设置单元格格式等。
例如,以下代码将A1单元格的值设置为“Hello World!”:```foxprooWorksheet.Range("A1").Value = "Hello World!"```4. 操作Excel图表:可以使用VFP控制Excel创建和操作图表。
例如,以下代码创建一个柱状图:```foxprooChart = oWorksheet.Shapes.AddChart2(240, xlColumnClustered) && 创建一个柱状图oChart.Select( && 选中图表oChart.SetSourceData(oWorksheet.Range("A1:B10")) && 设置图表数据范围```5. 保存Excel文件:VFP可以通过Excel应用程序实例的oWorkbook对象来保存Excel文件。
浅谈Excel表在VFP报表设计中的应用
0 前 言
入 , WI D WS应用程 序间 相互 传递 和 共 享数 是 N O
据 的一 种有 效 方 法 。VF P支 持 直 接 在 程 序 中创 VF ( sa F x r ) 一种 关 系 型 数据 库 管 建 、 用 和 控 制 OL 对 象 , 现 OL 自动 化 。 P Vi l o po 是 u 使 E 实 E 理系统 , 由于其强 大的数 据处 理功 能 、 丰富 的 可视 VF P借 助于 OL E不仅 可 共享 其 它应 用程 序 的数
件, 在兼 容性 、 作界 面 、 操 公式 运 算 、 图表等 方 面 有 2 报 表 设 计 方 案
着独 到 的优势 , 广 大办 公 应 用 人 员所 熟 悉 。本 为
1 创建一个 自由表 b . b, 于 存储 有 关 报 ) b d f用 文将 结合 编 程实 例 , 绍 在 VF 介 P程 序 设 计 中 , 如 表定 义数 据 , 表 1 b . b 结 构 建 立 后 , 加 一 见 ,bd f 添 何 调用 E cl xe 进行 报表设 计 。 条 空记录 。
关键词 :F V P编 程 ; 设 计 ; E E XC L报 表
中 图分 类 号 : P 7 . T 3 13
文献 标识 码 : B
文 章 编 号 :0 6 18 2 0 )2—0 6 —0 10 —8 9 (0 6 0 00 4
Br e n r d c i n a o tEx e plc to i fI t o u to b u c lAp i a i n i n VFP p r s g Re o t De i n
收 稿 日期 :0 5—1 —0 20 1 5
维普资讯
第 2期
王
excel如何导入到VFP中
Visual FoxPro 6.0中文版命令手册excel如何导入到VFP中比如EXCEL的文件名是 t001 怎么做才能导入到VFP中啊!import from dd.xls type xlsuse ddcopy to d:\newddIMPORT不能指定新生成表的存放路径,一般会自动保存到默认目录下。
用以下语句可以实现你的要求:IMPORT FROM t001.xls type xl8 &&导入t001.xls并(在默认目录下)生成t001.dbf文件copy to d:\t001 &&复制文件到D盘Use &&关闭t001表DELETE FILE t001.dbf &&删除(在默认目录下的)t001.dbf文件使用import命令,如:IMPORT FROM 表1.xls TYPE xl8将表1.xls导入为表1.dbf---------------------------------------------------------------用VFP导入点击“文件”->导入->类型选择:“Microsoft Excel 5.0 和 97 (XLS)”来源于选择:你要导入的Excel文件工作表:默认为Sheet1,如是你要把Excel文件中Sheet2中内容导过来,就选择“Sheet2”->最后点击导入即可。
*******************************************************************如果导入时出现提示:致命错误:异常代码=C0000005*可以把Microsoft Excel 在保存时存为Microsoft Excel 5.0/95 格式或4.0格式。
这样就能导入了。
******************************************************************以上操作相当于如下命令操作:IMPORT FROM 你的表.xls TYPE XL8 SHEET "Sheet2"有时需要把Excel表另存为“Microsoft Excel 5.0 和 97 (XLS)”格式后,再用以上命令进行导入。
VFP中调用Excel打印报表
在VFP中调用Excel打印报表出处:网络VFP(Visual FoxPro)具有较强的数据处理功能,而Excel有灵活的打印功能。
在设计VFP 程序时,可以利用VFP的OLE自动化技术,在程序中直接调用Excel,实现报表打印。
程序简洁、操作方便,而且打印出的表格更美观。
例如打印学生成绩表,有关的程序如下:SET TALK OFFuse dat.dbfOLEExcel=CreateObject(″Excel.Application″)&&建立Excel OLE对象OLEExcel.WorkBooks.Add&&增加工作簿OLEExcel.ActiveWorkBook.Sheets(1.Cells(1,1).Value=″班级″OLEExcel.ActiveWorkBook.Sheets(1.Cells(1,2).Value=″语文″OLEExcel.ActiveWorkBook.Sheets(1.Cells(1,3).Value=″数学″&&填写A1、B1、C1单元格select datr=2c=1goto topscanOLEExcel.ActiveWorkBook.Sheets(1).Cells(R,c).Value=dat.班级OLEExcel.ActiveWorkBook.Sheets(1).Cells(R,c+1).Value=dat.语文OLEExcel.ActiveWorkBook.Sheets(1).Cells(R,c+2).Value=dat.数学r=r+1end scan&&数据库中的数据填入对应单元格OLEExcel.Caption=″示例:VFP调用Excel″&&更改Excel标题栏OLEExcel.ActiveSheet.PageSetup.CenterHeader=″报表1″&&设置页眉OLEExcel.ActiveSheet.PageSetup.CenterFooter=″第1页″&&设置页脚OLEExcel.ActiveSheet.PageSetup.CenterHorizontally=.T.&&设置页面水平居中OLEExcel.ActiveSheet.PageSetup.PaperSize=1&&设置页面纸张大小(1-窄行)OLEExcel.ActiveSheet.Cells(2,1)=″黑体″&&设置字体OLEExcel.ActiveSheet.Rows(1).Font.Size=25&&设置字体大小OLEExcel.ActiveWorkBook.SaveAs(″xs.xls″)&&保存表格。
Excel表导入VF库方法
Excel转换成DBF文件格式的方法:(仅供参考)第一步:先编辑好要转换的电子表格。
格式为:1、所有字体设置为宋体,字号为10,左对齐。
2、将所有的字段名改为dbf中一致的英文字段名。
3、将文档格式另存为:Microsoft Excel 5.0 /95工作簿。
一、在Excel表(以下说明以此表保存在桌面为例)的首行录制好VF库中每列所需的字段名;二、打开VF如下图:三、单击“文件”——“导入”四、在“导入”框中选择“类型”如下图:(注:如果后面操作时无法导入可能是待导入Excel表格版本与VF需导入的Excel 版本不一致的缘故,可打开待导入的Excel表格将其另存为版本为Excel5.0表格,导入时选择另存的Excel5.0表格)五、单击“来源于”方框后的图标选择欲导入的Excel表格:六、选择好后点击“导入”框中的导入向导呈现如下图:七、在文件类型框中选择Excel5.0八、在点击“源文件”方框后的得到如下图:九、选择好待导入的Excel表格后点击呈现如下图:十、在点击指明新建表存放路径,同时设置新建表的文件名十一、点击后呈现如下图:十二、点击后呈现如下图:十三、点击后呈现如下图:十四、设置字段名所在行为“1”,导入起始行为“2”(因为VF库中的第一行数据在Excel表格中的第二行),如下图:十五、点击后呈现如下图:十六、接下来有几种可选操作:1. ⑴此时可在此设置字段名、类型及宽度,设置好后点击设置日期格式等,如下图:⑵日期等格式设置好后点击⑶点击即可结束导入程序。
2. ⑴(选择此种操作方式后需在新建的VF库中的表设计器中去设置字段名、类型及宽度等)点击呈现如下图:⑵点击结束导入程序。
附:一、出生日期(DBF库中要求出生日期为日期型)导入前处理办法1.新建一列空白列,将其设置成文本格式;2.将含有出生日期的那列数据复制粘贴至记事本中;3.把记事本中的数据复制到新建的文本格式的空白列中(此列数据就可导入DBF库了)。
Excel2007中进行转为生成dbf格式的操作方法
Excel2007中进行转为生成dbf格式的操作方法
有时需要将Excel电子表格文件转换为DBF格式,也就是转成Foxpro 数据库文件。
今天,店铺就教大家在Excel2007中进行转为生成dbf格式的操作方法。
Excel2007中进行转为生成dbf格式的操作步骤:
一、excel转换成DBF
1、打开你要转格式的Excel电子表格文件,点击文件菜单。
2、点击另存为。
3、保存类型选择DBF (这里有DBF 2、3、4 选 DBF4就行)。
4、提示不支持多份工作表的工作簿。
这里只能导出当前工作表到DBF。
点确定。
5、提示有不兼容功能。
点击“是” (去掉所有不兼容的功能)
6、关掉Excel或最小化。
我导出到桌面上,在桌面上会有“成绩表.dbf”文件,导出成功。
二、DBF转换成XLS
1、Visual FoxPro 表文件dbf 转电子表格文件xls。
用FoxPro打开一张表,单击“文件“菜单。
2、单击导出。
3、在类型里选择”Microsoft Excel 5.0(xls)“,在到中选择导出到哪里。
4、我选择保存在桌面,文件名命名为“成绩表123”,请自行命名。
单击“保存”。
5、可以按条件导出部分数据,不选择就导出全部。
全部只能是16383条以内,如果数据超过16383条,就按条件多次导出在合并吧,单击“确定”。
6、关闭 FoxPro 。
看桌面上文件类型转换成功了。
VFP表与Excel表的交互使用
辽 宁 师 专 学 报
J u n l f a n n e c e sColg o r a Lio i  ̄T a h r l e o e 学术研究】
V P表 与 E cl 的交 互 使 用 F xe 表
李丽妹
( 阳 职 业技 术 学 院 ,辽 宁 辽 阳 1 lO ) 辽 1O 4
摘 要 :E cl 报 表 打 印方 面 优 势 突 出 , 可 以 弥补 v P 中 报表 工 具 的 不 足 .二 者 交 互使 用 的 方 法 很 多 。 xe 在 F 结 合 实 例 重 点介 绍导 入 、导 出法 .
C P O E . B O E NO ( > 1 O Y T T MP D F F R R C )
GO TOP
F R lC u t Fe N m O o n =1TO l i d u n n l
lS r g = lSrn + FI LD (1C u t) + AS + c ti n c tig E n on
2 导入 、导出法 2 1 在 V P中导入 E cl . F x e 表
如何 在 VF P中导 入 E cl 格 数据 ,使 之成 为 VF xe 表 P中能识别 的表 呢 ?首先 将 在 E cl xe 中制作好 的 电 子表 格保存在 磁盘上 ,如 E: 原 表 . l 然后 在 VF \ xs , P中使用下 面三 种方法 之 一将其 导入 . ( )使用 VF 1 P的导入对 话框 .从 V P主 菜单 中选 择 “ F 文件 / 导入 …” 打开 “ 人 ”对话 框 ,在对 话 导 框 中选 择文件 格式 ,V P . F 6 0中默认为 Mi oot xe 5 0和 9 ( L ) c sf E cl . r 7 X S ,在 “ 来源 于 ”框 中输 入该 E cl xe 工作簿 名“ \原 表 .l , “ E: xs 在 工作 表” 中输入 来源于 工作 簿 的工 作表 ,如 set ,然后 输入 D F数 据表 ” h e1 B 名 和路 径 ,按 “ 确定 ” 即可 . ( )使 用 V P的 I O T命 令 导人 .I OR F OM E: 2 F MP R MP T R \原 表 . l T E X 5 S E T Xs YP L H E set” hel .命令 中 TY E选 项 可 限制 导人 文件 的类 型 :X S可 从 Mi oot E cl . 、3 0和 4 0的工作 P L c sf r xe 20 . .
Excel表数据导入到VFP表的动态实现
由于各二级学院使用 E cl xe表填报课酬预算 ,主管
部 门将 各二 级学 院上 报 的 E cl 导 人 系统 汇 总 , xe 表 再 进行 核 查 、统 计 、分 析 。为 此 需 要 每次 将 大 量
管理系统软件之一 ,其强大的数据处理能力及其 面向对象 的编程能力 ,使其得到数据库应用程序
型) 、Y ( 币会计 型也是数 值类 型) 货 、T (3 1期
型) 、c ( 字符型) ,这样 可以很容易在 V P表中 F 与之对应来解决数据类型的匹配转换。具s .b V P数据表结构表) 与 ipr r a r m o —po t ( 数据导人方案表 )结构一样 ,用来作为当前转换
开发人 员 的广泛 使用 。E cl 一个 优秀 的 电子 表 xe是
E cl xe表数据 ( 如学 院的课 酬预 算表、教学计划 表 、教师 信息 表、专 业班 级 信息 表 等 )导 人 到
V P开发 的 “ 酬 核算 系统 ” 中 ,通 过 系 统设 计 F 课
格处理 软件 ,在兼容 性、操 作界面 、公 式运 算、
第 1期
谢
忠 :E cl xe 表数据导入到 V P表 的动态 实现 F 表 2 i o — po( mpr r 数据导人方案表 ) t
・5 l・
通过 编程 测 试发 现 E cl 中单 元 的数 据类 型在 转 xe 表
换到 V P中时 ,只有 4种数据类型 ,即 N ( F 数值
较强 的安 全 性 ,是 目前 最 快 捷 、最 实 用 的 数 据 库
数据表间数据相互转换 工作 ,用 手工完成非常麻
烦 、费 时 ,也 容易 出现差错 。 笔 者是在 我校 “ 量 工 程 ” 项 目 “ 酬 核算 质 课 系统 ” 中遇 到 实 际 问题 而 提 出 的 一 个 解 决 方 法 。
如何在vfp中调用excel实现图、表的制作(之二)
如何在vfp中调用excel实现图、表的制作(之二)言归正传。
接下来谈谈vfp调用excel生成统计图形的问题。
初学者可能以为这会是件很难的事情,其实还是很简单的,不必担心。
你最好用一点儿数据自己先在excel中试试如何生成一个统计图:打开Excel输入一组数据,例如从A1-A5,从上往下输入100,200,150,223,152这五个数据,然后用鼠标点击A1不放拖至A5,这样就把A1-A5选中了。
接着点击’图表向导’快捷键,在’图表类型’中选择’柱形图’,’子图表类型’就选择第一个,按’下一步’,在下一窗口中的’系列产生在:’选择’列’,因为我们的数据是从上往下按列摆放的。
接着按’下一步’,进入新的窗口,在’图表标题’栏输入:各生产车间产量柱形图;在分类(X)轴栏输入:车间;在’数值(Y)轴’输入:产量。
点击’下一步’,在’图表位置’窗口选中’将图表作为其中的对象插入’,点击’完成’按钮即可看见生成的柱形图形。
我们从vfp调用excel生成图表的角度来简单了解一下excel中的一些基本概念:一.对象层次:(由高到低)Application对象:它在excel对象结构中处于顶层。
形象地说,双击Excel图表就相当于创建了一个Application对象。
↓Workbooks对象:即工作簿对象(集),启动Excel后点击’新建’或’打开’快捷键就相当于创建或打开了一个Workbook。
↓Worksheets对象:即工作表(集)。
启动Excel后工作表集会自动默认含有sheet1、sheet2和sheet3这三个工作表。
Charts对象:图表(集),与Worksheets对象同级↓Cells对象:表格(集),即我们看到的一个个格子。
Range对象:是格子的一个范围,如上面的A1-A5,与Cells对象同级二.VBA(Visual Basic Application):它是一种面向对象的程序语言,内嵌于Excel,Excel的各项功能都可以直接使用VBA进行操作。
VFP操作Excel命令大全
VFP操作Excel命令大全VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。
比如我们可以利用VFP 进行处理数据,而利用Excel的预览打印功能进行报表打印。
这就需要我们在VFP中直接来控制Excel。
下面就在开发VFP应用项目时对Excel的控制作一下介绍:*!* 1.创建Excel对象oExcel=Createobject("Excel.application")*!* 2.添加新工作簿oExcel.Workbooks.Add*!* 3.设置第3个工作表为激活工作表oExcel.Worksheets("sheet3").Activate*!* 4.打开指定工作簿oExcel.Workbooks.Open("c:\temp\ll.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.设置指定行的高度(单位:磅)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(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.设置页眉(字体大小)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厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035 *!* 20.设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.T opMargin=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 *!* 24.设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.T. *!* 25.设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.T.*!* 26.设置页面纸张大小(1-窄行8511 39-宽行14oExcel.ActiveSheet.PageSetup.Papersize=1*!* 27.打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.*!* 28.拷贝整个工作表edRange.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)="黑体"*!* 34.设置字体大小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.ActiveSheet.PrintOut 11 9:A4)*!*40.mandBars(1).Controls(1).accChild(18).Execute &&打印(菜单序号18为Excel2003的‘打印’项)&&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=Getobject("","excel.sheet")XlApp=oXLS.ApplicationXlSheet=XlApp.ActiveSheetbars=mandBars.CountStr1=''For i=1 To barsStr1=Str1+Chr(13)+Alltrim(Str(i))+''+mandBars(i).accName+'(NAME:'+ma ndBars(i).Name+'INDEX:'+Alltrim(Str(mandBars(i).Index))+')'bars2=mandbars(i).accChildCountFor j=1 To bars2Tryobj=mandbars(i).Controls(j)Str1=Str1+Chr(13)+' '+Alltrim(Str(j))+'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))+')'CatchExitEndtryEndforCatchExitEndtryEndforWait Windows Alltrim(Str(i))+' / '+Alltrim(Str(bars))+' '+Str(i/bars*100,10,2)+'%' NowaitEndforSave To Xls.txt All Like Str1Modify Command Xls.txtReturn*!* 41.工作表另存为oExcel.ActiveWorkbook.SaveAs("c:\temp\22.xls")*检测当前目录是否有同名的EXCEL表,如果有先删除,再另存If !File(Sys(5) + Curdir() + "result.xls") 、、'+mandbars(i).Controls(j).accname+'(ID:'+Alltrim(Str(x mandBars(i).Controls(、oExcel.ActiveWorkbook.SaveAs(Sys(5) + Curdir() + "result.xls") ElselcFileName = loExcel.GetSaveAsFilename("result", "Excel (*.xls), *.xls")If !Empty(lcFileName)If File(lcFileName)Delete File (lcFileName)EndifoExcel.ActiveWorkbook.SaveAs(lcFileName)Endif*!* 42.放弃存盘 && 避免出现保存对话框oExcel.ActiveWorkbook.saved=.T.*!* 43.存盘oExcel.ActiveWorkbook.Save*!* 44.关闭工作簿oExcel.Workbooks.Closeobjexcel.activeworkbook.Close(.F.)*!* 45.退出ExceloExcel.QuitRelease oExcel &&只有释放对象变量, EXCEL进程才会完全关闭*!* 46.合并单元格oExcel.ActiveSheet.Range("A4:B5").MergeCells=.T.*!* 47.下列设置大家自己理解With crfole.ActiveSheet.PageSetup.LeftHeader = Chr(13)+"左页眉".CenterHeader = "中页眉".RightHeader = "右页眉".LeftFooter = "左页脚".CenterFooter = "中页脚".RightFooter = "右页脚".Orientation=1 &&1竖排,2横排EndwithWith crfole.Range("A4:C4").MergeCells = .T..WrapText =.F..Orientation = 0.AddIndent =.F..ShrinkT oFit = .F.Endwith*!* 48.文本对齐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=分散对齐)*!* 49.拷贝整个工作表(含格式)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*!* 50.显示某个单元格的批注内容oExcel=Createobject("Excel.application")oExcel.Workbooks.Open("d:\TEST\testa.xls")oExcel.Visible=.T.oExcel.Range("B5").Comment.Text &&显示B5单元格的批注内容oExcel.Workbooks.CloseoExcel.QuitRelease oExcel*!*51.oExcel.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" &&每页都打印行标头(每页顶部出现的单元格的行)*!* 52.保护工作表:oExcel.ActiveSheet.Protect('密码',.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.) *!* 53.保护工作薄oExcel.ActiveWorkbook.Protect('密码',.T.,.T.)第一个.T.:保护工作簿结构第二个.T.:保护工作簿窗口*!* 54.设置允许用户编辑区域oExcel.ActiveSheet.Protection.AllowEditRanges.Add("区域3",oExcel.ActiveSheet.Range("A2:D5"))*!* 55.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.oExcel.DisplayAlerts = .F.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。
VF中正确导入EXCEL表的几种方法
VF中正确导入EXCEL表的几种方法一次在处理全县小学生毕业会考成绩时,由于各学校交的表格不一致,也不方便统计,为了统计方便、快速、准确无误,把EXCEL表格转换为VF的表,但在转换过程中,打开VFP,点击菜单的“文件”——“导入”,将excel表格导入成VF的表时!出现了如下图的C00005异常代码!!!经过认真思考,反复探索、多次实践,终于探索出正常将excel表格导入成VF的表的几种方法,以供大家分享。
(1)用向导导入。
现在的xls文件一般都是Excel 2000或更高版本做的。
要用向导导入时,必须注意其格式,用VFP6.0和EXCEL2000,在VFP6.0里导入EXCEL2000表就会出现"出现C00005代码异常"提示。
出现这种错误后,不要急,没有其它软件也不怕,你只要在Excel中打开先要导入的文件表,然后另存为Excel 5.0格式的表格,再用向导导入刚才另存的Excel 5.0格式的表格就可以正确了。
(2)除了上面这种方法外,经过认真思考,还可以通过VF中表与文本文件之间的数据交换命令appe from 来实现转换。
具体步骤如下,首先打开Excel文件,在另存对话框中选文本文件(制表符分隔)格式,然后保存;再进入VFP,打开数据表(自己先建立一个数据表);然后用APPE FROM 文本文件.TXT DELI WITH TAB将文本文件内容导入到自己新建的数据表中。
注意:自己所建的表中字段宽度要给宽一点,类型一律用字符型,否则给出现数据丢失。
(3)用低级文件控制函数转换TEXT文件到VF表中。
先将Excel文件另存为文本文件(制表符分隔);再用VF中的低级文件控制函数转换TEXT文件到VF表中。
首先看一下文本文件(制表符分隔)的格式:在WINDOWS文本文件格式中,每行文本的末尾包括两个不可见字符,即一个是回车符CHR(13)与另一个换行符CHR(10),在读取过程中,需要将这两个字符删除;文本文件中各项采用空格“”或换行符CHR(9)或逗号“,”分隔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将Excel建立的工作簿文件转换成VFP成绩报表
考试结束了,上级部门要求上报成绩:字段名分别为学号、姓名、班级、各科成绩及总分,宽度分别为14、8、12、4、4……成绩及总分要求是数值型,其余为字符型。
文件名为:学校名.dbf。
可学校上报的成绩是Excel 2000建立的工作簿文件,如何将Excel 2000建立的工作簿文件转换成符合要求的VFP成绩报表?
用VFP重新建立成绩报表,学生数量大,繁琐且容易出错!太费劲,还是另寻出路吧。
选中VFP“文件”菜单中的“打开”选项,打开Excel 2000建立的工作簿文件,结果
显示乱码,显然此法不当。
试用“文件”菜单中的“导入”选项,弹出“导入”对话框,如图1所示,点击“来源于”的[…]按钮,找到需导入的电子工作簿,结果弹出报错对话框,不能直接导入Excel 2000
建立的工作簿文件。
图1 找到需导入的电子工作簿
能否将Excel 2000建立的工作簿文件转化成Microsoft Excel 5.0和97(XLS)格式?启动Excel 2000,打开“另存为”对话框,发现保存类型可以保存为Microsoft Excel 5.0/95工作簿,于是将Excel 2000建立的工作簿文件保存为Microsoft Excel 5.0/95工作簿,再进行VFP中的“导入”操作,工作簿被成功导入了。
在“命令”窗口中,输入“list”,查看导入的结果,无误!用“list stru”,发现“字段名”、类型、字段“宽度”不合要求,在“命令”窗口使用“modi stru”命令分别按要求对“字段名”、类型、字段“宽度”进行修改,如图2所示。
图2 对字段宽度进行修改
修改完毕,用VFP进行“导出”操作,如图3所示,至此符合要求的VFP成绩报表制作
完成了。
图3 用VFP进行导出。