una tipos texto tablas tabla formularios estilos ejemplos diseño celda cajas botones avanzado ajustar agregar html excel aspose aspose-cells

tipos - ¿Puede Excel interpretar una celda como HTML?



tablas html avanzado (4)

Al pegar los datos html en excel, el html se mostrará correctamente en excel. El único problema con esto es que los retornos de carro y las pestañas se pegarán en la siguiente celda.

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

Llenará una celda con texto correctamente formateado

Estoy usando Aspose.Cells para construir un documento de Excel mediante programación. Esto funciona muy bien. Una de las celdas, sin embargo, es un bloque de HTML en bruto. Me pregunto si es posible indicar a Excel (de cualquier manera, incluida la GUI, no es necesario que conozca la API de Aspose) para analizar y mostrar una celda como HTML. En este momento, solo se muestra como HTML sin formato en formato de texto, etiquetas y todo.

Sé que Excel es capaz de tener HTML pegado en él, pero parece que simplemente lo analiza por sí solo y luego Excel lo hace por usted, y no almacena el HTML, así que en realidad no lo está analizando y mostrando como HTML. Además, no puedo descubrir cómo replicar esta funcionalidad de pegado de todos modos.

Gracias.


Desafortunadamente, la respuesta es no.

Excel tiene dos opciones de HTML:

  • Abra un archivo HTML, que representará o no el HTML, pero no contendrá ningún HTML real en las celdas
  • Almacenar HTML en celdas, pero como texto sin formato.

Usted podría, posiblemente, crear una macro que le permita ingresar HTML en una celda, luego guardar ese HTML como un documento, abrirlo en otra instancia de Excel, luego tomar ese HTML formateado y colocarlo en el documento original; de esa manera tendría dos columnas, una con el HTML y otra con el resultado. Aunque sería muy desagradable. No lo hagas: 0)



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

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

Vea esta post para más detalles.

Supongo que no debería ser demasiado difícil modificarlo un poco para que funcione para toda la hoja de cálculo y no solo para una celda específica, probablemente debería agregar alguna condición para envolver este código a fin de evitar errores, consulte post para más información. más información