web-dev-qa-db-fra.com

Excel peut-il interpréter une cellule comme HTML?

J'utilise Aspose.Cells pour créer un document Excel par programme. Cela fonctionne très bien. Cependant, l'une des cellules est un bloc de code HTML brut. Je me demande s'il est possible de dire à Excel (de toute façon, y compris l'interface graphique - vous n'avez pas besoin de connaître l'API Aspose) d'analyser et d'afficher une cellule au format HTML. À l'heure actuelle, il apparaît simplement en tant que HTML brut au format texte, balises et tout.

Je sais qu'Excel est capable d'avoir du HTML collé dedans, mais on dirait qu'il le analyse juste par lui-même, puis Excel le fait pour vous, et il ne stocke pas le HTML, donc il ne le fait pas réellement en le analysant et en l'affichant au format HTML. De plus, je ne peux pas comprendre comment répliquer cette fonctionnalité de pâte de toute façon.

Merci.

24
Greg Smalter

Malheureusement, la réponse est non.

Excel a deux options HTML:

  • Ouvrez un fichier HTML, qui affichera le code HTML, en quelque sorte, mais ne contiendra aucun code HTML réel dans les cellules
  • Stockez le HTML dans les cellules, mais sous forme de texte non formaté.

Vous pouvez, peut-être éventuellement, proposer une macro qui vous permet d'entrer du HTML dans une cellule, puis enregistre ce HTML en tant que document, l'ouvre dans une autre instance d'Excel, puis récupère ce HTML formaté et le place dans le document d'origine; de cette façon, vous auriez deux colonnes, une avec le code HTML et l'autre avec la sortie. Ce serait très disgracieux cependant. Ne le faites pas: 0)

14
ScottF

Si vous collez des données html dans Excel, le html sera correctement affiché dans Excel. Le seul problème avec cela est que les retours chariot et les tabulations seront collés dans la cellule suivante.

Dim objData As New DataObject
objData.SetText(sHTML)
Clipboard.SetDataObject(objData)
objRange.PasteSpecial()

Remplira une cellule avec du texte correctement formaté

9
Rick

J'ai trouvé une vidéo YouTube intéressante qui montre comment créer un simple interpréteur HTML (VBA) dans Microsoft Excel à l'aide du contrôle du navigateur Web. Entrez votre code HTML et CSS dans une zone de texte, et le formulaire convertira le code HTML en aperçu Web.

Interprète HTML dans Microsoft Excel 2010/2007 - Écrivez directement dans le navigateur Web

0
StackOverflowFan

Ce code a fonctionné pour moi sur une cellule (inspiré par la réponse de @ Rick, mais avec peu de changements car Clipboard.SetDataObject(objData) a provoqué une erreur et aussi objRange.PasteSpecial() n'a pas fonctionné):

Private Sub Worksheet_Change2(ByVal Target As Range, ByVal sht As Worksheet)
     Dim objData As DataObject 'Set a reference to MS Forms 2.0'
     Dim sHTML As String
     Dim sSelAdd As String
     Application.EnableEvents = False     
     objData = New DataObject
     sHTML = Target.Text
     objData.SetText sHTML
     objData.PutInClipboard
     sht.PasteSpecial Format:="Unicode Text"
     Application.EnableEvents = True
End Sub

Sub test()
     Dim rng As Range
     Set rng = ActiveSheet.Range("F15") 'cell to change'
     Worksheet_Change2 rng, ActiveSheet 
End Sub

voir ceci post pour plus de détails

Je suppose qu'il ne devrait pas être trop difficile de l'ajuster un peu pour que cela fonctionne pour toute la feuille de calcul et pas seulement pour une cellule spécifique, vous devriez probablement en ajouter une condition if pour envelopper ce code afin d'éviter les erreurs, voir cet article pour plus d'informations

0
BornToCode