Pregunta

Estoy usando Aspose.Cells para construir un documento de Excel mediante programación. Esto funciona muy bien. Una de las células, sin embargo, es un bloque de HTML puro. Me pregunto si es posible decir Excel (de cualquier manera, incluyendo la interfaz gráfica de usuario - no es necesario conocer la API Aspose) para analizar y mostrar una célula como HTML. En este momento, sólo se muestra como el HTML puro en formato de texto, etiquetas y todo.

Yo sé Excel es capaz de tener HTML pegado en ella, pero parece que sólo lo analiza por sí mismo y luego Excel-ifies por usted, y no almacena el código HTML, por lo que en realidad no es analizarlo y mostrar como HTML. Además, no puedo encontrar la manera de replicar esta funcionalidad pasta de todos modos.

Gracias.

¿Fue útil?

Solución

Por desgracia, la respuesta es no.

Excel tiene dos opciones HTML:

  • Abrir un archivo HTML, que tipo de hacer que el HTML, más o menos, pero no contendrá ninguna HTML real en las células
  • HTML tienda en las células, pero como texto sin formato.

Se podría, tal vez, posiblemente, llegar a una macro que le permite introducir HTML en una celda, a continuación, guarda el HTML como un documento, lo abre en otra instancia de Excel, entonces agarra ese formato HTML y lo coloca en el documento original; de esa manera se tendría dos columnas, una con el código HTML, y otro con la salida. Sería muy antiestética sin embargo. No lo haga: 0)

Otros consejos

pegar datos HTML en Excel se traducirá en el html que se muestre correctamente en Excel. El único problema con esto es que los retornos de carro y las pestañas se pegarán a la siguiente celda.

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

Se llenar una celda con el texto formateado correctamente

Este código trabajó para mí en una celda (inspirado por @ respuesta de Rick, pero con algunos cambios, porque Clipboard.SetDataObject(objData) causó el error y también objRange.PasteSpecial() no funcionaba):

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

para algunos detalles más

supongo que no debería ser demasiado difícil de ajustar un poco que trabajaría para toda la hoja de trabajo y no sólo una célula específica, es probable que se debe añadir un poco de si la condición para envolver el código con el fin de evitar errores, consulte < a href = "https://stackoverflow.com/questions/9999713/html-text-with-tags-to-formatted-text-in-an-excel-cell"> este post de algo más de información

He encontrado un interesante vídeo de YouTube que muestra cómo crear un simple intérprete HTML (VBA) en Microsoft Excel mediante el control de explorador Web. Introduzca su código HTML y CSS en un cuadro de texto y la forma será convertir el HTML en una vista previa web.

HTML intérprete en Microsoft Excel 2010/2007 - Escribir directamente al navegador web

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top