【问题标题】:How can I do a line break in cell of excel using PHP?如何使用 PHP 在 excel 单元格中进行换行?
【发布时间】:2014-05-30 13:36:40
【问题描述】:

您好,我有以下代码:

header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=archivo.xls");
header("Pragma: no-cache");
header("Expires: 0");

echo "
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="expires" content="0">
</head>
<body>
<table width="100%" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td>Line 1<br>Line 2</td>
  </tr> 
</table>
</body>
</html>";

我试过了:

<td>Line 1\r\nLine 2</td>
<td>Line 1".chr(10) . chr(13)."Line 2</td>

但似乎没有任何效果,我需要在单元格中换行,欢迎提出任何建议。我正在使用 excel 2010。

我已经看过这个问题:line break within data for Excel 2003,但没有用。

它不显示错误,当我应用&lt;br&gt; 时它会创建一个新行,当我使用\r\n, \n, or chr(10) . chr(13) 时它会创建一个空格。

谢谢!!

【问题讨论】:

  • 尝试\n 而不是\r\n。 Windows 仅使用 \n 来换行函数。
  • 尝试通过 \" 转义 " 或使用 echo ;oP
  • 这就是为什么我对开发人员试图假装 HTML 标记是 Excel 文件,然后担心它不起作用而感到如此沮丧的原因

标签: php excel


【解决方案1】:

搜索了很多找到这个网站: http://www.bennadel.com/blog/1095-maintaining-line-breaks-in-an-html-excel-file.htm

这个标签解决了&lt;br style="mso-data-placement:same-cell;" /&gt;的问题

感谢你们所有的cmets!!

【讨论】:

  • 我试图将 wp 列表导出到 .csv。在我的生活中,不能让细胞内的线路中断工作。我找到了您的答案并尝试导出为 .xls:它的工作原理就像一个魅力!感谢您的帮助。
【解决方案2】:

你应该添加双引号来包含换行符

'<td>Line 1' . "\r\n" . 'Line 2</td>'

【讨论】:

    【解决方案3】:

    试一试 PHP_EOL,它应该会给你正在使用的操作系统的换行符。

    例子:

    $output = 'Line 1' . PHP_EOL .
              'Line 2' . PHP_EOL .
              'Line 3';
    

    【讨论】:

    • 好的,这很有趣。尝试使用这个中断标签:&lt;br style="mso-data-placement:same-cell;" /&gt;
    【解决方案4】:

    你说 charset="utf-8" 但 chr 返回 ASCII!

    这个呢? ;oP

    utf8_encode(chr(10).chr(13))
    

    【讨论】:

    • Quid 括号中的 EOF 修正补丁(我已经编辑了你的代码)?
    • 这无济于事 - 7 位字符的 UTF-8 编码是无操作的,CR 和 LF 都是 7 位字符。
    猜你喜欢
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2022-08-05
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多