问题描述
我正在尝试将交互式情节(或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