Necesito copiar alrededor de 15,000 filas de datos de una consulta MS SQL a una hoja de cálculo Excel 2007. Algunas de las celdas contienen HTML como texto sin formato, y la mayoría de estas incluyen tablas HTML. Quiero que el HTML permanezca en texto plano en Excel, etiquetas y todo; pero no importa lo que haga, Excel ve las etiquetas y renderiza la tabla, lo que desordena completamente la hoja. Formatear las celdas como texto no funciona. Pegado especial> El texto no funciona. Copiar el texto de la celda individual que contiene HTML directamente en la barra de fórmulas sí funciona, pero esa no es realmente una solución factible para 15,000 filas.
Sé que es posible mantener HTML como texto sin formato porque lo logré una vez; Simplemente no recuerdo cómo. También he visto otras preguntas de personas que tienen el problema opuesto, por lo que la funcionalidad definitivamente existe.
Estoy increíblemente frustrado y agradecería profundamente su ayuda.
Editar:
@variante: pegar en el Bloc de notas y copiar el texto desde allí produce los mismos resultados que copiar los resultados de la consulta directamente. Además, los datos pegados en el Bloc de notas se delimitan con tabulaciones, y hay pestañas de sangría en el HTML, por lo que incluso si se eliminara el formato, creo que desordenaría las columnas. El texto también contiene comas, por lo que guardar como .csv tampoco ayuda. (Lo intenté)
@ Jay: Aquí hay un ejemplo del HTML, con texto irrelevante reemplazado. Perdón por el desplazamiento horizontal, ya que esta es una pregunta de formato, pensé que sería mejor pegar el texto tal como está. (Sé que las <li>
etiquetas no están cerradas; en este caso no estoy preocupado por arreglar HTML incorrecto).
<center> <table border="1" width="400" style="border: 1 solid #808080" cellpadding="2" cellspacing="0" bordercolor="#C0C0C0"> <tr align="center"> <td bordercolor="#800000" width="100%" height="14" style="background-color:#800000;"><font color="white">Header text</font></td> </tr> <tr> <td width="100%" height="14">Paragraph of text</td> </tr> <tr align="center"> <td bordercolor="#800000" width="100%" height="14" style="background-color:#800000;"><font color="white">More text</font></td> </tr> <tr> <td width="100%" height="14"> <ul><li>Bullet point <li>Bullet point <li>Bullet point <li>Bullet point <li>Bullet point <li>Bullet point <li>Bullet point</ul></td> </tr> <tr align="center"> <td bordercolor="#800000" width="100%" height="14" style="background-color:#800000;"><font color="white">More text</font></td> </tr> <tr> <td width="100%" height="14">Some final text</td> </tr> </table> </center>
Respuestas:
Lo que finalmente funcionó fue reescribir la consulta SQL para agregar una tubería (|) entre todos los campos (ya que la tubería no apareció en ninguno de los textos), luego guardar los resultados en un archivo de texto e importarlos como datos delimitados por tuberías, formatear cada columna como texto en el diálogo de importación.
fuente
Comprueba si tienes etiquetas inteligentes HTML. Haga clic en el botón Microsoft Office > Opciones de Excel > Revisión > Opciones de Autocorrección > Etiquetas inteligentes . Desmarque Insertar etiquetas inteligentes en este libro de trabajo . Guarde su archivo y reinicie Excel. A ver si esto ayuda.
fuente
Excel está tratando de ser útil. Tiene la etiqueta de tabla, por lo que supone que todos los valores <td> son celdas.
Antes de copiar las celdas, selecciónelas, realice una operación de Formateo de celdas (en el menú derecho del mouse) y, en la pestaña Número, seleccione texto.
No lo probé en tu cadena, pero lo probé en esta cadena:
Con el formato general, pega dos celdas con valores de 1 y 2 Con el formato establecido en texto, pega la cadena de texto completa en una sola celda.
fuente
Pegue el texto primero en su editor de texto. Reemplace todo por "<" y cámbielo a algún carácter no utilizado (como ^). Copie el texto y péguelo en Excel. Una vez en Excel, puede cambiar todos los ^ a <.
fuente