我有一堆excle工作表,它们引用了一天中的bloomberg数据,我用它来处理Python中的各种事情。我的问题如下:
有没有办法告诉工作表刷新bloomberg数据?
传统的刷新都不起作用,就像在excel中点击f9一样不会刷新它们。我知道如何做的唯一方法是在bloomberg选项卡下单击(在excel中)刷新图标,两个箭头。我很乐意将其自动化。
这就是我现在所拥有的:
import win32com.client
import time
def refr_sheet():
app_global = win32com.client.Dispatch("Excel.Application")
global_sprdsheet = app_global.Workbooks.open('C:\\Users\\Ako\\Desktop\\ako_files\\work_sheets\\global.xlsx')
global_sprdsheet.RefreshAll()
time.sleep(12)
global_sprdsheet.Save()
global_sprdsheet.Close()
app_global.Quit()
用于重新计算一般excel calc公式,但不会刷新bloomberg(= BHD类型)公式。
欢迎任何建议!
答案 0 :(得分:1)
有两种选择: 简单解决方案 在工作表中创建宏(需要创建文件xlsm而不是xlsx)
sub refresh_bbg()
'取决于您的设置可能值得检查Bloomberg api是否安装在此处,如果没有安装。
Application.Run(“bloombergui.xla!RefreshEntireWorkbook”)
结束子
然后在python中
global_sprdsheet.Application.Run( “global.xlsm!refresh_bbg”)
但我认为更好的解决方案是通过tia或pdblp在python中进行bbg数据收集。然后将数据写入文件。根据我的经验,这更可靠。