Excel nalega na formatowanie HTML

9

Muszę skopiować około 15 000 wierszy danych z zapytania MS SQL do arkusza kalkulacyjnego Excel 2007. Niektóre komórki zawierają HTML jako zwykły tekst, a większość z nich zawiera tabele HTML. Chcę, aby HTML pozostawał zwykłym tekstem w Excelu, tagach i wszystkich innych; ale bez względu na to, co robię, program Excel widzi tagi i renderuje tabelę, co całkowicie psuje arkusz. Formatowanie komórek jako tekstu nie działa. Wklej specjalnie> Tekst nie działa. Kopiowanie tekstu pojedynczej komórki zawierającej HTML bezpośrednio na pasek formuły DZIAŁA, ale nie jest to realne rozwiązanie dla 15 000 wierszy.

Wiem, że można zachować HTML jako zwykły tekst, ponieważ udało mi się go raz; Po prostu nie pamiętam jak. Widziałem też inne pytania od osób mających przeciwny problem, więc funkcjonalność na pewno istnieje.

Jestem niesamowicie sfrustrowany i bardzo doceniam twoją pomoc.

Edytować:

@variant: Wklejenie do Notatnika i skopiowanie tekstu stamtąd daje takie same wyniki, jak bezpośrednie kopiowanie wyników zapytania. Ponadto dane wklejone do Notatnika zostają rozdzielone znakami tabulacji, a w kodzie HTML są wcięcia, więc nawet gdyby pozbył się formatowania, pomyślałbym, że to zepsułoby kolumny. Tekst zawiera także przecinki, więc zapisywanie jako .csv również nie pomaga. (Próbowałem.)

@Jay: Oto przykład kodu HTML z zastąpionym nieistotnym tekstem. Przepraszam za przewijanie w poziomie - ponieważ jest to pytanie dotyczące formatowania, pomyślałem, że najlepiej byłoby wkleić tekst bez zmian. (Wiem, że <li>tagi nie są zamknięte; w tym przypadku nie jestem zainteresowany naprawieniem złego 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>
Mysz
źródło
To trochę wsteczny sposób robienia rzeczy, ale czasami warto filtrować rzeczy za pomocą notatnika (tj. Wklejać, aby rozebrać formaty, a następnie skopiować je stamtąd) przed upuszczeniem ich do Excela.
wariant
Czy możesz podać przykłady tekstu, który próbujesz skopiować / wkleić do tego pytania? Próbowałem tego: <html><head></head><body><b>bold</b></body> </html> i byłem w stanie skopiować / wkleić go z komórki do komórki.
Jay Elston,
@JayElston zobacz aktualizację Myszy do jego pytania.
studiohack
Dość stary, ale może być dla kogoś odpowiedni: Excel może wykorzystywać zapytania SQL jako źródło zawartości komórek. support.office.com/en-us/article/…
Zan Lynx,

Odpowiedzi:

3

Ostatecznie zadziałało przepisanie zapytania SQL w celu dodania potoku (|) między wszystkimi polami (ponieważ potok nie pojawił się w żadnym tekście), a następnie zapisanie wyników do pliku tekstowego i zaimportowanie go jako danych rozdzielanych potokami, formatowanie każdej kolumny jako tekstu w oknie dialogowym importu.

Mysz
źródło
Cholera, to PITA za kopię / wklej! Drapałem się w to również dzisiaj, więc dziękuję!
franglais
0

Sprawdź, czy masz inteligentne tagi HTML. Kliknij przycisk Microsoft Office > Opcje programu Excel > Proofing > Opcje Autokorekty > tagi inteligentne . Odznacz Osadź inteligentne tagi w tym skoroszycie . Zapisz plik i uruchom ponownie program Excel. Sprawdź, czy to pomoże.

Ellesa
źródło
Opcja „Osadź inteligentne tagi” jest już niezaznaczona.
Mysz
0

Excel stara się być pomocny. Masz tag tabeli, więc zakłada, że ​​wszystkie wartości <td> są komórkami.

Przed skopiowaniem komórek zaznacz je, wykonaj operację Formatuj komórki (z menu po prawej stronie myszy), a na karcie Liczba wybierz tekst.

Nie przetestowałem go na tobie, ale przetestowałem na tym:

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

Przy ogólnym formatowaniu wkleja dwie komórki o wartościach 1 i 2. Przy formatowaniu ustawionym na tekst wkleja cały ciąg tekstowy do pojedynczej komórki.

Jay Elston
źródło
Na początku powinienem być jaśniejszy: kopiuję dane z Microsoft SQL Server Management Studio, a nie z Excela, więc nie ma opcji formatowania. Jednak na podstawie Twojej sugestii próbowałem wkleić dane do programu Excel, sformatować komórki jako tekst (bez zmian) oraz skopiować i wkleić nowo sformatowane komórki. Wciąż nic. Edycja: @Jay
Mysz
@ Mysz - Och, powinienem był uważniej przeczytać twoje pytanie. Mogę zduplikować problem z wprowadzaniem tekstu. Kiedy wklejam powyższą prostą tabelę z pliku tekstowego, wkleja ona surowy plik HTML. Jeśli zaznaczę komórkę i zrobię wycięcie lub kopię, a następnie wkleję, ponownie wklei surowy tekst HTML. Jeśli zaznaczyłem tekst na pasku formuły i skopiowałem go, a następnie wkleiłem go do komórki (nawet tej, w której zmieniłem format komórki), wkleja go jako dwie osobne komórki z wartościami tylko komórek.
Jay Elston,
0

Wklej najpierw tekst do edytora tekstu. Wykonaj zamianę wszystkich na „<” i zmień ją na jakiś nieużywany znak (np. ^). Skopiuj tekst i wklej go do programu Excel. W programie Excel możesz zmienić wszystkie ^ z powrotem na <.

Rich Deem
źródło