将HTML表格粘贴到Excel中,如何在单元格中保留换行符

vir*_*sir 21 excel copy paste web

我有一个简单的html表,例如,只有一个单元格,但是当我复制dom节点并将其粘贴到excel中时,它将被识别为两行,如何使Excel获得正确的粘贴数据.

 <table><tr><td>1<br>2</td><tr></table>
Run Code Online (Sandbox Code Playgroud)

我试着添加css样式

br {mso-data-placement:same-cell;},
Run Code Online (Sandbox Code Playgroud)

但它只适用于IE浏览器.

注意,复制纯文本不行,我需要在单元格上添加颜色,字体信息.

Him*_*dia 19

正如你们许多人可能知道的那样,只需添加正确的内容类型和内容处置标题,就可以将数据(例如报告)输出为Excel文件:

Response.ContentType = “application/vnd.ms-excel“;

Response.AppendHeader(“content-disposition“, “inline; filename=report.xls“);
Run Code Online (Sandbox Code Playgroud)

如果客户端安装了MS Excel,则将在其中打开输出HTML页面而不是Web浏览器.Excel将解释所有格式化(边框,字体等)和TABLE标记,这可以生成一个漂亮的格式化工作表,而不使用重量级服务器端控件.

我一直在努力解决的问题是使用多线电池.我需要在单元格中包装文本,但是当我将<br>标记放入HTML输出时,Excel将其解释为新行,而不是现有单元格中的换行符.

添加到样式表中:

br {mso-data-placement:same-cell;}
Run Code Online (Sandbox Code Playgroud)

然后它就像一个魅力.我希望它有用:)

提示:您可以使ContentType和标题有条件,从而为一个文件提供备用HTML/XLS报告.

  • 感谢这个解决方案,对于复制粘贴,我这样写:&lt;br style="mso-data-placement:same-cell;"/&gt;,它可以正常工作。 (2认同)

ben*_*erd 3

看起来 Firefox 完全忽略了mso-data-placement指令;它不会出现在 Firebug 样式面板中。也许这就是为什么它不会像你期望的那样粘贴?