ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: tangdup

python能否操作已经打开的excel

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-9-18 11:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
tangdup 发表于 2020-9-18 11:43
是这样的:该软件做了一个一个Excel的插件,我通过这个插件读取这个软件的数据。所以这个excel文件要一直 ...

1、找插件开发者解决你的需求
2、不了解你的取数流程的情况下,只能建议试试另存

TA的精华主题

TA的得分主题

发表于 2020-9-18 12:40 | 显示全部楼层
tangdup 发表于 2020-9-18 11:41
是这意思。但是,在你的xw公式中,我没有发现对excel的读取啊

xlwings中的Range方法不用指定excel的路径和文件名,读取的是当前打开的激活的Excel的数据,当然你也可以创建多个app对象,分别指定打开的excel文件进行读取。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-18 23:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wodewan 发表于 2020-9-18 12:40
xlwings中的Range方法不用指定excel的路径和文件名,读取的是当前打开的激活的Excel的数据,当然你也可以 ...

好,谢谢,我正是担心xlwings不能操作已经激活的excel文件。今天晚了,明天我再试试

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-19 14:49 | 显示全部楼层
wodewan 发表于 2020-9-17 17:52
单纯你的问题来说:Pandas读取时,文件不保存,貌似不会更新,但Xlwings可以,不知道是不是下图这个意思( ...

能操作。但是还是有问题。因为需要在excel文件保存以后,python才能够读取正确的值。
但是我的excel的外接的数据接口是实时更新的,我现在还不知道是否每次都保存。因为今天是周末,我不能够测试。谢谢你,等我测试完再向你汇报结果

TA的精华主题

TA的得分主题

发表于 2020-9-19 15:05 | 显示全部楼层
只要你的excel文件打开能加载xlwings,并能能实时更新数据,你用xlwings读取数据再转成dataframe供python操作就可以了,不然python只能通过内存读取数据,要用到ctype,excel有没有提供这样的接口还不知道,不太靠谱。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-28 09:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wodewan 发表于 2020-9-18 12:40
xlwings中的Range方法不用指定excel的路径和文件名,读取的是当前打开的激活的Excel的数据,当然你也可以 ...

我改成手动更新,那就没有问题了。谢谢

TA的精华主题

TA的得分主题

发表于 2022-3-7 10:43 | 显示全部楼层
wodewan 发表于 2020-9-18 12:40
xlwings中的Range方法不用指定excel的路径和文件名,读取的是当前打开的激活的Excel的数据,当然你也可以 ...

看了两天相关问题,你的回复让我茅塞顿开,谢谢

TA的精华主题

TA的得分主题

发表于 2023-8-2 17:48 | 显示全部楼层
python部分:文件保存成xlwingshello.py
import xlwings as xw

def main():
    xw.Book("xlwingshello.xlsm").set_mock_caller()
    wb = xw.Book.caller()
    sheet = wb.sheets[0]
    if sheet["A2"].value == '1':
        sheet["A2"].value = '2'
    else:
        sheet["A2"].value = '1'

@xw.func
def hello(name):
    return f"Hello {name}!"

if __name__ == "__main__":
    main()

VBA部分:文件保存成xlwingshello.xlsm
Sub SampleCall()
   RunPython ("import xlwingshello; xlwingshello.main()")
End Sub

前题是要上面两个文件放在一起,安装xlwings,实现正在打开的表格实时显示数据

TA的精华主题

TA的得分主题

发表于 2024-1-3 09:20 | 显示全部楼层
wj2368 发表于 2020-9-18 10:18
参考代du码:
from xlrd import open_workbook
book = open_workbook('simple.xls',on_demand=True)

这代码咋没缩进的?看着累啊

TA的精华主题

TA的得分主题

发表于 2024-6-1 18:50 | 显示全部楼层
sheeboard 发表于 2020-9-17 17:38
你既然用了python,何不所有操作都用python,写个socket或爬虫也不难,excel只当是最后的数据存储。

应该是不方便
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 17:01 , Processed in 0.033646 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表