当前位置: 代码迷 >> VFP >> EXCEL2007工作表已没有另存为DBF表的选项解决方法
  详细解决方案

EXCEL2007工作表已没有另存为DBF表的选项解决方法

热度:5081   发布时间:2013-02-26 00:00:00.0
EXCEL2007工作表已没有另存为DBF表的选项
EXCEL2007工作表已没有另存为DBF表的选项,当然也不能:oExcel.ActiveWorkbook.SaveAs('TEST.DBF',8)这种形式,
当然也不能用:appe from getfile("xls")这种形式,怎么办,不要跟我说退回到EXCEL2000,因为公司新的电脑都是按装EXCEL2007的,在EXCEL2007下如何操作EXCEL工作表成为DBF表,VFP真的好无奈啊,请各位高手支支招,谢谢!


------解决方案--------------------------------------------------------
假设你已经安装OFFICE2007:
oconnection = CREATEOBJECT("adodb.connection")
oconnection.connectionstring = 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";
oconnection.open
oConnection.EXECUTE('SELECT * INTO [DBASE 5.0;DATABASE=R:\TEMP].AA FROM [SHEET1$]')
------解决方案--------------------------------------------------------
调用EXCEL程序,打开要导入的文件,循环单元格,填到对应的DBF文件的字段里

如:

oexl=CREATEOBJECT("excel.application")
oexl.workbooks.open("&lcDelimFile")

ncount=AFIELDS(aprtarray)

nrow=1


WAIT '正在执行所请求的操作,请稍候......' WINDOW AT 40,50 NOWAIT 


DO WHILE .t.

APPEND BLANK
FOR i=1 TO ncount 
cfield=aprtarray(i,1)



xhbl=oexl.cells(nrow,i).value


IF varTYPE(xhbl)="X" AND cfield="序号" THEN 
MESSAGEBOX("第1列遇到空白记录!导入结束",64,"友情提示")
oexl.workbooks.close
oexl.quit
RETURN
ENDIF 

REPLACE &cfield WITH xhbl


nrow=nrow+1
i=1

ENDDO
------解决方案--------------------------------------------------------
探讨
引用:
谢谢,第一条肯定不行,在EXDEL2007下不管你另存为什么格式,在追加时通通出错,第二条另存为txt格式,会出现乱码,那一种文本文件更正确一点,现在还没调试出来,有没有已在用EXCEL2007的有好的方法的高手显身一下,谢谢!

另存为2000-2003格式不行,另存为5.0/95 工作簿可以追加到DBF表中,在代码中如何把不是5.0/95 格式转为……

------解决方案--------------------------------------------------------
探讨
另存为2000-2003格式不行,另存为5.0/95 工作簿可以追加到DBF表中,在代码中如何把不是5.0/95 格式转为可追加的格式,在EXCEL2007将格式转为5.0/95工作簿录制宏代码如下:
Sub Macro1()
'
' Macro1 Macro
'
'
Cells.Select
ChDir "C:\Users\yjr\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\yjr\Desktop\6月单价.xls", FileFormat _
:=xlExcel5, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
Application.Goto Reference:="Macro1"
End Sub
不知VFP代码如何写,请高手帮忙,谢谢!
  相关解决方案