web-dev-qa-db-fra.com

Traitant: Comment intégrer une silhouette complète interactive dans Excel?

J'essaie d'intégrer une parcelle interactive trassement (ou bokeh) à Excel.

Pour ce faire, j'ai essayé les trois choses suivantes:

  1. incorporer un utilisateur de navigateur Web Microsoft à Excel, suivant:

Comment puis-je incorporer un navigateur dans une forme Excel VBA?

Cela fonctionne et permet de charger HTML en ligne et hors ligne.

  1. créer un HTML tracé

'' '

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')
  1. repointant l'objet WebBrowser dans Excel en utilisant .Navigate à la traçabilité locale.html. Bannière apparaît avec

".... restreint ce fichier de montrant un contenu actif pouvant accéder à votre ordinateur"

en cliquant sur la bannière, je rencontre cette erreur:

enter image description here

Le même HTML peut être ouvert dans un navigateur.

Y a-t-il un moyen de montrer des parcelles interactives dans Excel?

7
dusiod

Comme mentionné par @jerlich, Excel Blocks JavaScript. Vous devriez essayer la solution de contournement qu'ils liaient si vous voulez une interactivité complète.

Si vous souhaitez au moins un certain degré de contrôlabilité ou d'interactivité, essayez d'utiliser xlwings. Avec des boutons Excel, vous pouvez toujours avoir une certaine communication entre Excel et Python (y compris la lecture de données et l'envoi de graphiques).

Les limitations sont:

  • Ne pouvant utiliser que les entrées de données et les boutons, au lieu des fonctionnalités interactives par défaut. Beaucoup pourraient être reproduits, mais ce serait plus de travail.
  • Il ne fonctionnera que sur un ordinateur que vous pouvez configurer votre python script sur (Cependant, il semble que Xlwings Pro vous permet de stocker votre programme dans le fichier)
  • Il semble que vous auriez besoin de passer des graphiques traitant en épargnant puis d'ajouter la figure, car les transmettre directement nécessitent Xlwings Pro. Le passage direct sans pro est possible avec matplotlib.

Guide de la fabrication de graphiques interactifs (ish)

Xlwings Docs sur Matplotlib et tracé graphiques

0
thshea

Les parcelles interactives nécessitent JavaScript pour fonctionner. Excel, pour des raisons de sécurité, bloque que JavaScript. Vous pouvez mettre une image statique facilement dans Excel.

Le défi consistant à inclure JavaScript dans Excel a été abordé dans cette question: Comment puis-je utiliser JavaScript dans une macro Excel?

0
jerlich