Excel khăng khăng định dạng HTML


9

Tôi cần sao chép khoảng 15.000 hàng dữ liệu từ truy vấn MS SQL sang bảng tính Excel 2007. Một số ô chứa HTML dưới dạng văn bản thuần túy và hầu hết các ô này bao gồm các bảng HTML. Tôi muốn HTML giữ nguyên văn bản trong Excel, thẻ và tất cả; nhưng bất kể tôi làm gì, Excel sẽ nhìn thấy các thẻ và kết xuất bảng, làm hỏng hoàn toàn trang tính. Định dạng các ô như văn bản không hoạt động. Dán đặc biệt> Văn bản không hoạt động. Sao chép văn bản của từng ô chứa HTML trực tiếp vào thanh công thức DOES hoạt động, nhưng đó không thực sự là một giải pháp khả thi cho 15.000 hàng.

Tôi biết có thể giữ HTML dưới dạng văn bản thuần túy vì tôi đã quản lý nó một lần; Tôi chỉ không nhớ làm thế nào. Tôi cũng đã thấy những câu hỏi khác từ những người có vấn đề ngược lại, vì vậy chức năng chắc chắn tồn tại.

Tôi vô cùng thất vọng và đánh giá cao sự giúp đỡ của bạn.

Biên tập:

@variant: Dán vào Notepad và sao chép văn bản từ đó tạo ra kết quả tương tự như sao chép trực tiếp kết quả truy vấn. Ngoài ra, dữ liệu được dán vào Notepad sẽ được phân định bằng tab và có các tab thụt vào trong HTML, vì vậy ngay cả khi nó bị loại bỏ định dạng, tôi nghĩ rằng điều đó sẽ làm rối các cột. Văn bản cũng chứa dấu phẩy, vì vậy lưu dưới dạng .csv cũng không giúp được gì. (Tôi đã thử nó.)

@Jay: Đây là một ví dụ về HTML, với văn bản không liên quan được thay thế. Xin lỗi về cuộn ngang - vì đây câu hỏi định dạng, tôi nghĩ tốt nhất nên dán văn bản như hiện tại. (Tôi biết các <li>thẻ không được tiết lộ; Tôi không quan tâm đến việc sửa HTML xấu trong trường hợp này.)

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

Đó là một cách làm ngược lại, nhưng đôi khi rất hữu ích để lọc mọi thứ qua notepad (nghĩa là dán vào để loại bỏ các định dạng sau đó sao chép lại từ đó) trước khi thả chúng vào Excel.
biến thể

Bạn có thể ví dụ về văn bản bạn đang cố gắng sao chép / dán vào câu hỏi này không? Tôi đã thử điều này: <html> <head> </ head> <body> <b> bold </ b> </ body> </ html> và tôi đã có thể sao chép / dán nó từ ô này sang ô khác.
Jay Elston

@JayElston xem cập nhật của Chuột cho câu hỏi của anh ấy.
studiohack

Wayyy cũ nhưng có thể liên quan đến ai đó: Excel có thể sử dụng các truy vấn SQL làm nguồn cho nội dung ô. support.office.com/en-us/article/ trộm
Zan Lynx

Câu trả lời:


3

Điều cuối cùng đã làm việc là viết lại truy vấn SQL để thêm một đường ống (|) giữa tất cả các trường (vì đường ống không xuất hiện trong bất kỳ văn bản nào), sau đó lưu kết quả vào tệp văn bản và nhập dữ liệu đó dưới dạng dữ liệu được phân tách bằng đường ống, định dạng mỗi cột dưới dạng văn bản trong hộp thoại nhập.


Xin lỗi, đó là Pita chỉ là bản sao / dán! Tôi cũng đã gãi đầu với điều này ngày hôm nay, vì vậy cảm ơn bạn!
franglais

0

Kiểm tra xem bạn có thẻ thông minh HTML không. Nhấp vào nút Microsoft Office > Excel Options > Proofing > AutoCorrect Options > Smart Tags . Bỏ chọn Nhúng thẻ thông minh trong sổ làm việc này . Lưu tệp của bạn và khởi động lại Excel. Xem nếu điều này giúp.


Tùy chọn "Nhúng thẻ thông minh" đã không được chọn.
Chuột

0

Excel đang cố gắng trở nên hữu ích. Bạn có thẻ bảng, do đó, nó giả sử tất cả các giá trị <td> là các ô.

Trước khi bạn sao chép các ô, chọn chúng, thực hiện thao tác Định dạng ô (từ menu chuột phải) và trong tab Số, chọn văn bản.

Tôi đã không kiểm tra nó trên chuỗi của bạn, nhưng tôi đã kiểm tra nó trên chuỗi này:

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

Với định dạng chung, nó dán hai ô có giá trị 1 và 2 Với định dạng được đặt thành văn bản, nó sẽ dán toàn bộ chuỗi văn bản trong một ô.


Tôi nên rõ ràng hơn ban đầu: Tôi đang sao chép dữ liệu từ Microsoft SQL Server Management Studio, không phải từ Excel, vì vậy không có tùy chọn định dạng. Tuy nhiên, dựa trên đề xuất của bạn, tôi đã thử dán dữ liệu vào Excel, định dạng các ô dưới dạng văn bản (không thay đổi) và sao chép và dán các ô vừa được định dạng. Vẫn không có gì. Chỉnh sửa: @Jay
Chuột

@Mouse - Ồ, tôi nên đọc câu hỏi của bạn cẩn thận hơn. Tôi có thể nhân đôi vấn đề nhập văn bản. Khi tôi dán bảng đơn giản ở trên từ một tệp văn bản, nó sẽ dán html thô. Nếu tôi chọn ô và thực hiện cắt hoặc sao chép rồi dán, nó sẽ dán lại html thô. Nếu tôi chọn văn bản trong thanh công thức và sao chép nó, sau đó dán nó vào một ô (thậm chí một ô mà tôi đã thay đổi định dạng ô trên) thì nó sẽ dán nó thành hai ô riêng biệt chỉ với các giá trị ô.
Jay Elston

0

Dán văn bản đầu tiên vào trình soạn thảo văn bản của bạn. Thực hiện thay thế tất cả cho "<" và thay đổi nó thành một số ký tự không được sử dụng (như ^). Sao chép văn bản và dán nó vào Excel. Khi ở trong Excel, bạn có thể thay đổi tất cả ^ trở lại <.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.