J'ai développé un prototype C# Excel 2003 dans VS2005 qui supporte un objet avec quelques appels simples, plus une classe RTD séparée, tous assis au sommet d'une grande pile C# interne existante.Création d'un add-in Excel basé sur C# avec un minimum de douleur
Tout fonctionne très bien-est, mais ...
On me dit que pour éviter d'éventuels conflits avec d'autres compléments Excel qui pourraient vouloir un autre moment de l'exécution .Net que je vais doit pousser le code .Net ce hors-proc.
1) Est-ce vrai? 2) Cela peut-il être fait de telle sorte que le serveur non-proc est lancé automatiquement à la demande, est accessible uniquement à l'utilisateur approprié (pour simplifier les problèmes de sécurité) et n'a pas besoin d'une installation compliquée, etc. , etc?
3) Si cela peut être fait, comment?
Actuellement, mon (COM visible) talons de classe commencent:
namespace SimpleAddinMockup1
{
/// <summary>
/// Main entry point from Excel for non-real-time methods.
/// </summary>
[ClassInterface(ClassInterfaceType.AutoDual), ComVisible(true)]
public sealed class Main
{
...
}
}
et
namespace SimpleAddinMockup1
{
/// <summary>
/// In-proc real-time server facade for an Excel instance to our main server connection.
/// </summary>
/// Note: to throttle updates in Excel use 'Application.RTD.ThrottleInterval = nnn' for nnn ms between updates (default is 2000).
/// See: http://msdn.microsoft.com/en-us/library/aa140060(office.10).aspx
[ClassInterface(ClassInterfaceType.AutoDual), ComVisible(true)]
public sealed class CPRTDServer : Excel.IRtdServer
{
...
}
}
Mise à jour: je serais toujours très désireux de savoir si pousser le C# outproc est facile à faire, par exemple, de manière déclarative ...