Ploly:如何在Excel中嵌入完全交互的Ploly图形?

人气:767 发布:2022-10-16 标签: python excel vba plotly plotly-python

问题描述

我正在尝试将交互式情节(或bokeh)绘图嵌入到Excel中。

为此,我尝试了以下三种方法:

将Microsoft Web浏览器UserForm嵌入到Excel中,如下所示:

How do I embed a browser in an Excel VBA form?

这是可行的,可以加载在线和离线html

创建打印的html

‘’

import plotly
import plotly.graph_objects as go


x = [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0]
y = [i**2 for i in x]

fig = go.Figure()

fig.add_trace(go.Scatter(x=x, y=x, mode='markers', name="y=x", marker=dict(color='royalblue', size=8)))
fig.add_trace(go.Scatter(x=x, y=y, name="y=x^2", line=dict(width=3)))

plotly.offline.plot(fig, filename='C:/Users/.../pythonProject/test1.html')
使用.Navigate将EXCEL中的WebBrowser对象重定向到本地plotly.html。横幅弹出

&Quot;...已限制此文件显示可以访问您的计算机的活动内容&

单击横幅,我遇到以下错误:

可以在浏览器中打开相同的HTML。

有没有办法在Excel中显示交互式绘图?

推荐答案

最后,经过微软QnA和Web Browser Control & Specifying the IE Version

的讨论,我成功地将互动情节带到了Excel中

要将Microsoft网页插入到Excel,您必须在注册表编辑器中更改兼容性标志

ComputerHKEY_LOCAL_MACHINESOFTWAREMicrosoftOfficeClickToRunREGISTRYMACHINESoftwareWow6432NodeMicrosoftOffice16.0CommonCOM Compatibility{8856F961-340A-11D0-A96B-00C04FD705A2}

将DWord 0更改为400

现在您可以将Web浏览器对象插入到Excel中,具体步骤如下here

通过添加标记以使用X-UA兼容的HTMLMeta标记来手动编辑从绘图生成的HTML文件

最初从Ploly生成的HTML文件如下所示

<html>
<head><meta charset="utf-8" /></head>
<body>

修改后的具有浏览器兼容性的HTML

<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>

之后,我可以在EXCEL中查看交互绘图,还可以像使用Web浏览器一样进行交互

使用的宏:

Sub Button4_Click()
ActiveSheet.WebBrowser1.Navigate "file:///C:/Users/vignesh.rajendran/Desktop/test5.html"
End Sub

321