600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案

python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案

时间:2021-02-17 11:14:16

相关推荐

python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案

python语言虽好,也号称跨平台,由于python使用时,往往需要很多内裤,东一个西一个,就像犀利哥身上的衣服,打满了补丁,常常遇到各种莫名其妙的八哥,很是令人头疼。最近我需要用python操作excel,听说xlwings可以通过python让excel插上双翼,据说比VBA还要简易,我看了一下xlwings的语法,确实比VBA要简洁许多,于是开始试用,其它各项操作还好,但是遇到一个非常重要的功能不能正常使用,那就是无法打开一个已经存在的Excel表,必须手工打开后,然后才能通过python来动态操作。按照xlwings官方文档,本来执行xlwings.Book(r"C:/LocalExcelFile.xlsx")应该可以打开本地已经存在的这个工作簿的,但是实际上我使用时一直报错:

就是这个参数错误 AttributeError: 'NoneType' object has no attribute 'FullName'

本来在一台旧的windows xp机器上使用,我以为是xp系统太旧,换到windows 10的机器上使用还是同样错误,由于写的python程序需要用到旧的window xp机器上,所以猜测是不是python3.4版本太旧的想法也暂时放弃。

好在手工打开excel表格后是可以操作的,但是这样不利于自动化无人监守。

于是想到用程序实现自动打开exel。刚好有pywin32的win32com.client类库可以使用,呵呵,勤换内裤,免除虫咬。

可以先用程序打开exel表,然后再使用xlwings操作,这样就无需手动打开了,解放双手,好爽!

from win32com.client import Dispatchimport win32com.clientimport timeimport xlwings as xw# 获取excel 对象excel = win32com.client.Dispatch('Excel.Application')"""0代表隐藏对象,但可以通过菜单再显示-1代表显示对象2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态"""excel.Visible = -1myBook=excel.Workbooks.Open("F:/test.xls")print("excel已经在后台打开")xlBook=xw.Book("F:/test.xls")cellValue=xlBook.sheets[0].range("A1").valueprint("第一个单元格值:",cellValue)#暂停60秒time.sleep(60)myBook.savemyBook.closeprint("excel已关闭")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。