2017-11-20 7 views
2

Ich habe das Excel-Custom-Functions-Beispiel erfolgreich implementiert und kann die neuen JS-Funktionen verwenden.Wie Sie benutzerdefinierte Excel-Funktionen neu laden?

Nachdem ich den Code/Definition in customfunctions.js geändert habe, habe ich meinen Webserver neu gestartet, Excel gestartet, die benutzerdefinierten Funktionen von der Office-Add-Ins-Seite wieder eingefügt, aber immer noch die ursprünglichen Funktionen erhalten.

Wenn ich Excel starte, ohne die Probe erneut einzufügen, sind die Funktionen noch bekannt !?

Wie kann ich Excel zwingen, ein solches Add-In zu entfernen und neu zu laden?

Beispiel: Die Probe enthält mehrere benutzerdefinierte Funktionen und deren entsprechende Anmeldung:

Excel.Script.CustomFunctions["CONTOSO"]["ADD42"] = { 
... 
Excel.Script.CustomFunctions["CONTOSO"]["GETTEMPERATURE"] = { 
... 

eine Funktion Umbenennen, und eine andere Funktion vollständig entfernen:

Excel.Script.CustomFunctions["CONTOSO"]["ADD42RENAMED"] = { 
... 
/* Excel.Script.CustomFunctions["CONTOSO"]["GETTEMPERATURE"] = { 
... 

Excel wird noch später die alte Metadaten anzeigen .

+1

Bitte geben Sie Ihren Code, den Sie so weit gekommen und erklären, was Sie bisher versucht haben. –

Antwort

1

Excel speichert zuvor registrierte Funktionen für jedes Add-In. Der Grund für das Caching liegt darin, dass die Funktionen für den Benutzer verfügbar sind, damit er angezeigt und ausgelöst werden kann (wodurch Ihr Add-In automatisch geladen wird), noch bevor das Add-In geladen wird.

Wenn Sie den folgenden Code ausführen, werden alle vorherigen registrierten Funktionen in dem Cache entfernt werden und sofort mit den neuen ersetzt Sie an:

Excel.run(function (context) {   
    context.workbook.customFunctions.addAll(); 
    return context.sync().then(function(){}); 
}).catch(function(error){}); 

Edit: wenn Sie noch Funktionen sehen, dass Sie nicht denken, sollten nach dem Aufruf des obigen Codes registriert werden, gibt es 2 wahrscheinliche Möglichkeiten:

  1. Die "inkorrekten" Funktionen wurden tatsächlich von einem anderen Add-In registriert (vielleicht ein früherer Test, den Sie gerade machten).
  2. Der Excel.run Aufruf fehlschlägt (Sie können die error Parameter überprüfen, um zu sehen, ob dies Ihr Problem ist)

Es kann nützlich sein Ihren Computer manuell Registrierung-Cache löschen: Löschen Sie den Ordner AppData \ Local \ Microsoft Office \ \ 16.0 \ Wef \ CustomFunctions

-Michael, PM für Add-Ins

+0

Das Code-Snippet, das Sie vorgeschlagen haben, ist bereits Teil des Beispiels. Sieht so aus, als ob das nicht zuverlässig funktioniert. Oder wurde dieses Verhalten in einer bestimmten Excel-Version behoben? Ich verwende Version 1711 (Build 8711.2037), 32bit. – Kai

+0

Ich habe einige zusätzliche Informationen zu meiner Antwort hinzugefügt –