python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案
2018-02-24 01:45
591 查看
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 Dispatch
import win32com.client
import time
import xlwings as xw
# 获取excel 对象
excel = win32com.client.Dispatch('Excel.Application')
"""
0代表隐藏对象,但可以通过菜单再显示
-1代表显示对象
2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态
"""
excel.Visible = -1
myBook=excel.Workbooks.Open("F:/test.xls")
print("excel已经在后台打开")
xlBook=xw.Book("F:/test.xls")
cellValue=xlBook.sheets[0].range("A1").value
print("第一个单元格值:",cellValue)
#暂停60秒
time.sleep(60)
myBook.save
myBook.close
print("excel已关闭")
就是这个参数错误 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 Dispatch
import win32com.client
import time
import xlwings as xw
# 获取excel 对象
excel = win32com.client.Dispatch('Excel.Application')
"""
0代表隐藏对象,但可以通过菜单再显示
-1代表显示对象
2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态
"""
excel.Visible = -1
myBook=excel.Workbooks.Open("F:/test.xls")
print("excel已经在后台打开")
xlBook=xw.Book("F:/test.xls")
cellValue=xlBook.sheets[0].range("A1").value
print("第一个单元格值:",cellValue)
#暂停60秒
time.sleep(60)
myBook.save
myBook.close
print("excel已关闭")
相关文章推荐
- Windows环境下Python使用pip安装部分包出现错误的解决方案
- Windows下使用python库 curses遇到错误消息的解决方案
- windows 7系统使用U盘安装时,出现安装程序法创建新的系统分区(解决方案亲测可用)
- [原]用c#做了一个桌面程序用来分离excel文件里的数据时出现“操作必须使用一个可更新的查询”错误的解决
- 网狐荣耀版vs生成解决方案时出现“出现未能写入日志,请求的操作无法在使用用户映射区域打开的文件上执行“错误
- 【Z】oledb读写excel出现“操作必须使用一个可更新的查询”错误
- error 25015安装程序集“C:\Windows\Microsoft .NET\Framework\v2.0.50727\xxx.dll”失败,原因是出现了系统错误:另一个程序正在使用此文件,进程无法访问
- Windows系统出现致命错误C0000034正在更新操作174的解决方法
- Cocos2d-x使用python创建项目出现WindowsError3错误的解决方案
- 在windows平台下使用Git CMD使用reset命令出现More?错误的解决方案
- 在windows64位的系统上面操作操作excel程序出现异常
- 【Python】 更棒的Excel操作模块xlwings
- N点虚拟系统出现 “操作MICROSOFT-FTP发生错误 ,请检查是否安装或标识符错误”解决方案
- WinCVS提交时出现错误 cvs server: C:/WINDOWS/TEMP/cvs**.tmp: No such file or directory 的解决方案
- 虚拟机安装完MAC苹果系统后出现错误的解决方案
- ASP.NET 在IIS 操作Excel时出现的权限问题的解决方案
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 使用LinqDataSource出现“找不到与ViewState中存储的原始值中的给定键相匹配的行,请确保"keys"字典包含与上一个Select操作返回的行对应的唯一键值”错误的解决办法
- 关于TeXLive在Windows下无法使用系统字体解决方案
- 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法