我需要将 MS SQL 查询中的大约 15,000 行数据复制到 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>
答案1
最终有效的方法是重写 SQL 查询以在所有字段之间添加竖线(|)(因为竖线没有出现在任何文本中),然后将结果保存到文本文件并将其作为竖线分隔的数据导入,在导入对话框中将每一列格式化为文本。
答案2
检查您是否有 HTML 智能标记。单击Microsoft Office 按钮>Excel 选项>校样>自动更正选项>智能标签. 取消勾选在此工作簿中嵌入智能标记。保存文件并重新启动 Excel。看看这是否有帮助。
答案3
Excel 正在努力提供帮助。您有表格标签,因此它假定所有 <td> 值都是单元格。
在复制单元格之前,请先选择它们,执行“设置单元格格式”操作(从鼠标右键菜单中),然后在“数字”选项卡中选择文本。
我没有在你的字符串上测试它,但我在这个字符串上测试它:
<table><tr><td>1</td><td>2</td></tr></table>
使用常规格式时,它会粘贴两个值为 1 和 2 的单元格;使用设置为文本的格式时,它会将整个文本字符串粘贴到单个单元格中。
答案4
首先将文本粘贴到文本编辑器中。将“<”全部替换,并将其更改为某个未使用的字符(如 ^)。复制文本并将其粘贴到 Excel 中。进入 Excel 后,您可以将所有 ^ 改回 <。