9
votes

C # & OpenXML: Insérez une image dans un document Excel

J'utilise une version modifiée de Ce code pour créer un document Excel , ajoutez des cellules et des cellules de style. J'essaie de modifier ce code pour pouvoir également ajouter des images à une feuille. Je n'obtiens nulle part et il n'y a vraiment rien sur le Web qui aidera. J'essaie de lire via l'outil de productivité openxml diff. qui est un peu inutile. Quelqu'un peut-il me signaler dans la bonne direction?

Merci.


0 commentaires

3 Réponses :


7
votes

J'ai écrit quelque chose à ce sujet ici dans un article de blog: http://polymathprogrammer.com/2009/12/21/Avanced-Styling -In-Excel-Open-XML /

Notez qu'il a été écrit à l'origine pour la version Open XML SDK 2.0 CTP, donc méfiez-vous de la modification de la classe NumberFormat à la classe NumberFormat (lorsque le SDK 2.0 a été finalisé)

Si vous souhaitez isoler le code à l'insertion de l'image, jetez un coup d'oeil ici: http://polymathprogrammer.com/2009/11 / 30 / HOW-TO-INSERT-AN-IMAGE-IN-Excel-Open-XML /


1 commentaires

Les liens ci-dessus sont cassés



2
votes

Voici un lien à un exemple de MSDN avec code que vous pouvez télécharger.

Il y a aussi Eric White's Exemple et vous Tube vidéo


0 commentaires

10
votes

J'ai regardé les réponses de Vincent Tan et David Yates. Comme il m'a fallu des heures de codage pour avoir les exigences simples suivantes rencontrées, je posterai ma solution ici afin que la personne suivante puisse économiser du temps.

Exigences:

  • Ajouter une image à une cellule spécifique d'une feuille de calcul Excel existante
  • Créez une nouvelle feuille de calcul et ajoutez une image à une cellule spécifique
  • Ajoutez une image à une cellule spécifique d'une feuille de calcul (d'autres opérations peuvent donc être effectuées avant son enregistrement)
  • Ajoutez l'image d'un flux
  • Ajoutez l'image d'un fichier
  • Utilisez des formats d'image différents

    usage xxx

    code: xxx


6 commentaires

Je pense qu'il est important de noter que vous utilisez même System.Drawing ici ..


Je suis désolé, je ne pense pas que je comprenne ce que tu veux dire. Quelle est la signification d'utiliser System.Drawing?


Je l'ai fait dans .net Core et je dois ajouter System.Drawing.common Package Nuge pour avoir la bibliothèque System.Drawing


Ah, maintenant je reçois ça. Il pourrait être possible d'éviter le système. Drawing en fournissant manuellement le type, la hauteur et la largeur de l'image. C'est le code qui devrait être réécrit: bitmap BM = nouveau bitmap (ImemMemStream); var imagePart = DessinsPart.addimagePart (GetImagePartTypeByBitmap (BM)); ImagePart.FeedData (ImageStream); A.extents étendues = nouveau A.extents (); var extuscx = bm.Width * (long) (914400 / BM.Horizontalresolution); var extentscy = bm.height * (long) (914400 / BM.VerticalResolution); bm.Dispose ();


GetImagePartTypeByBitMap (Image bitmap) pourrait être supprimé, puis.


Voici un lien vers le package Nuget Nuget.org/packages/system.drawing.common < / a>