Col*_*ite 3 php mysql csv openoffice.org
我正在尝试动态生成一个包含多行的单元格的csv文件,例如地址字段需要分组到一个"地址"单元格而不是地址,城市,州等.一切顺利但是在过去的两天里,我试图插入\ r,\ r \n,\n,chr(10),chr(13),以及代码中的回车来创建回车我是寻找细胞内.所有这些都失败了,或者在我的csv中打印为"\ r \n"等,或者当我在代码中进行手动回车时它会生成一个新行.我正在使用它在我的单元格中创建休息但它不起作用
$groupedCell = implode('\r',$data);
Run Code Online (Sandbox Code Playgroud)
我很确定代码是正确的,因为它的放置\ r \n我希望回车但不是我正在寻找的实际回报.我尝试了一些不同的编码,但仍然没有运气,我在Open Office测试,我想这可能是问题,但我认为它可以处理单元格内的回车,我没有看到任何文档支持否则.谢谢阅读!
Rud*_*udu 18
该CSV规范是一个我发现它在许多不同的方式实现......这基本上好像它只有一半speced这是令人沮丧的给它的受欢迎程度.
要在CSV中的单元格中包含换行符,可能需要对单元格进行换行,或者可能需要对换行符进行转义.你会从链接文档中注意到有三种方法可以做到这一点 - 不同的程序对待它的方式不同:
\
不被视为行的结尾,而是单元格中的换行符.只要单元格前面有反斜杠字符,单元格就可以包含未转义的换行符.\n
或\r\n
.在这种情况下,单元格已完全转义换行符.问题更加复杂的是,可能需要逃避控制字符(以及其他内容(例如"
#1和\
#2 + 3)和不同的转义风格(例如,嵌入的引用可以转义为:double double引用""
或反斜杠 - 双引号\"
)
我的建议是:生成一个包含多行和密钥转义字符的开放式文档,并查看open-office如何生成CSV
文件.从那里,您可以决定上述哪些方法用于单元格中的换行符,以及哪种转义方法.
style-1(excel)的示例:
#num,str,num
1,"Hello
World",1990
2,"Yes",1991
Run Code Online (Sandbox Code Playgroud)
style-2的示例:
#num,str,num
1,Hello \
Word,1990
2,Yes,1991
Run Code Online (Sandbox Code Playgroud)
style-3的示例:
#num,str,num
1,Hello \nWorld,1990
2,Yes,1991
Run Code Online (Sandbox Code Playgroud)
你需要使用"\r"
.您不能\'
在单引号字符串中使用转义字符(除此之外). '\n'
并且'\r'
是一个字面反斜杠,后跟一个n
or r
,while "\n"
和"\r"
分别是换行符和回车符.
至于在CSV文件中插入新行,这取决于您的实现.CSV没有标准,因此您必须根据要提供CSV数据的系统确定要使用的格式.有些人可能接受'\n'
序列并将其解释为新行,其他人可能允许使用文字换行符,前提是单元格用引号括起来,还有一些人根本不接受新行.