python图表excel数据改变_用python刷新Excel图表外部数据链接

我正在尝试使用python更新Excel中图表的外部数据链接。图表位于

workbook1.xlsm

它引用的更新自身的数据位于

external_workbook.xlsx

. 分离的原因是数据必须在

WorkBoo1.xLSM

定期使用python,如果图表在

WorkBoo1.xLSM

.

我看过各种各样的解决方案,但到目前为止还没有一个适合我。到目前为止,我尝试的两种解决方案包括:(1)以编程方式刷新工作簿;(2)在工作簿中运行宏以编程方式刷新工作簿。

(1)代码:

import win32com.client as w3c

xlapp = w3c.gencache.EnsureDispatch('Excel.Application')

xlapp.Visible = 0

xlwb = xlapp.Workbooks.Open(r'{}\{}'.format(path, fname), False, True, None)

xlwb.RefreshAll() # Runs with no errors, but doesn't refresh

time.sleep(5)

xlwb.Save()

xlapp.Quit()

(2)代码:

# ***************** #

# Excel macro - I've verified the macro works when I have the worksheet open.

Sub Update_Links()

ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

End Sub

# ***************** #

import win32com.client as w3c

xlapp = w3c.gencache.EnsureDispatch('Excel.Application')

xlapp.Visible = 0

xlwb = xlapp.Workbooks.Open(r'{}\{}'.format(path, fname), False, True, None)

xlwb.Application.Run("{}!Module1.Update_Links".format(fname)) # Runs with no errors, but doesn't refresh

xlwb.Save()

xlapp.Quit()

Excel中图表的系列是

# External data link for Excel chart #

=SERIES(,'...path_to_external_file...[external_workbook.xlsx]Sheet1'!$A$2:$A$2000,

'...path_to_external_file...[external_workbook.xlsx]Sheet1'!$F$2:$F$2000,1)

有人能为我提供一个替代的解决方案来解决这个问题吗?

编辑

所以我尝试了一些更简单的方法来测试这个。我创建了一个名为

temp

在里面

WorkBoo1.xLSM

并尝试使用下面的代码将随机值写入单元格A1。运行代码后,临时表仍为空白。

import win32com.client as w3c

import random

xlapp = w3c.gencache.EnsureDispatch('Excel.Application')

xlapp.Visible = 0

xlwb = xlapp.Workbooks.Open(r'{}\{}'.format(path, fname), False, True, None)

books = w3c.Dispatch(xlwb)

sheet_temp = books.Sheets('temp')

sheet_temp.Cells(1,1).Value = random.random()

xlwb.RefreshAll() # Runs with no errors, but doesn't refresh

time.sleep(5)

xlwb.Save()

xlapp.Quit()

我在代码上没有发现任何错误,并遵循其他人在网上发布的示例。有人能指点我哪里出了问题吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值