DBF转EXCEL方法(图解)
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版本,然后选择目标地址,最后按“确定”即可。
DBF导出到XLS
这段代码的功能是将DBF导出到XLS文件中,可以创建新的文档,也可以在原来的文档中添加工作薄,在成功操作之后,返回当前的XLS文件名,你可以在这基础上作循环处理。
FUNCTION GetV alidFileNamePARAMETERS FileNameLOCAL sFileNamem.sFileName=ALLTRIM(FileName)m.sFileName=STRTRAN(m.sFileName,"["," ")m.sFileName=STRTRAN(m.sFileName,"]"," ")m.sFileName=STRTRAN(m.sFileName,"\"," ")m.sFileName=STRTRAN(m.sFileName,"/"," ")m.sFileName=STRTRAN(m.sFileName,"|"," ")m.sFileName=STRTRAN(m.sFileName,"?"," ")m.sFileName=STRTRAN(m.sFileName,"*"," ")m.sFileName=STRTRAN(m.sFileName,">"," ")m.sFileName=STRTRAN(m.sFileName,"<"," ")m.sFileName=STRTRAN(m.sFileName,":"," ")m.sFileName=STRTRAN(m.sFileName,'"',' ')m.sFileName=STRTRAN(m.sFileName,':' , '')m.sFileName=STRTRAN(m.sFileName,'。
DBF文件和Excel文件间的数据转换
DBF文件和Excel文件间的数据转换作者:罗正生来源:《电脑知识与技术》2008年第35期摘要:介绍了VFP数据表文件(.DBF)与Excel数据表(.XLS)间数据的相互转换,并对转换中存在的问题进行分析,提出解决的方法。
关键词:Visual FoxPro软件;Excel软件;数据文件;数据转换中图分类号:TP311.132 文献标识码:A文章编号:1009-3044(2008)35-2396-02The Data Conversion of DBF Files and Excel FilesLUO Zheng-sheng(Panzhihua University, Panzhihuai 617000, China)Abstract: This paper introduces the data conversion ofVFP Table (.DBF) and Excel Sheet (.XLS), analyzes the problems during conversion process and puts forward its solutions.Key words: visual foxPro software; excel software; data files; data conversionDBF文件是VFP(Visual FoxPro)的数据表文件,VFP是一种关系型数据库管理系统,具有强大的数据处理功,不仅是一个信息管理系统的编程平台,而且提供了以命令方式操作处理数据的功能,在管理工作中得到广泛应用;Excel文件是指Microsoft Excel软件生成的电子表格文件,Microsoft Excel是微软公司办公系列软件(Microsoft Office)中一个优秀的电子表格处理软件,具有强大的制表功能,在操作界面、公式运算、图表等方面有着独到的优势,为广大办公应用人员所熟悉和使用,正是由于他们功能间存在的差异,两种软件产生的数据常常需要进行转换,以达到方便、高效处理数据的目的。
DBF3.1.0.52导入导出Excel格式
二、应用:
(一)打开dbf文件:Open
(二)增加记录(Depend):把光标放到最后一行,单击,在增加的记录里,最少输入一个字段的文字,否则增加的记录无效。
如下图:
(三)删除记录:分两步:第一步是将要删除的记录做标记,第二步是将做了删除的记录彻底删除。
1、将要删除的记录做标记:
1)选中要删除记录的行,然后单击:
2、将做了删除的记录彻底删除:Edit-Pack Table(装表)
弹出确认对话框:
单击:Yes,记录被彻底删除:
(四)dbf文件换名存盘
(五)字段的查询与修改
File-Structure :字段名,字段类型,宽度,小数,零
(六)导出Excel可以识别的类型:【导出Excel】
1)单击:
2)选择”保存类型“
3)输入文件名,等待导出,成功。
【编辑导出的Excel文件】
1、将之前用Excel编辑好的数据复制进来。
这是导出的EXCEL打开后的样子:
2、把数据复制进来,粘贴数值。
3、关键是把数字列全部加‘号,(变文本格式)
保存后,另存为CSV格式:
提示逗号分隔,是,成功保存为SCV格式。
(七)导入SCV格式:
1、单击:
2、选择:刚才保存SCV文件:
这是提示SCV编辑窗口没有关闭,
我们关闭EXCEL,再次导入,这是因为分隔符为分号”;“
我们选择逗号:”,“,在预览窗口中看到要导入的数据完全正确
下一步:
Important:
成功导入!
删除不要的记录。
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语句,依次为每一行每一列单元格赋值。
DBF文件数据格式转换及导入操作指南
卫统2、3、4表DBF文件数据格式转换及导入操作指南一、登录直报系统,在“下载区”中下载卫统数据格式转换工具压缩包,并解压到本地计算机。
注意:每次只能转换和导入一个基层单位的数据,不能转换和导入市、县(区)的汇总数据!二、打开解压缩时生成的文件夹,找到“卫统数据格式转换.exe”文件,双击此文件运行转换工具。
下面我们以转换“广西壮族自治区人民医院”的“人力资源表数据”及“医用设备表数据”为例,进行操作演示:1、根据需要,点击要转换的数据的按钮,如需转换人力资源表数据,则点击“转换人力资源表数据”按钮,则弹出标题为“选择要转换的创智格式人力资源表文件”的文件选择窗口:2、假定我们已将从创智年报系统生成的卫统2、3表上报文件,保存在名为“示例”的文件夹中。
在上图的“查找范围”中找到并选择“示例”文件夹,在文件列表中点击要转换的卫统2表文件:3、然后点击“转换选定文件”按钮,则开始进行数据转换,转换完成后,在主界面中有“数据转换已完成!”的提示:转换完成后的文件,以新的《数据接口规范》中规定的文件名命名,并保存在此转换工具所在的文件夹(如“卫统2、3、4表DBF文件数据格式转换”)中:5、如果转换失败,则会弹出小窗口提示转换失败的原因。
6、“医用设备表”及“出院病人调查表”数据的转换操作,与上述转换“人力资源表”数据的操作相似。
7、转换完成后,点击“退出”按钮关闭数据转换工具。
三、离线填报工具导入人力资源表DBF文件数据。
我们仍然以“广西壮族自治区人民医院”为例,演示使用离线填报工具导入上述转换的人力资源表数据,假定我们已经下载并安装好离线填报工具。
1、运行离线填报工具:2、装入任务。
在“任务”菜单中选择“装入任务”,或者从“收发”菜单中选择“装入任务”:3、然后选择装入方式为“报表服务器”,然后点击“下一步”按钮:4、填写报表服务器的URL地址:“/irpt/i”,然后点击“下一步”按钮:5、选择“卫生直报(新)”任务组并点击“下一步”按钮,在“登录”界面中输入“用户名”和“密码”,用户名和密码与登录直报系统的相同,然后点击“下一步”按钮:6、选择要装入的任务为“卫统2表”,并点击“下一步”按钮:7、选择任务保存目录,这里假设选择桌面上的“示例”文件夹,然后点击“下一步”按钮:8、任务数据下载完成后,弹出“任务注册信息”窗口,直接点击“确定”按钮并在弹出的“请确认”窗口中点击“是”按钮:9、删除直报系统中原有的数据。
用C++实现DBF数据表与Excel数据表的转换
用C++实现DBF数据表与Excel数据表的转换作者:曹敏来源:《中国教育信息化·高教职教》2008年第06期摘要:本文用C++设计了一种工具软件,将现有的Excel表的信息,通过该软件导入到指定的DBF注册表里,省去了重新输入的巨大工作量。
关键词:Excel表 VFP C++中图分类号:TP311.52 文献标识码:B 文章编号:1673-8454(2008)11-0058-03在office办公软件在我国普及的今天,基础信息往往是以Excel表的形式存储,但Excel 表不能实现信息化的复杂管理,于是就要用VFP开发数据管理软件,这就要求将现有的Excel 表的数据导入到VFP开发的管理系统的数据表中,而市场上这种转换工具软件又很少,而且不能满足千差万别Excel格式转换到指定的DBF表的要求,基于此,笔者研究出一种软件解决此类问题。
一、技术实现路线1.不同版本的Excel表的存储格式不同,要直接转换到指定的DBF表下,要进行复杂的重复代码编程,以致广大用户无法实现自主转换,因此开发一个通用性的转换工具软件是最终的目标。
2.要想作成通用的转换工具软件,必须首先将Excel表转换为文本文件(带制表分隔符),文本文件是最基础的文件形式,读取不需要任何中间的动态链接库等复杂的调用,该文本文件的关键是以制表分隔符号ASC码9作为每列的分隔标志,以ASC码10和13作为每一行的换行符号,这就为转化工具的开发奠定了基础。
3.实现Excel表转换必须满足如下要求:①必须去掉带有合并单元格的内容;②每列内容必须左对齐;③每单元格内容不能折行显示;④删除空列内容;⑤从右下角开始选取转换的表内容;⑥选择“文件”-“另存为”-存储类型为“文本文件(制表分隔符)(*.txt)”。
4.创建独立的DBF数据库类,笔者用C++经过长期剖析DBF各个版本的底层代码、存储方式、结构体构成等等技术细节,创建了DBF类,对字段构成、数据存储、记录的读取,都有完整的函数,为转换奠定了基础。
把DBF文件导出成EXCEL文件
&&把DBF文件导出成EXCEL文件,导出后不用再调整格式,可直接打印。
&&使用方法:先打开DBF数据库,再运行此程序即可PARAMETERS thefilename,theheader &&导出后保存的文件名和EXECL表格表头curprint=ALIAS()IF EMPTY(theheader)theheader=curprintendif**PUBLIC dbfarray(30,15)ncount=AFIELDS(dbfarray)****以下代码检查每个字段的最长字符的长度,并将此长度数据保存到dbfarray(i,3)中.LOCAL fld1,len1FOR i=1 TO ncountfld1=ALLTRIM(dbfarray(i,1))len1=LEN(fld1)DO casecase dbfarray(i,2)="C" OR dbfarray(i,2)="V"SELECT MAX(LEN(ALLTRIM(&fld1))) as maxlen FROM &curprint INTO CURSOR thelen dbfarray(i,3)=IIF(len1>thelen.maxlen,len1,thelen.maxlen-1)case dbfarray(i,2)="D"dbfarray(i,3)=IIF(len1>dbfarray(i,3)+DBFarray(i,4)+1,len1,DBFarray(i,3)+dbfarray(i,4)+1)CASE dbfarray(i,2)="T"dbfarray(i,3)=IIF(len1>15,len1,15)otherwisedbfarray(i,3)=IIF(len1>dbfarray(i,3)+DBFarray(i,4),len1,DBFarray(i,3)+dbfarray(i,4))endcasedbfarray(i,3)=IIF(dbfarray(i,3)<=5,dbfarray(i,3)+1,dbfarray(i,3))ENDFORGO topWAIT WINDOW "正在导出数据......." AT MROW(),MCOL() nowait**以下设置EXCEL表格头oex1=CREATEOBJECT("excel.application")If Type("oex1") <> "O"MESSAGEBOX("创建EXCEL文件出错,当前系统可能没有安装Microsoft EXCEL 或者EXCEL 运行出错.",0+16,"提示")RETURNendifoex1.workbooks.addoex1.worksheets("sheet1").activateoex1.activesheet.pagesetup.printtitlerows="$1:$2"oex1.activesheet.pagesetup.papersize=9oex1.activesheet.pagesetup.orientation=1oex1.activesheet.pagesetup.centerfooter="第&P页共&N页"oex1.activesheet.pagesetup.headermargin=2/0.035oex1.activesheet.pagesetup.footermargin=2/0.035oex1.activesheet.pagesetup.zoom=100oex1.cells(1,1).value=theheaderoex1.cells(1,1)="黑体"oex1.cells(1,1).font.size=14oex1.cells(1,1).horizontalalignment=2oex1.range(retuabc(1)+"1:"+retuabc(ncount)+"1").merge**oex1.visible=.t.****以下循环生成表格头FOR i=1 TO ncountoex1.activesheet.columns(i).font.size=10IF dbfarray(i,3)<=60oex1.activesheet.columns(i).columnwidth=dbfarray(i,3)ELSEoex1.activesheet.columns(i).columnwidth=60 &&&如果字段宽度超过60字符,则设置为最宽为60,单元格为自动换行.oex1.activesheet.columns(i).WrapText =.t. &&&设置此列单元格为自动换行.endifIF dbfarray(i,2)="C"oex1.activesheet.columns(i).numberformatlocal="@"endifIF .f.IF INDBC(ctable,"table") &&*判断表是否包含在当前数据库中ccaption=DBGETPROP(ctable+"."+dbfarray(i,1),"field","caption")IF NOT EMPTY(ccaption) &&判断在数据字典中是否设置了字段标题oex1.cells(2,i).value=ccaption &&使用数据字典中的列标题ELSEoex1.cells(2,i).value=dbfarray(i,1) &&未设置则直接用字段名称为列标题ENDIFENDIFENDIFoex1.cells(2,i).value=dbfarray(i,1) &&如非数据库,则直接用字段名称为列标题oex1.cells(2,i).horizontalalignment=3 &&对齐方式为水平居中ENDFOR***以下生成表内容**PUBLIC cfield,thefieldsSELECT &curprintnrow=3LOCAL thecount,thecount1thecount=RECCOUNT()thecount1=ALLTRIM(STR(thecount))GO topSCANWAIT "共有"+thecount1+"条记录,正在导出第"+ALLTRIM(STR(nrow-2))+"条记录." WINDOW AT MROW(),MCOL() nowait**oex1.visible=.t.LOCAL cfieldFOR ncolumn=1 to ncountcfield=dbfarray(ncolumn,1)LOCAL thefieldsthefields=&cfieldIF dbfarray(ncolumn,2)="C"thefields=ALLTRIM(thefields)ENDIFIF dbfarray(ncolumn,2)="V"thefields="'"+ALLTRIM(thefields)ENDIFIF dbfarray(ncolumn,2)="D" AND (thefields={^1900-01-01} or ISNULL(thefields))thefields=""ENDIFIF dbfarray(ncolumn,2)="L"thefields=IIF(thefields,"是","否")ENDIFIF EMPTY(thefields)thefields=""ENDIFoex1.cells(nrow,ncolumn).value=thefieldsENDFORnrow=nrow+1ENDSCANoex1.range("A2:"+retuabc(ncount)+ALLTRIM(STR(nrow-1))).borders.linestyle=1 &&细线边框oex1.range("A2:"+retuabc(ncount)+ALLTRIM(STR(nrow-1))).borders.weight=2 &&粗细线oex1.cells(nrow+1,1).value="报表日期"oex1.cells(nrow+1,2).value=STR(YEAR(DA TE()),4)+"年"+STR(month(DATE()),2)+"月"+STR(day(DATE()),2)+"日"oex1.cells(nrow+1,3).value="报表单位"oex1.cells(nrow+1,4).value=GSNAMEWAIT clearIF USED("thelen")USE IN "thelen"ENDIFoex1.activeworkbook.saveas(thefilename)oex1.visible=.t.PROCEDURE retuabcPARAMETERS nNumber nnumber1=CEILING(nnumber/26)+63 IF nnumber1>64cabcd=CHR(nnumber1)ELSEcabcd=""ENDIFnasc=MOD(nnumber,26)IF nasc=0nasc=26ENDIFcabc=cabcd+CHR(64+nasc) RETURN cabcENDPROC。
使用arcpy将dbf转换为excel
该功能对应的是ArcGIS工具箱中的: Conversion Tools >> Excel >> Table to Excel#案例代码:# -*- coding: utf-8 -*-import arcpy # 导入arcpy模块# 变量的初始化clip = "C:\\Users\\rui78\\Desktop\\New Folder\\clip.shp"shp1 = "C:\\Users\\rui78\\Desktop\\New Folder\\shp1.shp"shp1_Clip_shp = "C:\\Users\\rui78\\Desktop\\New Folder\\result\\shp1_Clip.shp" shp_dbf="C:\\Users\\rui78\\Desktop\\New Folder\\result\\shp1_Clip.dbf"shp_exl="C:\\Users\\rui78\\Desktop\\New Folder\\result\\shp1_Clip.xls"arcpy.Clip_analysis(shp1, clip, shp1_Clip_shp, "")print("剪切运算已完成")#将计算结果转换成excel输出arcpy.TableToExcel_conversion(shp_dbf,shp_exl)print("计算结果转excel已完成")下面是arcgis官方给出的arcpy模块下的TableToExcel_conversion()函数参考文档:TableToExcel_conversion(Input_Table, Output_Excel_File,{Use_field_alias_as_column_header}, {Use_domain_and_subtype_description})Converts a table to a Microsoft Excel file.INPUTS:Input_Table (Table View):The table to be converted to Microsoft Excel format.Use_field_alias_as_column_header {Boolean}:How column names in the output are determined.* NAME-Column headers will be set using the input's field names. This is the default.* ALIAS-Column headers will be set using the input's field aliases.Use_domain_and_subtype_description {Boolean}:Controls how values from subtype fields or fields with a coded value domain are transferred to the output.* CODE-All field values will be used as they are stored in the table. This is the default.* DESCRIPTION-For subtype fields, the subtype description will be used. For fields with a coded value domain, the coded value descriptions will be used.OUTPUTS:Output_Excel_File (File):The output Microsoft Excel file.。
操作(DBF格式数据)总结
DBF数据导入、导出总结--从SQL Server查询器预览dBase 文件中数据select*from openrowset('MICROSOFT.ACE.OLEDB.12.0','dBase5.0;database=D:\dbf','select * from [1111.dbf]')--若提示:无法处理对象"select * from [1.dbf]"。
链接服务器"(null)" 的OLE DB 访问接口"MICROSOFT.ACE.OLEDB.12.0" 指示该对象没有列,或当前用户没有访问该对象的权限。
--解决:这个文件损坏了,或者是需要用户名和密码select*from openrowset('VFPOLEDB.1','D:\dbf';'admin';'','select * from [1111.dbf]')--前提是系统已经安装vfpoledb 驱动select*from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver; SourceDB=D:\dbf; SourceType=DBF','select * from [1111.dbf]')--注:odbc连接dbf表出现[Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能”错误的解决方法为原来是操作系统升级到win2003后机器上的foxpro的odbc驱动太新了。
不支持老式的访问驱动了。
--需要从一个xp系统上复制一个dll到win2003系统中覆盖,dll的名称是vfpodbc.dll, 大小为K,版本.1.8630.1。
从DBF中导出EXCEL
IF EMPTY(cDbfFile)
RETURN
ENDIF
USE (cDbfFile) ALIAS FoxTable IN 0
IF NOT USED("FoxTable")
=MESSAGEBOX("打开表失败,程序将中止!", 16, "Error")
FOR i = 1 TO nFldCount
oSheet.Cells(1,i).Value = aFldList[i, 1]
ENDFOR
cRecc = STR(RECCOUNT("FoxTable"))
SCAN
WAIT WINDOW ALLTRIM(STR(RECNO())) + "/" + cRecc NOWAIT
oExcelApp = .NULL.
WAIT CLEAR
=MESSAGEBOX("转换完毕!", 64, "OK")
CLOSE DATABASES ALL
oExcelSheet = GETOBJECT("","Excel.Sheet") && 产生Excel对象
IF NOT TYPE("oExcelSheet") = "O"
=MESSAGEBOX("Excel对象创建失败,程序将中止!", 16, "Error")
RETURN
ENDIF
FOR i = 1 TO nFldCount
VFP数据导出到EXCEL技术
VFP数据导出到EXCEL技术 我们都知道在 EXCEL 中有很多很多的计算公式、灵活多变的计算方式、方便快捷的图表处理、和功能强大的 VBA 语言,可以说 EXCEL 可能是最好用的表格处理软件。
我敢说:微软的产品中大概就 EXCEL 最好! 但是,怎样用 Foxpro 快速产生统计表,并将数据送到 Excel表格中,从而代替 Foxpro 的报表工具呢? 我们大家都知道,在 Visual Foxpro 3.0及以后版本中提供了一个调用Ole Automation 的函数 CREATEOBJECT,用该函数可以让 Visual Foxpro 很方便的和其它可以提供 Ole Automation 服务的程序进行通讯。
而 Excel 更是一个标准的 Ole Automation 服务器程序,我们可以在前端将数据传送到后端的Excel 服务程序,用后端服务程序进行表格处理,从而弥补 Visual Foxpro的不足。
由于历史原因,我们作报表都习惯用 Total、Count、Sum 或者直接在报表中工具中计算,速度最快的大概也就是 Total 了,但不知道还有多少人还在坚持使用 Total 命令进行计算,有没有更好的计算方法呢?当然有啦!我在实际使用中积累有一定的经验但愿能给各位起到小小的启发。
假设有一表:Table1 是一个人员档案,里面的表结构如下:-----字段名--类型及长度--------- 编号 C,2 部门 C,10 姓名 C,10 性别 C,2 出生日期 D 职务 C,10 文化程度 C,10内容大概如下TABLE1.DBF---------------------------------编号 部门 姓名 性别 出生日期 职务 文化程度 --------------------------------- 1 工程部 张三 男 1971-01-11 工程师 大学本科 2 销售部 李四 男 1967-02-23 经理 大学本科 3 工程部 王武 1954-03-14 技术员 大学专科 4 总经理室 赵洁雅 女 1975-04-05 秘书 硕士研究生 5 销售部 .. 1977-05-09 销售经理 高中 6 工程部 大文 1969-03-30 总工程师 大学专科 7 销售部 .. 1961-10-10 销售经理 大学专科 8 总经理室 庄稼 1961-10-10 总经理 大学专科 当然实际的数据应该比这里多很多,要不还用统计干吗,我不过是举例说明而已。
数据表(.dbf文件)的几种数据输出方法
数据表(.dbf文件)的几种数据输出方法
丁福兴
【期刊名称】《智能计算机与应用》
【年(卷),期】2001(000)002
【摘要】@@在日常工作中我们经常要接触各种各样的数据库文件,其中最常见的要数用FoxBASE+或FoxPro创建的数据表(.dbf文件)了。
初学者不难发现数据表中的记录在直接使用List to print命令打印输出时,字体、行间距偏小,且无法分页,实在是面目可憎。
下面介绍两种解决数据输出不够美观大方的办法。
【总页数】1页(P43)
【作者】丁福兴
【作者单位】苏州铁道师范学院教务处助理研究员
【正文语种】中文
【中图分类】TP31
【相关文献】
1.关于提高VFP中数据表安全性的几种方法 [J], 路世静;史大新;张秀滢
2.在Delphi5中连接导入Excel数据表的几种方法 [J], 朱正月
3.浅谈对VFP数据表几种加解密方法 [J], 刘长勇
4.数据表的几种数据输出方法 [J], 于娇
5.数据库应用中多维数据表的几种实现方法 [J], 吴大刚
因版权原因,仅展示原文概要,查看原文内容请购买。
基于VisualFoxPro的Excel文件与文本文件的转换
基于VisualFoxPro的Excel文件与文本文件的转换
薛转花
【期刊名称】《电脑知识与技术》
【年(卷),期】2006(000)002
【摘要】本文旨在提供一种基于Visual FoxPro程序开发软件,将Excel文件转换为银行等单位有特定要求的文本文件的一种方法,以解决在一般企事业用户与银行等专业机构之间在数据交换时常常产生的文件格式不能兼容的问题.
【总页数】2页(P129-130)
【作者】薛转花
【作者单位】陕西理工学院,陕西,汉中,723003
【正文语种】中文
【中图分类】TP312
【相关文献】
1.利用Visual FoxPro实现Excel文件转化成文本文件 [J], 袁婷
2.由EXCEL文件到数据库标准文本文件(STF)的数据格式转换 [J], 黄方;杨松林
3.FoxPro编程实现DBF文件到Excel文件的转换 [J], 张建;刘华;闻宝栋;王怀忠
4.DBF文件和Excel文件间的数据转换 [J], 罗正生
5.应用VB实现的HEX文件到EXCEL文件的转换 [J], 汤楠;孙如田
因版权原因,仅展示原文概要,查看原文内容请购买。