关于操作Excel的问题(问题有些特殊)(200)

  • 主题发起人 主题发起人 ghy412
  • 开始时间 开始时间
G

ghy412

Unregistered / Unconfirmed
GUEST, unregistred user!
操作Excel导入SQL时,程序提示: --------------------------- Debugger Exception Notification --------------------------- Project Data.exe raised exception class EOleException with message '类 Workbooks 的 Open 方法无效'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- 后来经查证,是因为Excel的工作薄名称为乱码(正常的话是叫sheet1)造成的这个问题,求解决方法。(手工修改工作薄得名称是不现实的) 另外:我是用的office2007,打开Excel的语句如下: ExcelApp := CreateOleObject('Excel.Application'); ExcelApp.DisplayAlerts := False; WorkBook := ExcelApp.WorkBooks.Open(FileName);//如果工作薄名称为乱码时,这里报错。 ExcelApp.Visible := false;
 
为什么Sheet的名称为乱码呢?又为何手工修改工作薄的名称是不现实的,顶一个,关注。
 
应该和EXcel的版本有关吧? 换一个EXCEL 2003试一下~~
 
2003已经试过了 还是有问题
 
把你为乱码的工作薄名称发上来看看
 
是一些不规则的乱码 这里好像没有办法发吧
 
如果乱码,你的FileName这个变量是如何取得值的呢?在指定目录搜索出这个乱码文件名,应该也可以打开。我用以下这段代码,搜索了指定目录'D:/tmp'下面的乱码excel文件(嬂
 
楼上的没有理解楼主的问题,搂主的问题在于Excel中的Sheet名为乱码而不是Excel文件本身的文件名为乱码,比如:一般情况下Excel都默认有3个Sheet:Sheet1、Sheet2及Sheet3,而LZ的文件中有某个Sheet的名字有问题。
 
感觉出现这种情况是跟你的文件有关系,你直接用手工打开是什么情况?
 
直接手工打开时可以的
 
一个一般需要有容错处理在打开前先检查filename如果有问题的话,最好先去修改
 
好象还有一种调用sheet的方法,一个是通过名字来调用,另一个是通过序号来调用的。我们曾经做过一个功能,根据物料编号不同,导到不同的sheet中,这样,就要增加多个sheet,当时,用名字来判断,导出的效果不正确,后来用序号来调用,就可以了。
 
后退
顶部