Excel наполягає на форматуванні HTML


9

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

Я знаю, що можна зберегти 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>bold</b></body> </html> і мені вдалося скопіювати / вставити його з комірки в клітинку.
Джей Елстон

@JayElston див. Оновлення Миші до його питання.
studiohack

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

Відповіді:


3

Зрештою, це було перезаписом запиту SQL, щоб додати трубу (|) між усіма полями (оскільки труба не відображалася в жодному тексті), а потім зберегти результати у текстовий файл та імпортувати їх як дані, що обмежені трубою, форматування кожного стовпця як тексту в діалоговому вікні імпорту.


Помилуй мене, це ПІТА лише копія / вставка! Я і сьогодні це почухав головою, тому дякую!
franglais

0

Перевірте, чи є у вас розумні теги HTML. Клацніть кнопку Microsoft Office > Параметри Excel > Проверка > Параметри автокорекції > Смарт-теги . Зніміть прапорець Вставити розумні теги в цю робочу книгу . Збережіть файл і перезапустіть Excel. Подивіться, чи це допомагає.


Параметр "Вставити розумні теги" вже не встановлений.
Миша

0

Excel намагається бути корисним. У вас є тег таблиці, тому він передбачає, що всі значення <td> є клітинками.

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

Я не перевіряв його на рядку, але протестував його на цій рядку:

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

При загальному форматуванні він вставляє дві комірки зі значеннями 1 і 2. З форматуванням, встановленим у тексті, він вставляє весь текстовий рядок у одну клітинку.


Я повинен був бути зрозумілішим спочатку: я копіюю дані з Microsoft SQL Server Management Studio, а не з Excel, тому немає варіантів форматування. На основі вашої пропозиції я спробував вставити дані в Excel, відформатувавши комірки як текст (без змін) та скопіювавши та вставивши новоформатовані комірки. Ще нічого. Редагувати: @Jay
Миша

@Mouse - О, я мав би уважніше прочитати ваше запитання. Я можу дублювати проблему з введенням тексту. Коли я вставляю вищезгадану просту таблицю з текстового файлу, вона вставляє сирий html. Якщо я виділяю комірку і роблю вирізання або копіювання, а потім вставляю, вона знову вставляє необроблений html. Якщо я вибрав текст на панелі формул і скопіював його, а потім вставте його в клітинку (навіть ту, на яку я змінив формат комірки), вона вставить її як дві окремі комірки зі значеннями комірки.
Джей Елстон

0

Вставте текст спочатку у свій текстовий редактор. Зробіть заміну всіх на "<" та змініть її на якийсь невикористаний символ (наприклад, ^). Скопіюйте текст і вставте його в Excel. Потрапивши в Excel, ви можете змінити всі ^ назад на <.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.