Excel può interpretare una cella come HTML?

Sto usando Aspose.Cells per creare un documento Excel a livello di programmazione. Funziona alla grande Una delle celle, tuttavia, è un blocco di HTML non elaborato. Mi chiedo se sia ansible dire a Excel (in qualsiasi modo, inclusa la GUI – non è necessario conoscere l’API Aspose) per analizzare e visualizzare una cella come HTML. Al momento, si presenta come l’HTML grezzo in formato testo, tag e tutto.

So che Excel è in grado di incollare l’HTML, ma sembra che lo analizzi da solo e poi Excel lo fa per te, e non memorizza l’HTML, quindi non lo sta effettivamente analizzando e mostrandolo come HTML. Inoltre, non riesco a capire come replicare comunque questa funzionalità di incolla.

Grazie.

Sfortunatamente la risposta è no.

Excel ha due opzioni HTML:

  • Apri un file HTML, che eseguirà il rendering dell’HTML, in una sorta di, ma non conterrà alcun HTML effettivo nelle celle
  • Archivia HTML nelle celle, ma come testo non formattato.

Potresti, forse possibilmente, trovare una macro che ti permetta di inserire l’HTML in una cella, quindi salvare quell’HTML come documento, aprirlo in un’altra istanza di Excel, quindi prendere quel HTML formattato e inserirlo nel documento originale; in questo modo avresti due colonne, una con l’HTML e una con l’output. Sarebbe molto sgradevole però. Non farlo: 0)

Incollare i dati html in excel farà sì che l’html venga visualizzato correttamente in Excel. L’unico problema è che i ritorni a capo e le tabs verranno incollati nella cella successiva.

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

Riempirà una cella con testo correttamente formattato

Questo codice ha funzionato per me su una cella (ispirato alla risposta di @ Rick, ma con alcune modifiche perché Clipboard.SetDataObject(objData) causato un errore e anche objRange.PasteSpecial() non ha funzionato):

 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 

vedi questo post per ulteriori dettagli

Immagino che non dovrebbe essere troppo difficile modificarlo un po ‘per far funzionare l’intero foglio di lavoro e non solo una cella specifica, probabilmente dovresti aggiungere un po’ se la condizione per avvolgere questo codice per evitare errori, vedi questo post per alcuni Ulteriori informazioni

Ho trovato un video di YouTube interessante che mostra come creare un semplice interprete HTML (VBA) in Microsoft Excel usando il controllo del browser web. Inserisci il codice HTML e CSS in una casella di testo e il modulo convertirà l’HTML in un’anteprima web.

Interprete HTML in Microsoft Excel 2010/2007 – Scrivi direttamente nel browser web