2017-10-10 1 views
0

J'essaie d'implémenter la fonction de pièces XML personnalisées dans Office js. Lors de la création d'une partie XML personnalisée dans Excel, j'obtiens une exception générale lors de l'ajout de la partie XML dans le classeur.Office js Custom XML

Je récupère des données d'Excel ayant 5000 lignes et 4 colonnes.

Je coder les données en utilisant le codage Base64 et stocker les données dans une balise XML dans le format suivant -

Mes données encodées.

Existe-t-il des limites de taille lors de l'ajout d'une pièce XML personnalisée dans le classeur?

Exemple:

Excel.run(function (ctx) { 
    var xmlObj = "<data>My encoded data.</data>"; 
    var xmlPart = ctx.workbook.customXmlParts.add(xmlObj); 
    return ctx.sync(); 
}); 
+0

Pourriez-vous donner un exemple du code que vous utilisez et des données que vous codez? –

+0

@ MarcLaFleur-MSFT - J'utilise le code suivant pour ajouter l'objet XML au classeur. Excel.run (function (CTX) {var \t xmlobj = Ici va mon objet XML; \t var = xmlPart ctx.workbook.customXmlParts.add (xmlobj); \t ctx.sync de retour();} ) ; –

+0

@ MarcLaFleur-MSFT - J'ai essayé d'ajouter l'objet XML sans codage, il échoue pour le même seuil. –

Répondre

0

Il n'y a pas de limitation de taille en tant que telle. Je recommande ce qui suit:

  1. Essayez avec un plus petit nombre de rangées. Assurez-vous que le XML final est valide (vous pouvez utiliser l'outil de validation en ligne pour vous assurer qu'il n'y a pas de caractères spéciaux, etc., qui donnent l'erreur). Idéalement, l'API devrait vous dire si le XML est invalide ... mais vaut la peine d'un double contrôle.

  2. Est-ce que cela se produit uniquement lorsque vous codez? Essayez d'utiliser une concaténation de chaîne régulière pour le test. S'il vous plaît laissez-nous savoir où il échoue dans les tests ci-dessus.

+0

Nous essayons de tester la fonctionnalité XML personnalisée pour vérifier son fonctionnement avec de grands ensembles de données. Nous avons essayé la concaténation de chaîne normale mais l'objet XML n'est pas valide car il contient des caractères spéciaux. Si nous essayons d'encoder, l'objet XML résultant est valide, mais il génère une erreur GeneralException en l'ajoutant à la partie customXML. –

+0

Il échoue pour le même seuil, 1000 lignes et 4 colonnes. Est-ce que cela a quelque chose à voir avec la mémoire interne utilisée par Excel? –

+0

@ArupamSengupta, pouvez-vous s'il vous plaît confirmer qu'il fonctionne pour les petits documents XML, mais ne fonctionne pas pour les grands? Combien de caractères correspond à la longueur totale du document XML que vous tentez de définir? –

0

Merci d'avoir porté ce numéro à notre attention! J'étais capable de reprocher le comportement sur un classeur vide contre excel.exe. C'est à cause d'un bug que nous allons essayer de résoudre dans un proche avenir. Désolé pour le dérangement. S'il vous plaît restez à l'écoute pour les mises à jour Excel.

+0

Un correctif a été archivé. Les versions 16.0.8714 ou ultérieures devraient l'avoir. Veuillez réessayer une fois que vous avez reçu la mise à jour, et laissez-nous savoir comment cela fonctionne. Désolé pour le dérangement, et merci d'avoir soulevé le problème. –