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> bold </ b> </ body> </ html>,我能够在一个单元格之间复制/粘贴它。
杰伊·埃尔斯顿

@JayElston看到Mouse对他的问题的更新。
studiohack

Wayyy很老,但可能与某人有关:Excel可以使用SQL查询作为单元格内容的源。support.office.com/en-us/article/...
咱山猫

Answers:


3

最终可行的方法是重写SQL查询,以在所有字段之间添加管道(|)(因为管道未出现在任何文本中),然后将结果保存到文本文件中,并将其作为管道分隔的数据导入,在导入对话框中将每一列设置为文本格式。


烦我,那只是复制/粘贴的PITA!今天,我也一直在为此挠头,谢谢!
franglais 2014年

0

检查您是否具有HTML智能标记。单击Microsoft Office按钮 > Excel选项 > 校对 > 自动更正选项 > 智能标记。取消选中在此工作簿中嵌入智能标记。保存文件并重新启动Excel。看看是否有帮助。


“嵌入式智能标签”选项已被取消选中。
鼠标

0

Excel试图提供帮助。您具有table标记,因此它假定所有<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后,您可以将所有^更改回<。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.