当前位置: 代码迷 >> VFP >> VFP中导入EXCEL表时提示找不到EXCEL.APPLICATION类定义,应怎么解决
  详细解决方案

VFP中导入EXCEL表时提示找不到EXCEL.APPLICATION类定义,应怎么解决

热度:4481   发布时间:2013-02-26 00:00:00.0
VFP中导入EXCEL表时提示找不到EXCEL.APPLICATION类定义,应如何解决?
在VFP8.0表单的命令框中设计了将EXCEL表数据导入DBF表的功能,但在执行命令导入EXCEL表时却提示“找不到EXCEL.APPLICATION类定义”,所使用的命令程序是:

M=getfile("xls")
COPY FILE "&M" TO D:\TEST.XLS
oExcel=CREATEOBJECT('Excel.application')
oExcel.Workbooks.Open("D:\TEST.XLS") 
R=oExcel.SHEETS(1).UsedRange.ROWS.COUNT
C=oExcel.SHEETS(1).UsedRange.COLUMNS.COUNT
oExcel.Cells(R,C).Select
oExcel.DisplayAlerts=.F. 
oExcel.ActiveWorkbook.SaveAs('D:\NewTest.xls',39)
oExcel.ActiveWorkbook.saved=.t.
oExcel.Workbooks.close 
oExcel.quit 
RELEASE oExcel
IMPORT FROM D:\NewTest.xls TYPE XL8
ERASE D:\NewTest.xls
ERASE D:\TEST.xls

在大部分电脑上运行上述程序时都没有出现故障,但在一台电脑上却出现了这样的故障。

敬请电脑专家分析是何原因,如何解决?不胜感激!


------解决方案--------------------------------------------------------
这台电脑可能没有安装 Excel
------解决方案--------------------------------------------------------
没有安装 Excel 或 Excel 版本高于 2003
------解决方案--------------------------------------------------------
没有安装OFFICE OR 安装的精简版之类的?
------解决方案--------------------------------------------------------
在执行前检测一下是不是安装了excel及版本是不是正确的:
SQL code
oExcel=Createobject('Excel.application')If Vartype(oExcel)=="O"    If Val(oExcel.Version)=11.0 &&11.0表示excel的版本号        M=Getfile("xls")        Copy File "&M" To D:\TEST.Xls*        oExcel=Createobject('Excel.application')        oExcel.Workbooks.Open("D:\TEST.XLS")        R=oExcel.SHEETS(1).UsedRange.Rows.Count        C=oExcel.SHEETS(1).UsedRange.Columns.Count        oExcel.Cells(R,C).Select        oExcel.DisplayAlerts=.F.        oExcel.ActiveWorkbook.SaveAs('D:\NewTest.xls',39)        oExcel.ActiveWorkbook.saved=.T.        oExcel.Workbooks.Close        oExcel.Quit        Release oExcel        Import From D:\NewTest.Xls Type Xl8        Erase D:\NewTest.Xls        Erase D:\TEST.Xls    EndifEndif
------解决方案--------------------------------------------------------
多数情况是安装了精简版,或者注册表出了问题
找到 execl 的 exe 文件,让它自己重新检测并修复一次

运行 cmd,转到 excel.exe 所在文件夹,执行 excel /RegServer,修复过程中可能需要你插入安装盘,或者指出安装文件所在目录

------解决方案--------------------------------------------------------
SQL code
Try    oExcel=Createobject('Excel.application')    llSuccess=.T.Catch To oError    Messagebox(oError.Message,48,'信息提示')    llSuccess=.F.EndtryIf llSuccess    M=Getfile("xls")    Copy File "&M" To D:\TEST.Xls    oExcel.Workbooks.Open("D:\TEST.XLS")    R=oExcel.SHEETS(1).UsedRange.Rows.Count    C=oExcel.SHEETS(1).UsedRange.Columns.Count    oExcel.Cells(R,C).Select    oExcel.DisplayAlerts=.F.    oExcel.ActiveWorkbook.SaveAs('D:\NewTest.xls',39)    oExcel.ActiveWorkbook.saved=.T.    oExcel.Workbooks.Close    oExcel.Quit    Release oExcel    Import From D:\NewTest.Xls Type Xl8    Erase D:\NewTest.Xls    Erase D:\TEST.XlsElse    Messagebox('创建 Excel 对象失败!',48,'信息提示')Endif
  相关解决方案