使用PHP从SQL中提取数据,然后在服务器上创建.csv文件,以便通过fputcsv进行电子邮件发送/下载。除了尝试在Excel(2003)中的字段中获取新行之外,一切都很有效。
当我需要
时,我在单元格中得到Product1Product2Product3Product1
Product2
Product3
我尝试过单引号,双引号,CR,LF,我正在迅速消除自己的背后。
所以问题是 - 为了达到这个目的,我需要在CSV文件中使用什么字符?
它必须在Excel中工作
[解决方案] - 问题在于通过PHP fputcsv传递\ r \ n到Excel的某个地方 - 我无法以任何方式实现这一点(充足地追加所需的\ r \ n到我的实际细胞数据,例如Product1 \ r \ n) 建议使用$ lfcr = chr(10)。 CHR(13);第一次工作。我想这更像是一个PHP而不是一个Excel问题 - 多亏了所有的共鸣。
答案 0 :(得分:6)
这更像是一个excel而不是一个php问题。 excel需要理解你放入csv文件的内容,这就是\ r \ n无效的原因。
使用此
$lfcr = chr(10) . chr(13);
然后将$lfcr
追加到每一行的末尾。
答案 1 :(得分:1)
对于csv文件中字段中的换行符,您只需用双引号括起该字段,并在前面的示例中添加=
。换行符本身可以是\r\n
,也可以是\n
:
id;product;price
1;iMac;2.99
2;="product
with
linebreaks";1.99
3;Bananaphone;999.99