Excel настаивает на форматировании HTML


9

Мне нужно скопировать около 15 000 строк данных из запроса MS SQL в электронную таблицу Excel 2007. Некоторые ячейки содержат HTML в виде простого текста, и большинство из них включают таблицы HTML. Я хочу, чтобы HTML оставался простым текстом в Excel, тегами и всем остальным; но независимо от того, что я делаю, Excel видит теги и отображает таблицу, которая полностью испортила лист. Форматирование ячеек как текста не работает. Специальная вставка> Текст не работает. Копирование текста отдельной ячейки, содержащей HTML, непосредственно в панель формул работает, но на самом деле это невыполнимое решение для 15 000 строк.

Я знаю, что можно сохранить HTML как обычный текст, потому что мне это удалось однажды; Я просто не помню как. Я также видел другие вопросы от людей, имеющих противоположную проблему, поэтому функциональность определенно существует.

Я невероятно расстроен и буду очень признателен за вашу помощь.

Редактировать:

@variant: вставка в Блокнот и копирование текста оттуда дает те же результаты, что и непосредственное копирование результатов запроса. Кроме того, данные, вставленные в Блокнот, становятся разделителями табуляции, и в HTML есть отступы для вкладок, поэтому даже если бы он избавился от форматирования, я бы подумал, что это испортит столбцы. Текст также содержит запятые, поэтому сохранение в формате .csv также не помогает. (Я попробовал это.)

@Jay: Вот пример HTML с заменой неактуального текста. Извините за горизонтальную прокрутку - так как это вопрос форматирования, я подумал, что было бы лучше вставить текст как есть. (Я знаю, что <li>теги не закрыты; в этом случае я не занимаюсь исправлением плохого HTML.)

    <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>

Это немного отсталый способ делать вещи, но иногда полезно фильтровать вещи с помощью блокнота (то есть вставлять, чтобы вырезать форматы, затем копировать их оттуда), прежде чем помещать их в Excel.
вариант

Можете ли вы привести примеры текста, который вы пытаетесь скопировать / вставить в этот вопрос? Я попробовал это: <html> <head> </ head> <body> <b> полужирный </ b> </ body> </ html>, и мне удалось скопировать / вставить его из ячейки в ячейку.
Джей Элстон

@JayElston посмотри обновление мыши на его вопрос.
studiohack

Очень старый, но может иметь отношение к кому-то: Excel может использовать запросы SQL в качестве источника содержимого ячейки. support.office.com/en-us/article/…
Zan Lynx

Ответы:


3

В конечном итоге сработало переписывание SQL-запроса для добавления канала (|) между всеми полями (поскольку канал не отображался ни в одном тексте), затем сохранение результатов в текстовый файл и их импорт в виде данных с разделителями каналов, форматирование каждого столбца как текста в диалоге импорта.


Убей меня, это PITA только для копирования / вставки! Я сегодня тоже почесал голову этим, так что спасибо!
Franglais

0

Проверьте, есть ли у вас смарт-теги HTML. Нажмите кнопку Microsoft Office > Параметры Excel > Проверка > Параметры автозамены > Смарт-теги . Снимите флажок Вставить смарт-теги в эту книгу . Сохраните файл и перезапустите Excel. Посмотрите, поможет ли это.


Опция «Вставить смарт-теги» уже не включена.
Мышь

0

Excel пытается быть полезным. У вас есть табличный тег, поэтому он предполагает, что все значения <td> являются ячейками.

Прежде чем копировать ячейки, выберите их, выполните операцию «Форматирование ячеек» (из правого меню мыши) и на вкладке «Число» выберите текст.

Я не проверял это на вашей строке, но я проверял на этой строке:

<table><tr><td>1</td><td>2</td></tr></table>

При обычном форматировании он вставляет две ячейки со значениями 1 и 2. Если для форматирования задано значение text, он вставляет всю текстовую строку в одну ячейку.


Сначала я должен был быть более ясным: я копирую данные из Microsoft SQL Server Management Studio, а не из Excel, поэтому нет никаких вариантов форматирования. Однако, основываясь на вашем предложении, я попытался вставить данные в Excel, отформатировать ячейки как текст (без изменений), а также скопировать и вставить недавно отформатированные ячейки. Еще ничего. Редактировать: @Jay
Мышь

@ Мыши - О, я должен был прочитать ваш вопрос более внимательно. Я могу продублировать проблему ввода текста. Когда я вставляю приведенную выше простую таблицу из текстового файла, она вставляет необработанный HTML. Если я выбираю ячейку и делаю вырезку или копирование, а затем вставляю, он снова вставляет необработанный HTML. Если я выделил текст в строке формул и скопировал его, а затем вставил его в ячейку (даже ту, на которой я изменил формат ячейки), он вставляется как две отдельные ячейки только со значениями ячейки.
Джей Элстон

0

Сначала вставьте текст в ваш текстовый редактор. Замените все на «<» и измените его на какой-нибудь неиспользуемый символ (например, ^). Скопируйте текст и вставьте его в Excel. Попав в Excel, вы можете изменить все ^ назад на <.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.