我需要为Excel生成一个文件,该文件中的一些值包含多行.
那里还有非英文文本,所以文件必须是Unicode.
我现在生成的文件如下所示:(在UTF8中,非英文文本混合在一起并且有很多行)
Header1,Header2,Header3
Value1,Value2,"Value3 Line1
Value3 Line2"
Run Code Online (Sandbox Code Playgroud)
请注意,多行值用双引号括起来,其中包含正常的日常换行符.
根据我在网上发现的这应该有效,但它没有,至少没有赢得Excel 2007和UTF8文件,Excel将第3行视为第二行数据而不是第一行数据的第二行.
这必须在我客户的机器上运行,我无法控制他们的Excel版本,所以我需要一个适用于Excel 2000及更高版本的解决方案.
谢谢
编辑:我通过两个CSV选项"解决"了我的问题,一个用于Excel(Unicode,制表符分隔,字段中没有换行符),另一个用于世界其他地方(UTF8,标准CSV).
不是我想要的,但至少它是有效的(到目前为止)
嗨,我有以下代码:
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>";
Run Code Online (Sandbox Code Playgroud)
我试过了:
<td>Line 1\r\nLine 2</td>
<td>Line 1".chr(10) . chr(13)."Line 2</td>
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何效果,我需要在单元格中进行换行,欢迎提出任何建议.我正在使用excel 2010.
我已经看过这个问题:Excel 2003数据中的换行符并没有用.
它没有显示错误,当我应用<br>它时会创建一个新行,当我使用时\r\n, \n, or chr(10) . chr(13),它会创建一个空格.
谢谢!!