Frage

Ich verwende Aspose.Cells ein Excel-Dokument programmatisch zu bauen. Dies funktioniert gut. obwohl eine der Zellen, ist ein Block von rohem HTML. Ich frage mich, ob es möglich ist Excel zu sagen (in irgendeiner Art und Weise, einschließlich der GUI - Sie brauchen nicht auf die Aspose API wissen) zu analysieren und eine Zelle als HTML angezeigt werden soll. Gerade jetzt, es zeigt nur auf, als das rohe HTML im Textformat, Tags und alle.

ich weiß, Excel kann HTML-Code mit in sie eingefügt, aber es sieht aus wie es parst sie nur auf sich selbst und dann auf Excel-ifies es für Sie, und es speichert den HTML, so ist es nicht wirklich es Parsen und es als HTML angezeigt werden. Plus, ich kann nicht herausfinden, wie diese Paste-Funktionalität replizieren trotzdem.

Danke.

War es hilfreich?

Lösung

Leider ist die Antwort nein ist.

Excel hat zwei HTML-Optionen:

  • Öffnen Sie eine HTML-Datei, die die HTML-Art machen wird, eine Art, aber keine eigentlichen HTML in Zellen enthalten
  • Shop HTML in Zellen, sondern als unformatierter Text.

Sie könnten vielleicht möglicherweise mit einem Makro kommen, die Sie eingeben HTML in eine Zelle können, speichert dann die HTML als Dokument, es öffnet sich in einer anderen Instanz von Excel auf, packt dann Formatierbare HTML und legt sie in der Das echte Dokument; auf diese Weise würden Sie zwei Spalten, eine mit der HTML, und einem mit dem Ausgang. Es wäre sehr unansehnlich though. Tun Sie es nicht: 0)

Andere Tipps

Einfügen von HTML-Daten in Excel werden in dem HTML-Folge richtig in Excel angezeigt wird. Das einzige Problem dabei ist, dass Zeilenumbrüche und Tabulatoren werden in der nächsten Zelle eingefügt werden.

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

Wird eine Zelle mit richtig formatiert Text füllen

Dieser Code funktioniert für mich auf einer Zelle (inspiriert von @ Rick Antwort, aber mit einigen Änderungen, weil Clipboard.SetDataObject(objData) Fehler verursacht und auch objRange.PasteSpecial() hat nicht funktioniert):

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

Post für einige weitere Details

Ich denke, es sollte nicht allzu schwierig sein, es ein wenig zu optimieren, dass es für gesamte Arbeitsblatt funktionieren würde und nicht nur eine bestimmte Zelle, sollten Sie wahrscheinlich einige hinzufügen, wenn Bedingung diesen Code wickeln, um Fehler zu vermeiden, finden Sie unter < a href = "https://stackoverflow.com/questions/9999713/html-text-with-tags-to-formatted-text-in-an-excel-cell"> diesen Beitrag für ein paar mehr Infos

fand ich ein interessantes Video von YouTube, das zeigt, wie ein einfaches HTML-Interpreter (VBA) in Microsoft Excel erstellen Kontrolle über den Webbrowser. Geben Sie Ihre HTML und CSS-Code in ein Textfeld, und die Form wird den HTML-Code in einer Web-Vorschau konvertieren.

HTML Interpreter in Microsoft Excel 2010/2007 - Schreiben Sie direkt auf Web-Browser

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top