xlwings使用InputBox

文章讲述了作者在使用Excel时遇到的问题,通过查找资料发现xlwings库实际上使用了Win32com接口。作者分享了如何正确使用InputBox函数获取单元格地址,并提到不同版本可能导致的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

越简单越强大,记录学习心得。
需要个与EXCLE交互的方法,哪里都没有找到,把手册翻了个遍,锁定api调用VBA,Typt:=4 2 8 都是返回数字,没办法得到需要的range,然后手动加了个“”,居然成功了,需要的可以用一下。

    app=xw.apps.active
    re=app.api.InputBox(prompt:="请选择图片存放格式单元格", Title:="图片单元格", Type:=8)
    re=app.api.InputBox(prompt:="请选择图片存放格式单元格", Title:="图片单元格", Type:=2)
    print(re)

在这里插入图片描述


英文""手动输入,然后就可以返回需要的了。

再换了台电脑测试了一下,好像引用的是这个原型,和使用的版本有关,返回值都是字符串。
public static string InputBox (string Prompt, string Title = “”, string DefaultResponse = “”, int XPos = -1, int YPos = -1);
所以点选单元格后,手动去掉等号就返回地址字符串了。比加“”简单。
在这里插入图片描述

rn=app.api.InputBox("请输入需求的位数", "前置补零", 8)
type(rn)#<class 'str'>'$E$17'

#最新更新,现在了解到了,xlwings原来也是用win32com接口的,看了接口的原档文件

	def InputBox(self, Prompt=defaultNamedNotOptArg, Title=defaultNamedOptArg, Default=defaultNamedOptArg, Left=defaultNamedOptArg
			, Top=defaultNamedOptArg, HelpFile=defaultNamedOptArg, HelpContextID=defaultNamedOptArg, Type=defaultNamedOptArg):
		return self._ApplyTypes_(357, 1, (12, 0), ((8, 1), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17)), 'InputBox', None,Prompt
			, Title, Default, Left, Top, HelpFile
			, HelpContextID, Type)

所以问题的正确使用方式是:

    app=xw.apps.active
    re=app.api.InputBox(prompt:="请选择图片存放格式单元格", Title:="图片单元格", Type=8)
    re=app.api.InputBox(prompt:="请选择图片存放格式单元格", Title:="图片单元格", Type=2)
    print(re)

只要这样就和VBA一样了。所以学习还是看原档容易理解一些,不然真不知道参数怎么使用。
补充:

	rns=wt.book.app.api.InputBox("请选择筛选列位置", "高级筛选", Type=8)
    col=wt.range(rns.GetAddress()).column

返回的是Win32com接口类型的,不是xw的数据类型了,通过GetAddress()函数返回需要的地址字符串

再更新一下吧,把这个问题搞透,这次换了电脑,重装了系统和python xlwings wps,然后之前写的代码又运行不了了,搞不懂原理只有多动手实验了

    re=xw.apps.active.api.InputBox("请选择图片存放格式单元格", "图片单元格", None,None,None,None,None,8)
    re.GetAddress()
    re.Value

不解释了,解释不了,拿着用吧

再不行就先在位于python的site-packages/win32com/client/makepy.py 下面运行python makepy.py
查注册表HKEY_CLASSES_ROOT\TypeLib{00020813-0000-0000-C000-000000000046}看WPS是哪个版本的库,然后选择这个同名的库文件
我的是Microsoft Excel 12.0 Object Library ,仅作参考 然后再运行上面的程序试试.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值