读书人

VFP中导入EXCEL表时提示找不到EXCEL.A

发布时间: 2012-04-28 11:49:53 作者: rapoo

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 

读书人网 >VFP

热点推荐